Re: [Ebtables-user] bridge/ebtables interaction...

Bart De Schuymer <[email protected]>
Newsgroups gmane.linux.network.bridge.ebtables.devel
Message-ID <[email protected]>
Op ma, 23-05-2005 te 11:51 -0400, schreef Jon Anderson:
> Bart De Schuymer wrote:
> 
> >Just add the call to the brouting chain in the function
> >br_handle_frame_continue as the first code inside the
> >BR_STATE_FORWARDING if construct. That way, you introduce a new chain
> >without breaking anything.
> >
> I'm uncertain about the behavior of okfn in the hook. (I couldn't find
> any documentation about okfn.) In br_handle_frame, returning 0 means the
> packet should be processed further, returning 1 means it was handled;
> the brouting stuff returns 0, and everything else returns 1.

I am not in favor of adding a new NF_HOOK to the kernel. The chain call
length is long enough as it is.

I think something similar to the way the BROUTING chain is called should
be preferred. It's similar to an NF_HOOK call, but has the advantage
that the chain call length isn't increased. Something like this (adding
the appropriate code elsewhere):

--- net/bridge/br_input.c.old	2005-05-23 20:04:30.651219488 +0000
+++ net/bridge/br_input.c	2005-05-23 20:10:11.493403600 +0000
@@ -109,8 +109,16 @@ int br_handle_frame(struct net_bridge_po
 		goto err;
 
 	if (p->state == BR_STATE_LEARNING ||
-	    p->state == BR_STATE_FORWARDING)
+	    p->state == BR_STATE_FORWARDING) {
+		if (br_intial_hook) {
+			if (br_initial_hook(pskb)) { /* Should only be used for filtering,
+			                              * so the skb should not have changed */
+				kfree_skb(*pskb);
+				return 0;
+			}
+		}
 		br_fdb_insert(p->br, p, eth_hdr(skb)->h_source, 0);
+	}
 
 	if (p->br->stp_enabled &&
 	    !memcmp(dest, bridge_ula, 5) &&


Stephen, would you have any objection to something like the above?

> Also, should this discussion be moved to the devel list?

Done.

cheers,
Bart




-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_id=7412&alloc_id=16344&op=click
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.