Lars Eggert wrote:
That patch (new version attached) turned out to only fix part of the problem.This causes the problem decribed in PR kern/41632 (http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/41632), where dhcpd "listens" on interface A which is bridged to interface B. When A has no carrier, DHCP requests arriving on B are ignored. When A has a carrier, dhcp will get a copy of the packet when it is bridge-forwarded out A, so the problem doesn't occur then.Attached is a rough patch to if_ethersubr.c that fixes the problem.
When bridge-forwarding packets to an interface without a carrier, they start to fill up its outbout queue. Once the queue is full, new packets that are routed to that interfaces won't be bridged anymore.
This happens in the example above with dhcpd. DHCP requests come in on B and get bridge-forwarded to A (filling up A's outbound queue). dhcpd generates responses, which are sent via A and then bridge-forwarded to B. Once A's outbound queue is full, those responses fall on the floor.
Attached is an ugly hack that fixes this in my setup.
The next issue is bridge interactions with IPv6 stateless autoconf. IPv6 doesn't like link-local addresses appearing on (apparently) different interfaces...
Lars
--
Lars Eggert <[EMAIL PROTECTED]> USC Information Sciences Institute
smime.p7s
Description: S/MIME Cryptographic Signature