diff options
author | Neale Ranns <nranns@cisco.com> | 2018-09-06 09:50:26 -0700 |
---|---|---|
committer | John Lo <loj@cisco.com> | 2018-09-08 14:51:48 +0000 |
commit | 3b81a1e5f205482b8ea30edbfd39559c4368ac4d (patch) | |
tree | 345ff2e3d599502852512180e95f21c76ec31f48 /src/vnet/ethernet | |
parent | 3348a4cf070b90a9c23bbc0b3752fa2801f832a9 (diff) |
L2 BVI/FIB: Update L2 FIB table when BVI's MAC changes
also some moving of l2 headers to reduce dependencies
Change-Id: I7a700a411a91451ef13fd65f9c90de2432b793bb
Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'src/vnet/ethernet')
-rw-r--r-- | src/vnet/ethernet/arp.c | 1 | ||||
-rw-r--r-- | src/vnet/ethernet/interface.c | 15 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/vnet/ethernet/arp.c b/src/vnet/ethernet/arp.c index b5c2e6dc748..275d606266b 100644 --- a/src/vnet/ethernet/arp.c +++ b/src/vnet/ethernet/arp.c @@ -26,6 +26,7 @@ #include <vnet/adj/adj_nbr.h> #include <vnet/adj/adj_mcast.h> #include <vnet/mpls/mpls.h> +#include <vnet/l2/feat_bitmap.h> /** * @file diff --git a/src/vnet/ethernet/interface.c b/src/vnet/ethernet/interface.c index bef13b8672c..d44a8a8ecb0 100644 --- a/src/vnet/ethernet/interface.c +++ b/src/vnet/ethernet/interface.c @@ -42,6 +42,7 @@ #include <vnet/pg/pg.h> #include <vnet/ethernet/ethernet.h> #include <vnet/l2/l2_input.h> +#include <vnet/l2/l2_bd.h> #include <vnet/adj/adj.h> /** @@ -218,7 +219,8 @@ ethernet_update_adjacency (vnet_main_t * vnm, u32 sw_if_index, u32 ai) } static clib_error_t * -ethernet_mac_change (vnet_hw_interface_t * hi, char *mac_address) +ethernet_mac_change (vnet_hw_interface_t * hi, + const u8 * old_address, const u8 * mac_address) { ethernet_interface_t *ei; ethernet_main_t *em; @@ -633,12 +635,23 @@ simulated_ethernet_admin_up_down (vnet_main_t * vnm, u32 hw_if_index, return 0; } +static clib_error_t * +simulated_ethernet_mac_change (vnet_hw_interface_t * hi, + const u8 * old_address, const u8 * mac_address) +{ + l2input_interface_mac_change (hi->sw_if_index, old_address, mac_address); + + return (NULL); +} + + /* *INDENT-OFF* */ VNET_DEVICE_CLASS (ethernet_simulated_device_class) = { .name = "Loopback", .format_device_name = format_simulated_ethernet_name, .tx_function = simulated_ethernet_interface_tx, .admin_up_down_function = simulated_ethernet_admin_up_down, + .mac_addr_change_function = simulated_ethernet_mac_change, }; /* *INDENT-ON* */ |