david/ipxe
david
/
ipxe
Archived
1
0
Fork 0
This repository has been archived on 2020-12-06. You can view files and clone it, but cannot push or open issues or pull requests.
ipxe/src/net
Michael Brown a4c4f72297 [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>
2016-07-25 15:20:22 +01:00
..
80211 [netdevice] Allow network devices to disclaim IRQ support at runtime 2015-07-28 15:14:40 +01:00
infiniband [xsigo] Add support for Xsigo virtual Ethernet (XVE) EoIB devices 2016-03-09 08:46:24 +00:00
oncrpc [nfs] Rewrite NFS URI handling 2014-05-18 21:53:39 +01:00
tcp [iscsi] Treat redirection failures as fatal 2016-07-04 16:20:07 +01:00
udp [ipv6] Create routing table based on IPv6 settings 2016-07-20 13:02:44 +01:00
aoe.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 16:35:29 +00:00
arp.c [arp] Validate length of ARP packet 2016-03-12 01:24:03 +00:00
dhcpopts.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:50:42 +00:00
dhcppkt.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
eapol.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
eth_slow.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 16:35:29 +00:00
ethernet.c [ethernet] Make LACP support configurable at build time 2016-04-18 10:08:46 +01:00
fakedhcp.c [pxe] Populate ciaddr in fake PXE Boot Server ACK packet 2015-09-01 21:24:02 +01:00
fc.c [build] Fix the REQUIRE_SYMBOL mechanism 2015-03-05 00:59:38 +00:00
fcels.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
fcns.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
fcoe.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
fcp.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
fragment.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
icmp.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
icmpv4.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
icmpv6.c [ipv6] Disambiguate received ICMPv6 errors 2015-05-11 12:45:14 +01:00
infiniband.c [infiniband] Make IPoIB support configurable at build time 2016-03-09 08:43:40 +00:00
iobpad.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
ipv4.c [settings] Create space for IPv6 in settings display order 2016-07-15 17:39:49 +01:00
ipv6.c [ipv6] Allow for multiple routers 2016-07-25 15:20:22 +01:00
ndp.c [ipv6] Rename ipv6_scope to ipv6_settings_scope 2016-07-21 15:47:45 +01:00
neighbour.c [neighbour] Return success when deferring a packet 2015-05-20 15:29:36 +01:00
netdev_settings.c [netdevice] Return ENOENT for an unknown bus type 2016-03-29 20:59:30 +01:00
netdevice.c [netdevice] Fix failure path in register_netdev() 2016-05-23 14:17:47 +01:00
nullnet.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
pccrc.c [peerdist] Include trimmed range within content information block 2015-07-28 15:22:26 +01:00
pccrd.c [peerdist] Add support for constructing and decoding discovery messages 2015-07-28 16:09:14 +01:00
peerblk.c [peerdist] Avoid NULL pointer dereference for plaintext blocks 2015-09-29 01:24:36 +01:00
peerdisc.c [peerdist] Add segment discovery mechanism 2015-08-17 13:24:39 +01:00
peerdist.c [peerdist] Add support for PeerDist (aka BranchCache) HTTP content encoding 2015-08-17 13:24:40 +01:00
peermux.c [peerdist] Add block download multiplexer 2015-08-17 13:24:39 +01:00
ping.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
rarp.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
retry.c [retry] Colourise debug output 2015-03-05 11:25:54 +00:00
rndis.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
socket.c [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 14:17:31 +00:00
stp.c [stp] Fix incorrectly disambiguated errors 2016-01-14 12:39:35 +00:00
tcp.c [tcp] Send TCP keepalives on idle established connections 2016-06-13 09:58:32 +01:00
tcpip.c [tcpip] Allow supported address families to be detected at runtime 2015-09-01 21:04:45 +01:00
tls.c [tls] Avoid potential out-of-bound reads in length fields 2016-03-11 16:09:40 +00:00
udp.c [tcpip] Avoid generating positive zero for transmitted UDP checksums 2015-09-10 14:46:54 +01:00
validator.c [crypto] Allow cross-certificate source to be configured at build time 2016-03-24 19:25:03 +00:00
vlan.c [netdevice] Allow network devices to disclaim IRQ support at runtime 2015-07-28 15:14:40 +01:00