if (mp->is_ipv6)
{
/* *INDENT-OFF* */
- foreach_ip_interface_address (lm6, ia, sw_if_index,
- 1 /* honor unnumbered */,
+ /* Do not send subnet details of the IP-interface for
+ * unnumbered interfaces. otherwise listening clients
+ * will be confused that the subnet is applied on more
+ * than one interface */
+ foreach_ip_interface_address (lm6, ia, sw_if_index, 0,
({
r6 = ip_interface_address_get_address (lm6, ia);
u16 prefix_length = ia->address_length;
else
{
/* *INDENT-OFF* */
- foreach_ip_interface_address (lm4, ia, sw_if_index,
- 1 /* honor unnumbered */,
+ foreach_ip_interface_address (lm4, ia, sw_if_index, 0,
({
r4 = ip_interface_address_get_address (lm4, ia);
u16 prefix_length = ia->address_length;
ra_report_t *ra_events = event_data;
for (i = 0; i < vec_len (ra_events); i++)
{
+ ip6_neighbor_public_main_t *npm = &ip6_neighbor_public_main;
+ call_ip6_neighbor_callbacks (&ra_events[i],
+ npm->ra_report_functions);
+
vpe_client_registration_t *reg;
/* *INDENT-OFF* */
pool_foreach(reg, vpe_api_main.ip6_ra_events_registrations,
rp = pool_elt_at_index (am->ip6_ra_events_registrations, p[0]);
pool_put (am->ip6_ra_events_registrations, rp);
hash_unset (am->ip6_ra_events_registration_hash, mp->client_index);
- if (pool_elts (am->ip6_ra_events_registrations) == 0)
- ra_set_publisher_node (~0, REPORT_MAX);
goto reply;
}
}
rp->client_pid = ntohl (mp->pid);
hash_set (am->ip6_ra_events_registration_hash, rp->client_index,
rp - am->ip6_ra_events_registrations);
- ra_set_publisher_node (wc_arp_process_node.index, RA_REPORT);
reply:
REPLY_MACRO (VL_API_WANT_IP6_RA_EVENTS_REPLY);
*/
setup_message_id_table (am);
+ ra_set_publisher_node (wc_arp_process_node.index, RA_REPORT);
+
return 0;
}