script: don't ignore RA with zero router lifetime
authorGasper Stukelj <[email protected]>
Mon, 8 Apr 2024 09:48:09 +0000 (11:48 +0200)
committerÁlvaro Fernández Rojas <[email protected]>
Tue, 14 Oct 2025 06:38:39 +0000 (08:38 +0200)
commit70f7467db3010af421a2ca528c92313dd3fb2dcc
tree2a9b08fd7e4cdda10f3b4737e462b6013a31ae6c
parent6ca1552cb3fe1a50153d8c2bfa4067513afcdd6b
script: don't ignore RA with zero router lifetime

As per RFC 4861 (section 4.2), 0 is a valid value for
Router Lifetime field in Router Advertisement messages.
To quote from the RFC:

> A Lifetime of 0 indicates that the router is not a
> default router and SHOULD NOT appear on the default
> router list.

In fact, this is the mechanism by which a router,
previously advertising itself as a default router must
invalidate itself. From the RFC 7084 (4.1, G-5):

> By default, if the IPv6 CE router is an advertising
> router and loses its IPv6 default router(s) and/or
> detects loss of connectivity on the WAN interface,
> it MUST explicitly invalidate itself as an IPv6
> default router on each of its advertising interfaces
> by immediately transmitting one or more Router
> Advertisement messages with the "Router Lifetime"
> field set to zero [RFC4861].

Given that Router Lifetime is stored in the `valid`
field of the `struct odhcp6c_entry`, entries with
the field set to 0 shouldn't be ignored when entry
type is `ENTRY_ROUTE`.

Signed-off-by: Gasper Stukelj <[email protected]>
Link: https://github.com/openwrt/odhcp6c/pull/84
Signed-off-by: Álvaro Fernández Rojas <[email protected]>
src/script.c