summaryrefslogtreecommitdiff
path: root/fw/man
diff options
context:
space:
mode:
authorCalvin Morrison <calvin@pobox.com>2026-08-18 23:21:41 -0400
committerCalvin Morrison <calvin@pobox.com>2026-08-18 23:21:41 -0400
commit8f5fed654d54a9ae9c4eb95425d857e9524b803c (patch)
tree7dfab8fc077fca33664ec7002e9ede657b14256e /fw/man
parent1d2e70b303ee08c17a7f59fa8a1e667b709e9dc2 (diff)
ether: a frame addressed to somebody else is not ours
fw asks the card for promiscuous mode and then hands the protected stack every IP frame that arrives on it, whoever it was for. On a switched network that is mostly nothing; on anything else it is the neighbours' traffic, judged against the rules, counted in stats, and entered in the flow table as conversations that were never ours. A flow created that way outlives the packet that made it and will let traffic past that no rule was asked about. Promiscuous is still needed. The stack behind fw joins multicast groups on a pkt interface, which has no way to tell a card about them, so without it the groups would never be received at all. What it costs is the filter ethermux would otherwise have applied: if(!tome && !multi && !f->prom) continue; Frames addressed to this card, plus broadcast and multicast, would have arrived for nothing. So etherin puts that test back itself: the destination is ours, or it is a group address, or the frame is not ours to look at. No test. This is on the wire side of card mode, and the suite can take a spare card but cannot make a neighbour send to it. Reproducing it needs a second machine on the same segment, which is on the list of things never tested and stays there. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'fw/man')
0 files changed, 0 insertions, 0 deletions