Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

router: implement RFC 7084 errata 7699 #211

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Commits on Dec 22, 2023

  1. router: implement RFC 7084 errata 7699

    RFC 7084 L-3 requires router advertisement daemon to send RIO for
    every prefix delegation that allocates a prefix on the interface.
    There is one special case though where PIO advertise the on-link
    prefix route that conflicts with the RIO prefix.
    
    Example:
     - CE-Router receives IA-PD 2001:db8:1234::/64
     - this prefix delegation gets assigned to the lan interface
     - odhcpd advertise on-link PIO with prefix 2001:db8:1234::/64
    
    If original RFC 7084 L-3 would be followed, RA will also contain
    a RIO with prefix 2001:db8:1234::/64 which will require lan hosts
    to add the routes
       2001:db8:1234::/64 dev br-lan # the on-link prefix route
       2001:db8:1234::/64 dev br-lan nexthop fe80::1 # RIO route
    
    Signed-off-by: Alin Nastac <[email protected]>
    alinnastac authored and Alin Nastac committed Dec 22, 2023
    Configuration menu
    Copy the full SHA
    ca463da View commit details
    Browse the repository at this point in the history

Commits on Jan 30, 2024

  1. advertise removed prefix delegation in RIO with lifetime 0

    RFC 4191 section 4 states:
       ... When ceasing to be an advertising
       interface and sending Router Advertisements with a Router Lifetime of
       zero, the Router Advertisement SHOULD also set the Route Lifetime to
       zero in all Route Information Options.
    
    Since RIOs reflect the prefix delegations owned by the router, it is
    reasonable to assume that invalid RIOs should be sent along invalid PIOs
    required by RFC 7084 L-13.
    
    This extends the functionality introduced in commit 83e14f4 where
    removed addresses were advertised as invalid PIO in 3 consecutive RAs.
    
    Other related improvements introduced here:
       - further precaution has been taken in netlink.c to prevent possible
        overlapping between current list of interface IPv6 addresses and the
        list of invalid addresses
       - IPv6 route parsing was moved to netlink.c and was splitted in 2
         functions; this allows dprefix caching in iface->addr6 list,
         necessary for generating invalid RIOs after prefix get deleted
       - all prefixes are advertised as invalid on odhcpd shutdown
    
    Signed-off-by: Alin Nastac <[email protected]>
    alinnastac committed Jan 30, 2024
    Configuration menu
    Copy the full SHA
    5c732e0 View commit details
    Browse the repository at this point in the history