L2INPUT:fix features mask cailculation 15/7515/2
authorEyal Bari <ebari@cisco.com>
Tue, 11 Jul 2017 11:24:37 +0000 (14:24 +0300)
committerJohn Lo <loj@cisco.com>
Tue, 11 Jul 2017 14:59:30 +0000 (14:59 +0000)
Change-Id: I84cea7530b01302a0adeef95b4924f54dc2e41ec
Signed-off-by: Eyal Bari <ebari@cisco.com>
src/vnet/l2/l2_input.h

index c1b669b..244ef44 100644 (file)
@@ -124,22 +124,26 @@ typedef enum
 #define _(sym,str) L2INPUT_FEAT_##sym##_BIT,
   foreach_l2input_feat
 #undef _
-    L2INPUT_N_FEAT,
-  L2INPUT_VALID_MASK =
-#define _(sym,str) L2INPUT_FEAT_##sym##_BIT |
-    foreach_l2input_feat
-#undef _
-    0,
+  L2INPUT_N_FEAT
 } l2input_feat_t;
 
+STATIC_ASSERT (L2INPUT_N_FEAT <= 32, "too many l2 input features");
+
 /* Feature bit masks */
 typedef enum
 {
 #define _(sym,str) L2INPUT_FEAT_##sym = (1<<L2INPUT_FEAT_##sym##_BIT),
   foreach_l2input_feat
 #undef _
+    L2INPUT_VALID_MASK =
+#define _(sym,str) L2INPUT_FEAT_##sym |
+    foreach_l2input_feat
+#undef _
+  0
 } l2input_feat_masks_t;
 
+STATIC_ASSERT ((u64) L2INPUT_VALID_MASK == (1ull << L2INPUT_N_FEAT) - 1, "");
+
 /** Return an array of strings containing graph node names of each feature */
 char **l2input_get_feat_names (void);