diff --git a/src/vnet/l2/l2_fib.h b/src/vnet/l2/l2_fib.h
index 41ef4ab..7f7cd76 100644
--- a/src/vnet/l2/l2_fib.h
+++ b/src/vnet/l2/l2_fib.h
@@ -54,9 +54,6 @@
   /* hash table initialized */
   u8 mac_table_initialized;
 
-  /* per swif vector of sequence number for interface based flush of MACs */
-  u8 *swif_seq_num;
-
   /* last event or ager scan duration */
   f64 evt_scan_duration;
   f64 age_scan_duration;
@@ -97,19 +94,36 @@
 
 STATIC_ASSERT_SIZEOF (l2fib_entry_key_t, 8);
 
+/**
+ * A combined representation of the sequence number associated
+ * with the interface and the BD.
+ * The BD is in higher bits, the interface in the lower bits, but
+ * the order is not important.
+ *
+ * It's convenient to represent this as an union of two u8s,
+ * but then in the DP one is forced to do short writes, followed
+ * by long reads, which is a sure thing for a stall
+ */
+typedef u16 l2fib_seq_num_t;
 
-typedef struct
+static_always_inline l2fib_seq_num_t
+l2_fib_mk_seq_num (u8 bd_sn, u8 if_sn)
 {
-  union
-  {
-    struct
-    {
-      u8 swif;
-      u8 bd;
-    };
-    u16 as_u16;
-  };
-} l2fib_seq_num_t;
+  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
@@ -459,21 +473,6 @@
 
 u8 *format_vnet_sw_if_index_name_with_NA (u8 * s, va_list * args);
 
-static_always_inline u8 *
-l2fib_swif_seq_num (u32 sw_if_index)
-{
-  l2fib_main_t *mp = &l2fib_main;
-  return vec_elt_at_index (mp->swif_seq_num, sw_if_index);
-}
-
-static_always_inline u8 *
-l2fib_valid_swif_seq_num (u32 sw_if_index)
-{
-  l2fib_main_t *mp = &l2fib_main;
-  vec_validate (mp->swif_seq_num, sw_if_index);
-  return l2fib_swif_seq_num (sw_if_index);
-}
-
 BVT (clib_bihash) * get_mac_table (void);
 
 #endif
