and
10.0.2.21, sends packets to
10.0.2.103
10.0.2.104
These should be two independent IP subnets, though they share the same physical ethernet.
However, if 10.0.1.21 sends a broadcast to 10.0.1.255, it is received not only by 10.0.1.101 and 102,
but also by 10.0.2.21 ! (I have not checked on 103 and 104).
Is this a bug or does someone know why this is not being filtered out by the netmask on 10.0.2.21?
I have done more testing and have more info, as the problem seems to only occur under certain conditions:
Setup is netmask 255.255.255.0 on all devices (all W5100)
10.0.1.21 sends direct UDP data to 10.0.1.101 and 10.0.1.102
also sometimes it sends broadcasts to 255.255.255.255 and sometimes only to 10.0.1.255
if another W5100, address 10.0.2.21 is listening for UDP packets on same port, it sees the 255.255.255.255 broadcasts but not the 10.0.1.255 broadcast, and this is correct. 10.0.2.21 is also sending direct packets to two other W5100, 10.0.2.103 and 10.0.2.104 (these only listen for packets and I think not relevant).
However, if 10.0.2.21 now sends a broadcast to 10.0.2.255, then it starts receiving broadcasts for 10.0.1.255! it seems like sending a broadcast packet breaks the incoming filter.
I tested about your question using W5100E01-AVR(firmware v1.4.5).
So far it’s been no problem.
If possible, can you upload your driver’s source code onto here(related send function)?