diff options
Diffstat (limited to 'src/vnet/ethernet')
-rw-r--r-- | src/vnet/ethernet/arp.c | 15 | ||||
-rw-r--r-- | src/vnet/ethernet/arp_packet.h | 5 |
2 files changed, 17 insertions, 3 deletions
diff --git a/src/vnet/ethernet/arp.c b/src/vnet/ethernet/arp.c index 925fb2cc6ac..9114d7a90f3 100644 --- a/src/vnet/ethernet/arp.c +++ b/src/vnet/ethernet/arp.c @@ -2498,11 +2498,22 @@ ethernet_arp_change_mac (u32 sw_if_index) } void -send_ip4_garp (vlib_main_t * vm, vnet_hw_interface_t * hi) +send_ip4_garp (vlib_main_t * vm, const vnet_hw_interface_t * hi) +{ + ip4_main_t *i4m = &ip4_main; + ip4_address_t *ip4_addr = + ip4_interface_first_address (i4m, hi->sw_if_index, 0); + + send_ip4_garp_w_addr (vm, ip4_addr, hi); +} + +void +send_ip4_garp_w_addr (vlib_main_t * vm, + const ip4_address_t * ip4_addr, + const vnet_hw_interface_t * hi) { ip4_main_t *i4m = &ip4_main; u32 sw_if_index = hi->sw_if_index; - ip4_address_t *ip4_addr = ip4_interface_first_address (i4m, sw_if_index, 0); if (ip4_addr) { diff --git a/src/vnet/ethernet/arp_packet.h b/src/vnet/ethernet/arp_packet.h index 661f33f93af..4b7b0482fb7 100644 --- a/src/vnet/ethernet/arp_packet.h +++ b/src/vnet/ethernet/arp_packet.h @@ -167,7 +167,10 @@ typedef struct ethernet_arp_ip4_entry_t *ip4_neighbor_entries (u32 sw_if_index); u8 *format_ethernet_arp_ip4_entry (u8 * s, va_list * va); -void send_ip4_garp (vlib_main_t * vm, vnet_hw_interface_t * hi); +void send_ip4_garp (vlib_main_t * vm, const vnet_hw_interface_t * hi); +void send_ip4_garp_w_addr (vlib_main_t * vm, + const ip4_address_t * ip4_addr, + const vnet_hw_interface_t * hi); #endif /* included_ethernet_arp_packet_h */ |