inetstack
inetstack copied to clipboard
[ethernet] Hardware Address Filtering Doesn't Accept Multicast
Description
In the top-level src/lib.rs, the do_receive routine attempts to filter out packets sent to "bad" hardware addresses. Currently, this only allows for a single local ethernet address, and the broadcast ethernet address. This should also accept a number of multicast addresses, or all multicast addresses. For our purposes, all multicast addresses would be fine.
I have currently commented out the "physical destination address mismatch" error return until this is fixed.
Note: the easiest way to fix this would be to add a "is_multicast" method to our MacAddress type, which is defined in the "runtime" repo, in src/network/types/macaddr.rs, similar to how "is_broadcast" is defined there.