mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-29 00:12:45 +00:00
Once ppp session is over, the route to ff02::tun0/32 was
deleted, and never came back. Now, the route to ff02::tun0/32 is installed at the end of IPV6CP negitiaton.
This commit is contained in:
parent
058543317c
commit
3efad8b488
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=112618
@ -81,6 +81,12 @@
|
||||
|
||||
|
||||
#ifndef NOINET6
|
||||
#define IN6ADDR_LINKLOCAL_MCAST_INIT \
|
||||
{{{ 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }}}
|
||||
static const struct in6_addr in6addr_linklocal_mcast =
|
||||
IN6ADDR_LINKLOCAL_MCAST_INIT;
|
||||
|
||||
static int ipv6cp_LayerUp(struct fsm *);
|
||||
static void ipv6cp_LayerDown(struct fsm *);
|
||||
static void ipv6cp_LayerStart(struct fsm *);
|
||||
@ -190,7 +196,8 @@ ipcp_SetIPv6address(struct ipv6cp *ipv6cp, u_char *myifid, u_char *hisifid)
|
||||
{
|
||||
struct bundle *bundle = ipv6cp->fsm.bundle;
|
||||
struct in6_addr myaddr, hisaddr;
|
||||
struct ncprange myrange;
|
||||
struct ncprange myrange, range;
|
||||
struct ncpaddr addr;
|
||||
struct sockaddr_storage ssdst, ssgw, ssmask;
|
||||
struct sockaddr *sadst, *sagw, *samask;
|
||||
|
||||
@ -227,6 +234,10 @@ ipcp_SetIPv6address(struct ipv6cp *ipv6cp, u_char *myifid, u_char *hisifid)
|
||||
iface_Clear(bundle->iface, &bundle->ncp, AF_INET6,
|
||||
IFACE_CLEAR_ALIASES|IFACE_SYSTEM);
|
||||
|
||||
ncpaddr_setip6(&addr, &in6addr_linklocal_mcast);
|
||||
ncprange_set(&range, &addr, 32);
|
||||
rt_Set(bundle, RTM_ADD, &range, &ipv6cp->myaddr, 1, 0);
|
||||
|
||||
if (bundle->ncp.cfg.sendpipe > 0 || bundle->ncp.cfg.recvpipe > 0) {
|
||||
ncprange_getsa(&myrange, &ssgw, &ssmask);
|
||||
if (ncpaddr_isset(&ipv6cp->hisaddr))
|
||||
|
Loading…
Reference in New Issue
Block a user