X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fethernet%2Finterface.c;h=e0d1295f69d88aadb4c78b96c1e4b984cf10e97c;hb=d63abff00f2aa234242a76aa0a4b5a38dfe1aee2;hp=bef13b8672c04946cd337358bc0e86e2b318f494;hpb=78451a6a660cd26a67d2284219f48878a2dfe2c3;p=vpp.git diff --git a/src/vnet/ethernet/interface.c b/src/vnet/ethernet/interface.c index bef13b8672c..e0d1295f69d 100644 --- a/src/vnet/ethernet/interface.c +++ b/src/vnet/ethernet/interface.c @@ -42,6 +42,7 @@ #include #include #include +#include #include /** @@ -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; @@ -340,6 +342,7 @@ ethernet_delete_interface (vnet_main_t * vnm, u32 hw_if_index) if (vlan_table->vlans[idx].qinqs) { pool_put_index (em->qinq_pool, vlan_table->vlans[idx].qinqs); + vlan_table->vlans[idx].qinqs = 0; } } pool_put_index (em->vlan_pool, main_intf->dot1q_vlans); @@ -353,6 +356,7 @@ ethernet_delete_interface (vnet_main_t * vnm, u32 hw_if_index) if (vlan_table->vlans[idx].qinqs) { pool_put_index (em->qinq_pool, vlan_table->vlans[idx].qinqs); + vlan_table->vlans[idx].qinqs = 0; } } pool_put_index (em->vlan_pool, main_intf->dot1ad_vlans); @@ -633,12 +637,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* */