aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/ip/ip_api.c
diff options
context:
space:
mode:
authorJon Loeliger <jdl@netgate.com>2017-11-08 13:07:39 -0600
committerChris Luke <chris_luke@comcast.com>2017-11-10 16:17:58 +0000
commitaf8dfbf6d8d3b5430a437e98e18f95998e9559ca (patch)
tree2938bc56ba2eabe9281d9bb5c1da47011f475cad /src/vnet/ip/ip_api.c
parentdbd44561538514f6cfce324419042f2ce69fe214 (diff)
Add sw_if_index to the ip_neighbor_details_t response.
When a DUMP with sw_if_index == ~0 is used to get all Neighbor entries for all interfaces, it is unclear in the details to which interface the neighbor belongs. Clear that up by returning the associated sw_if_index as well. Change-Id: Ib584a57138f7faceffed64d7c1854f7af92e0e42 Signed-off-by: Jon Loeliger <jdl@netgate.com>
Diffstat (limited to 'src/vnet/ip/ip_api.c')
-rw-r--r--src/vnet/ip/ip_api.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/vnet/ip/ip_api.c b/src/vnet/ip/ip_api.c
index 0fdb167312e..222bc822a75 100644
--- a/src/vnet/ip/ip_api.c
+++ b/src/vnet/ip/ip_api.c
@@ -86,7 +86,8 @@ extern void stats_dslock_with_hint (int hint, int tag);
extern void stats_dsunlock (void);
static void
-send_ip_neighbor_details (u8 is_ipv6,
+send_ip_neighbor_details (u32 sw_if_index,
+ u8 is_ipv6,
u8 is_static,
u8 * mac_address,
u8 * ip_address,
@@ -98,6 +99,7 @@ send_ip_neighbor_details (u8 is_ipv6,
memset (mp, 0, sizeof (*mp));
mp->_vl_msg_id = ntohs (VL_API_IP_NEIGHBOR_DETAILS);
mp->context = context;
+ mp->sw_if_index = htonl (sw_if_index);
mp->is_ipv6 = is_ipv6;
mp->is_static = is_static;
memcpy (mp->mac_address, mac_address, 6);
@@ -126,7 +128,8 @@ vl_api_ip_neighbor_dump_t_handler (vl_api_ip_neighbor_dump_t * mp)
vec_foreach (n, ns)
{
send_ip_neighbor_details
- (mp->is_ipv6, ((n->flags & IP6_NEIGHBOR_FLAG_STATIC) ? 1 : 0),
+ (sw_if_index, mp->is_ipv6,
+ ((n->flags & IP6_NEIGHBOR_FLAG_STATIC) ? 1 : 0),
(u8 *) n->link_layer_address,
(u8 *) & (n->key.ip6_address.as_u8),
q, mp->context);
@@ -142,7 +145,7 @@ vl_api_ip_neighbor_dump_t_handler (vl_api_ip_neighbor_dump_t * mp)
/* *INDENT-OFF* */
vec_foreach (n, ns)
{
- send_ip_neighbor_details (mp->is_ipv6,
+ send_ip_neighbor_details (sw_if_index, mp->is_ipv6,
((n->flags & ETHERNET_ARP_IP4_ENTRY_FLAG_STATIC) ? 1 : 0),
(u8*) n->ethernet_address,
(u8*) & (n->ip4_address.as_u8),