ofp-actions: Relax build assertion condition for ofpact_nest struct.
authorGurucharan Shetty <gshetty@nicira.com>
Wed, 12 Mar 2014 16:40:36 +0000 (09:40 -0700)
committerGurucharan Shetty <gshetty@nicira.com>
Thu, 13 Mar 2014 16:17:16 +0000 (09:17 -0700)
struct ofpact has enums that are packed in case of __GNUC__.
This packing does not occur for visual studio. For 'struct ofpact_nest',
we are currently expecting that "struct ofpact actions[]" has an offset of
8 bytes.  This condition won't be true in compilers where enums are
not packed.

It is good enough if struct ofpact actions[] starts at an offset which is
a multiple of OFPACT_ALIGNTO.

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
lib/ofp-actions.h

index 0f6bf70..5fd3185 100644 (file)
@@ -439,7 +439,7 @@ struct ofpact_nest {
     uint8_t pad[OFPACT_ALIGN(sizeof(struct ofpact)) - sizeof(struct ofpact)];
     struct ofpact actions[];
 };
-BUILD_ASSERT_DECL(offsetof(struct ofpact_nest, actions) == OFPACT_ALIGNTO);
+BUILD_ASSERT_DECL(offsetof(struct ofpact_nest, actions) % OFPACT_ALIGNTO == 0);
 
 static inline size_t
 ofpact_nest_get_action_len(const struct ofpact_nest *on)