Changeset View
Changeset View
Standalone View
Standalone View
netinet6/nd6.c
Show First 20 Lines • Show All 1,558 Lines • ▼ Show 20 Lines | |||||
* both of which were installed by a redirect. | * both of which were installed by a redirect. | ||||
*/ | */ | ||||
static void | static void | ||||
nd6_free_redirect(const struct llentry *ln) | nd6_free_redirect(const struct llentry *ln) | ||||
{ | { | ||||
int fibnum; | int fibnum; | ||||
struct sockaddr_in6 sin6; | struct sockaddr_in6 sin6; | ||||
struct rt_addrinfo info; | struct rt_addrinfo info; | ||||
struct rib_cmd_info rc; | |||||
struct epoch_tracker et; | struct epoch_tracker et; | ||||
lltable_fill_sa_entry(ln, (struct sockaddr *)&sin6); | lltable_fill_sa_entry(ln, (struct sockaddr *)&sin6); | ||||
memset(&info, 0, sizeof(info)); | memset(&info, 0, sizeof(info)); | ||||
info.rti_info[RTAX_DST] = (struct sockaddr *)&sin6; | info.rti_info[RTAX_DST] = (struct sockaddr *)&sin6; | ||||
info.rti_filter = nd6_isdynrte; | info.rti_filter = nd6_isdynrte; | ||||
NET_EPOCH_ENTER(et); | NET_EPOCH_ENTER(et); | ||||
for (fibnum = 0; fibnum < rt_numfibs; fibnum++) | for (fibnum = 0; fibnum < rt_numfibs; fibnum++) | ||||
rtrequest1_fib(RTM_DELETE, &info, NULL, fibnum); | rib_action(fibnum, RTM_DELETE, &info, &rc); | ||||
NET_EPOCH_EXIT(et); | NET_EPOCH_EXIT(et); | ||||
} | } | ||||
/* | /* | ||||
* Updates status of the default router route. | * Updates status of the default router route. | ||||
*/ | */ | ||||
void | void | ||||
nd6_subscription_cb(struct rib_head *rnh, struct rib_cmd_info *rc, void *arg) | nd6_subscription_cb(struct rib_head *rnh, struct rib_cmd_info *rc, void *arg) | ||||
▲ Show 20 Lines • Show All 1,075 Lines • Show Last 20 Lines |