STATIC_ASSERT_SIZEOF (l2fib_entry_key_t, 8);
+
+typedef struct
+{
+ union
+ {
+ struct
+ {
+ u8 swif;
+ u8 bd;
+ };
+ u16 as_u16;
+ };
+} l2fib_seq_num_t;
+
/*
* The l2fib entry results
*/
u8 filter:1; /* drop packets to/from this mac */
u8 unused1:5;
u8 timestamp; /* timestamp for aging */
- u16 unused2;
+ l2fib_seq_num_t sn; /* bd/int seq num */
} fields;
u64 raw;
};
}
}
+void l2fib_clear_table (void);
+
+void
+l2fib_add_entry (u64 mac,
+ u32 bd_index,
+ u32 sw_if_index, u32 static_mac, u32 drop_mac, u32 bvi_mac);
+
+u32 l2fib_del_entry (u64 mac, u32 bd_index);
+
+void l2fib_start_ager_scan (vlib_main_t * vm);
+
+void l2fib_flush_int_mac (vlib_main_t * vm, u32 sw_if_index);
+
+void l2fib_flush_bd_mac (vlib_main_t * vm, u32 bd_index);
+
+void l2fib_flush_all_mac (vlib_main_t * vm);
+
+void
+l2fib_table_dump (u32 bd_index, l2fib_entry_key_t ** l2fe_key,
+ l2fib_entry_result_t ** l2fe_res);
+
+u8 *format_vnet_sw_if_index_name_with_NA (u8 * s, va_list * args);
+
BVT (clib_bihash) * get_mac_table (void);
- void
- l2fib_clear_table (uint keep_static);
- void
- l2fib_add_entry (u64 mac,
- u32 bd_index,
- u32 sw_if_index,
- u32 static_mac, u32 drop_mac, u32 bvi_mac);
-u32
-l2fib_del_entry (u64 mac, u32 bd_index);
-
- void
- l2fib_table_dump (u32 bd_index, l2fib_entry_key_t ** l2fe_key,
- l2fib_entry_result_t ** l2fe_res);
-
- u8 *format_vnet_sw_if_index_name_with_NA (u8 * s, va_list * args);
#endif