On 22/11/2015 00:34, Reyk Floeter wrote:
On Sat, Nov 21, 2015 at 04:22:51PM +0100, Momtchil Momtchev wrote:
     Hello,

     Sorry for what may appear to be a strange question, but shouldn't there
be a check against IFBIF_BLOCKNONIP in bridge_output() in
sys/net/if_bridge.c?

Why?  bridge_output() is used for packets that are sent from local
interfaces.  I think you should be aware if you're running any non-IP
service on your OpenBSD machine.

I think your change would also break bridge_send_icmp_err() with
IFBIF_BLOCKNONIP, which is used by bridge_ipsec() and
bridge_fragment(). blocknonip and tunnels are not uncommon.

btw., what OpenBSD version is this diff for?  This is not -current.

Thanks for the quick reply. That was my impression too, but it seems that bridge_output is also used sometimes for forwarding ARP requests by a code path that I haven't found yet - it is not a direct forwarding, it is like some kind of a proxy-ARP mechanism. I have a modified bridge and for me it makes sense (it is for a box that bridges IP6 traffic and routes IP4 traffic - so I am blocking IP4 only with BLOCKNONIP), I just wondered why it was not there and if I was missing something. Who does call bridge_output? Isn't output always on the underlying interface, not directly on the bridge?

Reply via email to