} resolve_t;
static vlib_node_registration_t vpe_resolver_process_node;
-vpe_api_main_t vpe_api_main;
+extern vpe_api_main_t vpe_api_main;
static int arp_change_delete_callback (u32 pool_index, u8 * notused);
static int nd_change_delete_callback (u32 pool_index, u8 * notused);
if (mp->enable_disable)
{
+ rv = vnet_add_del_ip4_arp_change_event
+ (vnm, arp_change_data_callback,
+ mp->pid, &mp->address /* addr, in net byte order */ ,
+ vpe_resolver_process_node.index,
+ IP4_ARP_EVENT, event - am->arp_events, 1 /* is_add */ );
+
+ if (rv)
+ goto out;
pool_get (am->arp_events, event);
memset (event, 0, sizeof (*event));
event->pid = mp->pid;
if (mp->address == 0)
event->mac_ip = 1;
-
- rv = vnet_add_del_ip4_arp_change_event
- (vnm, arp_change_data_callback,
- mp->pid, &mp->address /* addr, in net byte order */ ,
- vpe_resolver_process_node.index,
- IP4_ARP_EVENT, event - am->arp_events, 1 /* is_add */ );
}
else
{
vpe_resolver_process_node.index,
IP4_ARP_EVENT, ~0 /* pool index */ , 0 /* is_add */ );
}
+out:
REPLY_MACRO (VL_API_WANT_IP4_ARP_EVENTS_REPLY);
}
{
vl_api_ip4_arp_event_t *event = va_arg (*args, vl_api_ip4_arp_event_t *);
- s = format (s, "pid %d: ", event->pid);
+ s = format (s, "pid %d: ", ntohl (event->pid));
if (event->mac_ip)
s = format (s, "bd mac/ip4 binding events");
else
{
vl_api_ip6_nd_event_t *event = va_arg (*args, vl_api_ip6_nd_event_t *);
- s = format (s, "pid %d: ", event->pid);
+ s = format (s, "pid %d: ", ntohl (event->pid));
if (event->mac_ip)
s = format (s, "bd mac/ip6 binding events");
else