david/ipxe
Archived
1
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 445ac9fbdc [netdevice] Use link-layer address as part of RNG seed
iPXE currently seeds the random number generator using the system
timer tick count.  When large numbers of machines are booted
simultaneously, multiple machines may end up choosing the same DHCP
transaction ID (XID) value; this can cause problems.

Fix by using the least significant (and hence most variable) bits of
each network device's link-layer address to perturb the random number
generator.  This introduces some per-machine unique data into the
random number generator's seed, and so reduces the chances of DHCP XID
collisions.

This does not affect the ANS X9.82-compatible random bit generator
used by TLS and other cryptography code, which uses an entirely
separate source of entropy.

Originally-implemented-by: Bernhard Kohl <bernhard.kohl@nsn.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2013-04-19 14:34:03 +01:00
..
80211 [libc] Use __einfo() tuple as first argument to EUNIQ() 2013-04-19 00:45:13 +01:00
infiniband [infiniband] Include destination address vector in ib_complete_recv() 2012-08-31 21:22:58 +01:00
tcp [build] Include version number within only a single object file 2012-11-02 14:46:39 +00:00
udp [uuid] Abstract UUID mangling code out to a separate uuid_mangle() function 2013-03-20 15:06:40 +00:00
aoe.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
arp.c [arp] Increase robustness of ARP discarder 2012-10-19 23:03:38 +01:00
cachedhcp.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
dhcpopts.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
dhcppkt.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
eapol.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
eth_slow.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
ethernet.c [ethernet] Expose eth_broadcast as a global constant 2012-08-31 20:21:10 +01:00
fakedhcp.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
fc.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
fcels.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
fcns.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
fcoe.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
fcp.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
icmp.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
icmpv6.c [build] Fix misaligned table entries when using gcc 4.5 2010-08-20 10:13:04 +01:00
infiniband.c [infiniband] Include destination address vector in ib_complete_recv() 2012-08-31 21:22:58 +01:00
iobpad.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
ipv4.c [dhcp] Request broadcast responses when we already have an IPv4 address 2012-06-20 12:01:50 +01:00
ipv6.c [netdevice] Allow link layer to report broadcast/multicast packets via pull() 2011-07-15 18:48:46 +01:00
ndp.c [build] Rename gPXE to iPXE 2010-04-19 23:43:39 +01:00
netdev_settings.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
netdevice.c [netdevice] Use link-layer address as part of RNG seed 2013-04-19 14:34:03 +01:00
nullnet.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
rarp.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
retry.c [retry] Expose retry_poll() to explicitly poll all running timers 2012-08-31 20:21:15 +01:00
tcp.c [tcp] Truncate TCP window to prevent future packet discards 2012-07-09 10:13:47 +01:00
tcpip.c [tcpip] Allow for architecture-specific TCP/IP checksum routines 2012-06-27 19:15:17 +01:00
tls.c [tls] Concatenate received non-data records before processing 2013-01-31 09:59:36 +00:00
udp.c [udp] Propagate transmission errors to UDP interface users 2012-02-20 19:29:49 +00:00
validator.c [crypto] Fix unused-but-set variable warning 2012-05-23 23:48:12 +01:00
vlan.c [netdevice] Add vlan_tag() to get the VLAN tag of a network device 2013-03-01 16:11:40 +00:00