Displaying 8 results from an estimated 8 matches for "br_stp_disable_port".
2007 Apr 18
1
[Bridge] Lost TCP packet
...ived.
In fact, the packet is thrown by the bridge because, in
br_input.c::br_handle_frame(), state==BR_STATE_DISABLED which force
the code to jump to the err: tag at the end of this function.
The state is set to this value while an event is received inside
br_notify.c::br_device_event(), which do a br_stp_disable_port().
After putting some printk in br_notify.c, i remarked that this event
come regularly, and always related to the same bridge port (eth1).
It don't hurt me that this event come regularly, but problem is when a
packet is flowing in the same time thru the bridge, which cause it to
be lost.
I sus...
2007 Apr 18
0
[Bridge] [PATCH] Fix deadlock in br_stp_disable_bridge
...@@ void br_stp_disable_bridge(struct net_br
{
struct net_bridge_port *p;
- spin_lock(&br->lock);
+ spin_lock_bh(&br->lock);
list_for_each_entry(p, &br->port_list, list) {
if (p->state != BR_STATE_DISABLED)
br_stp_disable_port(p);
@@ -76,7 +76,7 @@ void br_stp_disable_bridge(struct net_br
br->topology_change = 0;
br->topology_change_detected = 0;
- spin_unlock(&br->lock);
+ spin_unlock_bh(&br->lock);
del_timer_sync(&br->hello_timer);
del_timer_sync(...
2007 Apr 18
0
[Bridge] [PATCH] Fix deadlock in br_stp_disable_bridge (2nd try)
...@@ void br_stp_disable_bridge(struct net_br
{
struct net_bridge_port *p;
- spin_lock(&br->lock);
+ spin_lock_bh(&br->lock);
list_for_each_entry(p, &br->port_list, list) {
if (p->state != BR_STATE_DISABLED)
br_stp_disable_port(p);
@@ -76,7 +76,7 @@ void br_stp_disable_bridge(struct net_br
br->topology_change = 0;
br->topology_change_detected = 0;
- spin_unlock(&br->lock);
+ spin_unlock_bh(&br->lock);
del_timer_sync(&br->hello_timer);
del_timer_sync(...
2007 Apr 18
0
[Bridge] [PATCH 2.4] (1/2) bridge - backport of API checking
...clude <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_lock_bh(&br->lock);
2009 Aug 13
4
[Bridge] [PATCH] net/bridge: Add 'hairpin' port forwarding mode
This patch adds a 'hairpin' (also called 'reflective relay') mode
port configuration to the Linux Ethernet bridge kernel module.
A bridge supporting hairpin forwarding mode can send frames back
out through the port the frame was received on.
Hairpin mode is required to support basic VEPA (Virtual
Ethernet Port Aggregator) capabilities.
You can find additional information on VEPA
2009 Aug 13
4
[Bridge] [PATCH] net/bridge: Add 'hairpin' port forwarding mode
This patch adds a 'hairpin' (also called 'reflective relay') mode
port configuration to the Linux Ethernet bridge kernel module.
A bridge supporting hairpin forwarding mode can send frames back
out through the port the frame was received on.
Hairpin mode is required to support basic VEPA (Virtual
Ethernet Port Aggregator) capabilities.
You can find additional information on VEPA
2009 Aug 13
4
[Bridge] [PATCH] net/bridge: Add 'hairpin' port forwarding mode
This patch adds a 'hairpin' (also called 'reflective relay') mode
port configuration to the Linux Ethernet bridge kernel module.
A bridge supporting hairpin forwarding mode can send frames back
out through the port the frame was received on.
Hairpin mode is required to support basic VEPA (Virtual
Ethernet Port Aggregator) capabilities.
You can find additional information on VEPA
2007 Apr 18
1
[Bridge] [BRIDGE] Unaligned access on IA64 when comparing ethernet addresses
...<emkravts@openvz.org>
Signed-off-by: Kirill Korotaev <dev@openvz.org>
Signed-off-by: Pavel Emelianov <xemul@openvz.org>
---
--- a/net/bridge/br_stp_if.c 2006-09-20 07:42:06.000000000 +0400
+++ b/net/bridge/br_stp_if.c 2007-04-13 12:28:08.000000000 +0400
@@ -124,7 +124,9 @@ void br_stp_disable_port(struct net_brid
/* called under bridge lock */
void br_stp_change_bridge_id(struct net_bridge *br, const unsigned char *addr)
{
- unsigned char oldaddr[6];
+ /* should be aligned on 2 bytes for compare_ether_addr() */
+ unsigned short oldaddr_aligned[ETH_ALEN >> 1];
+ unsigned char *oldadd...