mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-11 13:17:49 +00:00
zebra: remove unused netlink_route()/kernel_rtm_ipv6()
kernel_delete_ipv6_old(), removed in 51bdeba a little while ago, was the last user of netlink_route() and kernel_rtm_ipv6(). Everything else uses the _multipath variants of these functions. Signed-off-by: David Lamparter <equinox@opensourcerouting.org> (cherry picked from commit 872b0dc0537b62503d98bafd3075553795c847cb)
This commit is contained in:
parent
1bc3a9de3e
commit
908d1631b6
@ -279,67 +279,6 @@ sin6_masklen (struct in6_addr mask)
|
|||||||
}
|
}
|
||||||
#endif /* SIN6_LEN */
|
#endif /* SIN6_LEN */
|
||||||
|
|
||||||
/* Interface between zebra message and rtm message. */
|
|
||||||
static int
|
|
||||||
kernel_rtm_ipv6 (int message, struct prefix_ipv6 *dest,
|
|
||||||
struct in6_addr *gate, int index, int flags)
|
|
||||||
{
|
|
||||||
struct sockaddr_in6 *mask;
|
|
||||||
struct sockaddr_in6 sin_dest, sin_mask, sin_gate;
|
|
||||||
|
|
||||||
memset (&sin_dest, 0, sizeof (struct sockaddr_in6));
|
|
||||||
sin_dest.sin6_family = AF_INET6;
|
|
||||||
#ifdef SIN6_LEN
|
|
||||||
sin_dest.sin6_len = sizeof (struct sockaddr_in6);
|
|
||||||
#endif /* SIN6_LEN */
|
|
||||||
|
|
||||||
memset (&sin_mask, 0, sizeof (struct sockaddr_in6));
|
|
||||||
|
|
||||||
memset (&sin_gate, 0, sizeof (struct sockaddr_in6));
|
|
||||||
sin_gate.sin6_family = AF_INET6;
|
|
||||||
#ifdef SIN6_LEN
|
|
||||||
sin_gate.sin6_len = sizeof (struct sockaddr_in6);
|
|
||||||
#endif /* SIN6_LEN */
|
|
||||||
|
|
||||||
sin_dest.sin6_addr = dest->prefix;
|
|
||||||
|
|
||||||
if (gate)
|
|
||||||
memcpy (&sin_gate.sin6_addr, gate, sizeof (struct in6_addr));
|
|
||||||
|
|
||||||
/* Under kame set interface index to link local address. */
|
|
||||||
#ifdef KAME
|
|
||||||
|
|
||||||
#define SET_IN6_LINKLOCAL_IFINDEX(a, i) \
|
|
||||||
do { \
|
|
||||||
(a).s6_addr[2] = ((i) >> 8) & 0xff; \
|
|
||||||
(a).s6_addr[3] = (i) & 0xff; \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
if (gate && IN6_IS_ADDR_LINKLOCAL(gate))
|
|
||||||
SET_IN6_LINKLOCAL_IFINDEX (sin_gate.sin6_addr, index);
|
|
||||||
#endif /* KAME */
|
|
||||||
|
|
||||||
if (gate && dest->prefixlen == 128)
|
|
||||||
mask = NULL;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
masklen2ip6 (dest->prefixlen, &sin_mask.sin6_addr);
|
|
||||||
sin_mask.sin6_family = AF_INET6;
|
|
||||||
#ifdef SIN6_LEN
|
|
||||||
sin_mask.sin6_len = sin6_masklen (sin_mask.sin6_addr);
|
|
||||||
#endif /* SIN6_LEN */
|
|
||||||
mask = &sin_mask;
|
|
||||||
}
|
|
||||||
|
|
||||||
return rtm_write (message,
|
|
||||||
(union sockunion *) &sin_dest,
|
|
||||||
(union sockunion *) mask,
|
|
||||||
gate ? (union sockunion *)&sin_gate : NULL,
|
|
||||||
index,
|
|
||||||
flags,
|
|
||||||
0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Interface between zebra message and rtm message. */
|
/* Interface between zebra message and rtm message. */
|
||||||
static int
|
static int
|
||||||
kernel_rtm_ipv6_multipath (int cmd, struct prefix *p, struct rib *rib,
|
kernel_rtm_ipv6_multipath (int cmd, struct prefix *p, struct rib *rib,
|
||||||
|
Loading…
Reference in New Issue
Block a user