Skip to content

eqvinox/vpls-linux-kernel

Repository files navigation

Linux kernel RFC6724 rule 5.5, source address selection half
============================================================

How this works, when you need to pick a source address, is:

1. you do a routing lookup for your destination with :: as the source address.
1a. if the route you found has a "prefsrc", you're done.
2. jump into the source address selection and run the other rules
3. every address that is left when you arrive at 5.5:
3a. do another routing lookup for your destination, but with the source set.
    Crucially, this step will hit a source-specific route, if one exists.
3b. if nexthop you found is the same as the one in 1., that source address
    is preferred over ones that don't match on nexthop.
4. apply the other 6724 rules

This patchset does NOT install source-specific routes.  There will be more
patching to make the kernel do this for RAs it receives, but you can just set
them manually, e.g.

`ip -6 route add ::/0 from 2001:db8::/64 via fe80::3456 dev eth0`

Note you either need unqualified routes (`from ::/0`) or special
source-selection routes (`from ::/128`) for step 1 to work.