diff options
author | Michael Brown | 2016-07-25 16:20:22 +0200 |
---|---|---|
committer | Michael Brown | 2016-07-25 16:20:22 +0200 |
commit | a4c4f72297bea6902001ce813aaf432bd49d382d (patch) | |
tree | b685b22a5472252bfa6699b2a19cd89b9073fb34 /src/interface | |
parent | [test] Update IPv6 tests to use okx() (diff) | |
download | ipxe-a4c4f72297bea6902001ce813aaf432bd49d382d.tar.gz ipxe-a4c4f72297bea6902001ce813aaf432bd49d382d.tar.xz ipxe-a4c4f72297bea6902001ce813aaf432bd49d382d.zip |
[ipv6] Allow for multiple routers
Select the IPv6 source address and corresponding router (if any) using
a very simplified version of the algorithm from RFC6724:
- Ignore any source address that has a smaller scope than the
destination address. For example, do not use a link-local source
address when sending to a global destination address.
- If we have a source address which is on the same link as the
destination address, then use that source address.
- If we are left with multiple possible source addresses, then choose
the address with the smallest scope. For example, if we are sending
to a site-local destination address and we have both a global source
address and a site-local source address, then use the site-local
source address.
- If we are still left with multiple possible source addresses, then
choose the address with the longest matching prefix.
For the purposes of this algorithm, we treat RFC4193 Unique Local
Addresses as having organisation-local scope. Since we use only
link-local scope for our multicast transmissions, this approximation
should remain valid in all practical situations.
Originally-implemented-by: Thomas Bächler <thomas@archlinux.org>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/interface')
0 files changed, 0 insertions, 0 deletions