+ return (((u16) bd_sn) << 8) | if_sn;
+}
+
+static_always_inline l2fib_seq_num_t
+l2_fib_update_seq_num (l2fib_seq_num_t sn, u8 if_sn)
+{
+ sn &= 0xff00;
+ sn |= if_sn;
+
+ return (sn);
+}
+
+extern void l2_fib_extract_seq_num (l2fib_seq_num_t sn, u8 * bd_sn,
+ u8 * if_sn);
+extern u8 *format_l2_fib_seq_num (u8 * s, va_list * a);
+
+/**
+ * Flags associated with an L2 Fib Entry
+ * - static mac, no MAC move
+ * - not subject to age
+ * - mac is for a bridged virtual interface
+ * - drop packets to/from this mac
+ * - MAC learned to be sent in L2 MAC event
+ * -MAC learned is a MAC move
+ */
+#define foreach_l2fib_entry_result_attr \
+ _(STATIC, 0, "static") \
+ _(AGE_NOT, 1, "age-not") \
+ _(BVI, 2, "bvi") \
+ _(FILTER, 3, "filter") \
+ _(LRN_EVT, 4, "learn-event") \
+ _(LRN_MOV, 5, "learn-move")
+
+typedef enum l2fib_entry_result_flags_t_
+{
+ L2FIB_ENTRY_RESULT_FLAG_NONE = 0,
+#define _(a,v,s) L2FIB_ENTRY_RESULT_FLAG_##a = (1 << v),
+ foreach_l2fib_entry_result_attr
+#undef _
+} __attribute__ ((packed)) l2fib_entry_result_flags_t;
+
+STATIC_ASSERT_SIZEOF (l2fib_entry_result_flags_t, 1);
+
+extern u8 *format_l2fib_entry_result_flags (u8 * s, va_list * args);