[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-bridge
Subject:    [Bridge] Earlier patch and br_input.c
From:       D Yun <yun14u () yahoo ! com>
Date:       2003-02-23 7:37:01
[Download RAW message or body]

Ooops ... one more time
I'm a newbie to this mailing list.  I'm trying to use
the following patch to apply to br_input.c ; however,
the patch was rejected.  Could somebody look into the
patch and make the right change ?
Thanks a bunch,
Peter Nguyen




----------This is from an earlier patch--------------
diff -Naur linux-2.4.10/net/bridge/br_input.c
linux-2.4.10-bridge/net/bridge/br_input.c
--- linux-2.4.10/net/bridge/br_input.c  Wed Aug 15
10:54:39 2001
+++ linux-2.4.10-bridge/net/bridge/br_input.c   Mon
Sep 24 14:21:40 2001
@@ -4,6 +4,7 @@
  *
  *     Authors:
  *     Lennert Buytenhek              
<buytenh@gnu.org>
+ *      Arne Fitzenreiter (MAC Filter) 
<arne@fitzenreiter.de>
  *
  *     $Id: br_input.c,v 1.9 2001/08/14 22:05:57
davem Exp $
  *
@@ -50,11 +51,14 @@
 {
        struct net_bridge *br;
        unsigned char *dest;
+       unsigned char *src;
+
        struct net_bridge_fdb_entry *dst;
        struct net_bridge_port *p;
        int passedup;

        dest = skb->mac.ethernet->h_dest;
+       src = skb->mac.ethernet->h_source;

        p = skb->dev->br_port;
        br = p->br;
@@ -63,6 +67,22 @@
        if (!(br->dev.flags & IFF_UP) ||
            p->state == BR_STATE_DISABLED)
                goto freeandout;
+
+       if (br->flt_dest) {
+               if (br->flt_dest_allow) {
+                       if (br_ftdb_get(br,dest)) goto
freeandout;
+               } else {
+                       if (! br_ftdb_get(br,dest))
goto freeandout;
+               }
+       }
+
+       if (br->flt_src) {
+               if (br->flt_src_allow) {
+                       if (br_ftdb_get(br,src)) goto
freeandout;
+               } else {
+                       if (! br_ftdb_get(br,src))
goto freeandout;
+               }
+       }

        if (br->dev.flags & IFF_PROMISC) {
                struct sk_buff *skb2;




----------This is from br_input.c--------------------
static int br_handle_frame_finish(struct sk_buff *skb)
{
        struct net_bridge *br;
        unsigned char *dest;
        struct net_bridge_fdb_entry *dst;
        struct net_bridge_port *p;
        int passedup;

        dest = skb->mac.ethernet->h_dest;

        p = skb->dev->br_port;
        if (p == NULL)
                goto err_nolock;

        br = p->br;
        read_lock(&br->lock);
        if (skb->dev->br_port == NULL)
                goto err;

        passedup = 0;
        if (br->dev.flags & IFF_PROMISC) {
                struct sk_buff *skb2;

                skb2 = skb_clone(skb, GFP_ATOMIC);
                if (skb2 != NULL) {
                        passedup = 1;
                        br_pass_frame_up(br, skb2);
                }
        }

        if (dest[0] & 1) {
                br_flood_forward(br, skb, !passedup);
                if (!passedup)
                        br_pass_frame_up(br, skb);
                goto out;
        }

        dst = br_fdb_get(br, dest);
        if (dst != NULL && dst->is_local) {
                if (!passedup)
                        br_pass_frame_up(br, skb);
                else
                        kfree_skb(skb);
                br_fdb_put(dst);
                goto out;
        }

        if (dst != NULL) {
                br_forward(dst->dst, skb);
                br_fdb_put(dst);
                goto out;
        }

        br_flood_forward(br, skb, 0);

out:
        read_unlock(&br->lock);
        return 0;

err:
        read_unlock(&br->lock);
err_nolock:
        kfree_skb(skb);
        return 0;
}


__________________________________________________
Do you Yahoo!?
Yahoo! Tax Center - forms, calculators, tips, more
http://taxes.yahoo.com/
_______________________________________________
Bridge mailing list
Bridge@math.leidenuniv.nl
http://www.math.leidenuniv.nl/mailman/listinfo/bridge
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic