static int kernel_rtm (int cmd, struct prefix *p, struct rib *rib) { switch (PREFIX_FAMILY(p)) { case AF_INET: return kernel_rtm_ipv4 (cmd, p, rib); case AF_INET6: return kernel_rtm_ipv6 (cmd, p, rib); } return 0; }
/* Delete IPv6 route from the kernel. */ int kernel_delete_ipv6_old (struct prefix_ipv6 *dest, struct in6_addr *gate, unsigned int index, int flags, int table) { int route; if (zserv_privs.change(ZPRIVS_RAISE)) zlog (NULL, LOG_ERR, "Can't raise privileges"); route = kernel_rtm_ipv6 (RTM_DELETE, dest, gate, index, flags); if (zserv_privs.change(ZPRIVS_LOWER)) zlog (NULL, LOG_ERR, "Can't lower privileges"); return route; }
/* Delete IPv6 route from the kernel. */ int kernel_delete_ipv6_old (struct prefix_ipv6 *dest, struct in6_addr *gate, int index, int flags, int table) { return kernel_rtm_ipv6 (RTM_DELETE, dest, gate, index, flags); }