diff options
| author | Michael Brown | 2012-06-20 12:56:43 +0200 |
|---|---|---|
| committer | Michael Brown | 2012-06-20 13:01:50 +0200 |
| commit | c0942408b7ab30745952e801381e931b1b947e1f (patch) | |
| tree | b7a3ec2291d7904a97f232d8be350521c08d066c /src/include | |
| parent | [romprefix] Treat 0xffffffff as an error return from PMM (diff) | |
| download | ipxe-c0942408b7ab30745952e801381e931b1b947e1f.tar.gz ipxe-c0942408b7ab30745952e801381e931b1b947e1f.tar.xz ipxe-c0942408b7ab30745952e801381e931b1b947e1f.zip | |
[dhcp] Request broadcast responses when we already have an IPv4 address
FCoE requires the use of multiple local unicast link-layer addresses.
To avoid the complexity of managing multiple addresses, iPXE operates
in promiscuous mode. As a consequence, any unicast packets with
non-matching IPv4 addresses are rejected at the IPv4 layer (rather
than at the link layer).
This can cause problems when issuing a second DHCP request: if the
address chosen by the DHCP server does not match the existing address,
then the DHCP response will itself be rejected.
Fix by requesting a broadcast response from the DHCP server if the
network interface already has any IPv4 addresses.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/ipxe/ip.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/include/ipxe/ip.h b/src/include/ipxe/ip.h index 4366d9ab3..ca508e274 100644 --- a/src/include/ipxe/ip.h +++ b/src/include/ipxe/ip.h @@ -86,4 +86,6 @@ extern struct list_head ipv4_miniroutes; extern struct net_protocol ipv4_protocol __net_protocol; +extern int ipv4_has_any_addr ( struct net_device *netdev ); + #endif /* _IPXE_IP_H */ |
