tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: SOLVED: Multicast problems with bridge(4) ports

  The problem is that bridge_broadcast() only puts broadcast packets
  onto the output queue of the interfaces it is broadcasting the packet
  to and doesn't put a copy onto their input queues. I just added a
  small lump of code to copy the packet appropriately and I used M_LINK2
  to avoid broadcasting packets that have already been broadcast.

  The NetBSD bridge(4) code for handling unicast packets has a short
  circuit in it that allows an input packet to be switched onto another
  interface as ether_input() passes it up the protocol stack, but this
  can't be done for broadcasts because each interface needs its own copy
  of the packet.

Do you think the underlying problem affects v4/v6 equally, and it's a
simple case of missing broadcasts?  Do you think multicast is handled
correctly with your fix?

There's something uncomfortable about sending the packet in as well as
out every bridged interface, but I think that's just wrong intuition on
my part - if there were an external bridge, the packet would simply
appear on every network (v6 link).  So your change really  does seem to
replicate the behavior of an external bridge.

Attachment: pgpf0raRrID29.pgp
Description: PGP signature

Home | Main Index | Thread Index | Old Index