search for: br_port

Displaying 9 results from an estimated 9 matches for "br_port".

2007 Apr 18
0
[Bridge] [PATCH 2.4] (1/2) bridge - backport of API checking
...linux/inetdevice.h> #include <linux/rtnetlink.h> #include <linux/brlock.h> +#include <linux/etherdevice.h> #include <asm/uaccess.h> #include "br_private.h" @@ -44,7 +45,7 @@ struct net_bridge_port *p; struct net_bridge_port **pptr; - if ((p = dev->br_port) == NULL) + if ((p = dev->br_port) == NULL || p->br != br) return -EINVAL; br_stp_disable_port(p); @@ -231,6 +232,9 @@ if (dev->hard_start_xmit == br_dev_xmit) return -ELOOP; + + if (!is_valid_ether_addr(dev->dev_addr)) + return -EADDRNOTAVAIL; dev_hold(dev); write_...
2009 Jun 15
1
[Bridge] [PATCH][RFC] net/bridge: add basic VEPA support
...ULL) { struct sk_buff *skb2; diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c index 8a96672..22239ef 100644 --- a/net/bridge/br_if.c +++ b/net/bridge/br_if.c @@ -146,6 +146,8 @@ static void del_nbp(struct net_bridge_port *p) list_del_rcu(&p->list); rcu_assign_pointer(dev->br_port, NULL); + if (br->uplink == p) + br->uplink = NULL; kobject_uevent(&p->kobj, KOBJ_REMOVE); kobject_del(&p->kobj); @@ -203,6 +205,7 @@ static struct net_device *new_bridge_dev(struct net *net, const char *name) br->topology_change = 0; br->topology_change_detecte...
2009 Jun 15
1
[Bridge] [PATCH][RFC] net/bridge: add basic VEPA support
...ULL) { struct sk_buff *skb2; diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c index 8a96672..22239ef 100644 --- a/net/bridge/br_if.c +++ b/net/bridge/br_if.c @@ -146,6 +146,8 @@ static void del_nbp(struct net_bridge_port *p) list_del_rcu(&p->list); rcu_assign_pointer(dev->br_port, NULL); + if (br->uplink == p) + br->uplink = NULL; kobject_uevent(&p->kobj, KOBJ_REMOVE); kobject_del(&p->kobj); @@ -203,6 +205,7 @@ static struct net_device *new_bridge_dev(struct net *net, const char *name) br->topology_change = 0; br->topology_change_detecte...
2009 Jun 15
1
[Bridge] [PATCH][RFC] net/bridge: add basic VEPA support
...ULL) { struct sk_buff *skb2; diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c index 8a96672..22239ef 100644 --- a/net/bridge/br_if.c +++ b/net/bridge/br_if.c @@ -146,6 +146,8 @@ static void del_nbp(struct net_bridge_port *p) list_del_rcu(&p->list); rcu_assign_pointer(dev->br_port, NULL); + if (br->uplink == p) + br->uplink = NULL; kobject_uevent(&p->kobj, KOBJ_REMOVE); kobject_del(&p->kobj); @@ -203,6 +205,7 @@ static struct net_device *new_bridge_dev(struct net *net, const char *name) br->topology_change = 0; br->topology_change_detecte...
2009 Apr 21
2
[Bridge] NIC unicast macs table manipulation by bridge
Using a Linux bridge I see that none of the interfaces is set to promiscuous mode but on the other hand I don't see any dev_unicast_xxx calls in the bridge code... for the case of one of the interfaces being a physical NIC (e.g eth1), what's the magic that makes the NIC RX filtering be willing to accept frames whos dest mac isn't the NIC "primary" unicast mac? Also is there
2007 Apr 18
1
[Bridge] A question about modify bridge source
...t;BRIDGE",IFNAMSIZ); ether_setup(&br->dev); Bridge_dev_setup(&br->dev); br->lock = RW_LOCK_UNLOCKED; br->hash_lock = RW_LOCK_UNLOCKED; register_netdev(&br->dev); // netif_start_queue(&br->dev); ethdev = dev_get_by_name("eth0"); ethdev->br_port = (struct net_bridge_port *)br; dev_set_promiscuity(ethdev,1); dev_hold(ethdev); return br; } static void Bridge_passup(struct sk_buff *skb) { skb->dev = &brg->dev; skb->pkt_type = PACKET_HOST; skb_push(skb,ETH_HLEN); skb->protocol = eth_type_trans(skb,&brg->dev); ne...
2007 Apr 18
4
[Bridge] [PATCH/RFC] Let {ip, arp}tables "see" bridged VLAN tagged {I, AR}P packets
...h> #include <linux/skbuff.h> #include <linux/if_ether.h> +#include <linux/if_vlan.h> #include <linux/netfilter_bridge.h> #include <linux/netfilter_ipv4.h> #include <linux/netfilter_arp.h> @@ -40,6 +47,11 @@ #define has_bridge_parent(device) ((device)->br_port != NULL) #define bridge_parent(device) ((device)->br_port->br->dev) +#define IS_VLAN_IP (skb->protocol == __constant_htons(ETH_P_8021Q) && \ + hdr->h_vlan_encapsulated_proto == __constant_htons(ETH_P_IP)) +#define IS_VLAN_ARP (skb->protocol == __constant_htons(ETH_P_80...
2007 Apr 18
5
[Bridge] RFC: [PATCH] bridge vlan integration
...lan_filter(skb, &p->vlan)) + return 0; +#endif + + return 1; } static inline unsigned packet_length(const struct sk_buff *skb) @@ -47,6 +56,10 @@ int br_dev_queue_push_xmit(struct sk_buf { skb_push(skb, ETH_HLEN); + if (br_vlan_output_frame(&skb, + skb->dev->br_port->vlan.untagged)) + return 0; + dev_queue_xmit(skb); } } Index: wireless-dev/net/bridge/br_if.c =================================================================== --- wireless-dev.orig/net/bridge/br_if.c +++ wireless-dev/net/bridge/br_if.c @@ -227,6 +227,7 @@ static struct net_devic...
2007 Aug 23
3
[Bridge] bridge problem when one interface is in blocking mode
Hi, We have a simple bridge setup but the ping (and other network traffic) does not work reliably. After tracing the code, it looks like a software bug. Since bridge software is been running by thousands of people. I guess I am wrong. Anyway, here is the problem. There are 2 boxes and each one has 2 interfaces, 1 ethernet and 1 wifi. STP is enabled for the bridge to avoid the loop. So the box 1