Friday, February 23, 2024

Re: Programmatically add default IPv6 route

One more information, ENETUNREACH is issued on line 521 of net/route.c.
Could this be some kind of race condition ?

From route monitor, I get this after my RTM_ADD :
```
RTM_CHGADDRATTR: address attributes being changed: len 224, if# 7, name ppp0, metric 0, flags:<UP>
sockaddrs: <NETMASK,IFP,IFA,BRD>
ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff ppp0 fe80::d97e:e77f:db7e:e780%ppp0 fe80::ca4c:75ff:fe16:9f00%ppp0

```


Le Fri, Feb 23, 2024 at 06:25:18PM +0100, Denis Fondras a écrit :
> Hello,
>
> I am trying to add IPv6 support for pppd(8) (IPv6CP) and I encounter a blocker
> when adding a default IPv6 route to PPP peer.
>
> Feb 23 17:26:45 rt-01 pppd[64071]: Couldn't add IPv6 default route: Network is unreachable
>
> Adding the default route from route(8) works when the connection is established.
>
> From what I see with route(8), it sends the same route message as pppd(8).
>
> From `route -v add -inet6 default fe80::ca4c:75ff:fe16:9f00%ppp0` :
>
> ```
> RTM_ADD: Add Route: len 168, priority 0, table 0, if# 0, pid: 0, seq 1, errno 0
> flags:<UP,GATEWAY>
> fmask:
> use: 0 mtu: 0 expire: 0
> locks: inits:
> sockaddrs: <DST,GATEWAY,NETMASK>
> :: fe80::ca4c:75ff:fe16:9f00%ppp0 default
> ```
>
> From pppd(8) :
> ```
> got message of size 168 on Fri Feb 23 17:26:45 2024
> RTM_ADD: Add Route: len 168, priority 0, table 0, if# 0, pid: 64071, seq 1, errno 51
> flags:<UP,GATEWAY>
> fmask:
> use: 0 mtu: 0 expire: 0
> locks: inits:
> sockaddrs: <DST,GATEWAY,NETMASK>
> :: fe80::ca4c:75ff:fe16:9f00%ppp0 default
> ```
>
> However `route monitor -inet6` shows that the message is different when using
> route(8) :
> ```
> got message of size 288 on Fri Feb 23 17:26:22 2024
> RTM_ADD: Add Route: len 288, priority 56, table 0, if# 7, name ppp0, pid: 53003, seq 1, errno 0
> flags:<UP,GATEWAY,DONE>
> fmask:
> use: 0 mtu: 0 expire: 0
> locks: inits:
> sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA,BRD>
> :: fe80::ca4c:75ff:fe16:9f00%ppp0 :: ppp0 fe80::d925:b01f:db25:b020%ppp0 fe80::ca4c:75ff:fe16:9f00%ppp0
> ```
>
> Should I also send the IFP, IFA and BRD sockaddrs from pppd(8) ?
> How comes message sent from route(8) have more attributes when received by
> monitor ?
>
> Denis
>

No comments:

Post a Comment