Broadcast messages are being ignored in EthernetII::matches_response function because dest (broadcast) address is being compared to src (iface mac) address before checking if dest represents a multicast address:
If the first if is removed then processing works as expected.
This is applicable, for example, in DHCP negotiation case where DHCP offer is being broadcasted and couldn't be retrieved with send_recv function due to this issue, as in following example:
Broadcast messages are being ignored in
EthernetII::matches_response
function because dest (broadcast) address is being compared to src (iface mac) address before checking if dest represents a multicast address:If the first if is removed then processing works as expected.
This is applicable, for example, in DHCP negotiation case where DHCP offer is being broadcasted and couldn't be retrieved with
send_recv
function due to this issue, as in following example: