Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

asked 2014-05-18 18:36:31 -0500

don gravatar image

trouble creating router port (brctl is already a member of a bridge)

My guest is running and got an ip address from dnsmasq. I'm using namespaces. I'm getting an error in /var/log/neutron/linuxbridge-agent.log:

 "device tapb1a4daed-5d is already a member of a bridge; can't enslave it to bridge brq9b1007d9-0e.\n"

And its trying to do this brctl addif brq9b1007d9-0e tapb1a4daed-5d (which in turn is giving that error).

As a consequence, i cannot reach the external world (since my router port doesn't exist/doesn't come up).

I have one namespace active: # ip netns list qdhcp-9b1007d9-0edc-46f1-891a-b8ed551b1e67

In the root namespace, I recreate the problem in the shell: # brctl addif brq9b1007d9-0e tapb1a4daed-5d device tapb1a4daed-5d is already a member of a bridge; can't enslave it to bridge brq9b1007d9-0e.

I can see in the namespace there is no bridge:

# ip netns exec qdhcp-9b1007d9-0edc-46f1-891a-b8ed551b1e67 bash
# brctl show
bridge name     bridge id               STP enabled     interfaces
# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
285: tap0dcb7825-97: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/ether fa:16:3e:41:f8:72 brd ff:ff:ff:ff:ff:ff

In the root namespace, I see:

# sudo brctl show
bridge name     bridge id               STP enabled     interfaces
brq9b1007d9-0e          8000.000000000000       no
qbr44c0bbeb-ba          8000.000000000000       no
qbrb1a4daed-5d          8000.ceb257658407       no              qvbb1a4daed-5d
                                                        tapb1a4daed-5d
qbrce909133-82          8000.000000000000       no
virbr0          8000.000000000000       yes
vnet0           8000.000000000000       no

# sudo brctl addif brq9b1007d9-0e tapb1a4daed-5d
device tapb1a4daed-5d is already a member of a bridge; can't enslave it to bridge brq9b1007d9-0e.

Any suggestion? the interface is slaved to the wrong bridge (qbrb1a4daed-5d instead of brq9b1007d9-0e).

I'm using neutron, neutron.services.l3_router.l3_router_plugin.L3RouterPlugin, neutron.plugins.ml2.plugin.Ml2Plugin. in ml2, I have

[ml2]
type_drivers = local,flat,vlan,gre,vxlan
mechanism_drivers = openvswitch,linuxbridge
tenant_network_types = local,flat,vlan,gre,vxlan
[ml2_type_flat]
flat_networks = *

/etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini is existing but empty.

/etc/neutron/l3_agent.ini has:

[DEFAULT]
l3_agent_manager = neutron.agent.l3_agent.L3NATAgentWithStateReport
external_network_bridge = br-ex
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
ovs_use_veth = False
root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
use_namespaces = True
router_delete_namespaces = Tru

e

trouble creating router port (brctl is already a member of a bridge)

My guest is running and got an ip address from dnsmasq. I'm using namespaces. I'm getting an error in /var/log/neutron/linuxbridge-agent.log:

 "device tapb1a4daed-5d is already a member of a bridge; can't enslave it to bridge brq9b1007d9-0e.\n"

And its trying to do this brctl addif brq9b1007d9-0e tapb1a4daed-5d (which in turn is giving that error).

As a consequence, i cannot reach the external world (since my router port doesn't exist/doesn't come up).

I have one namespace active: # ip netns list qdhcp-9b1007d9-0edc-46f1-891a-b8ed551b1e67

In the root namespace, I recreate the problem in the shell: # brctl addif brq9b1007d9-0e tapb1a4daed-5d device tapb1a4daed-5d is already a member of a bridge; can't enslave it to bridge brq9b1007d9-0e.

I can see in the namespace there is no bridge:

# ip netns exec qdhcp-9b1007d9-0edc-46f1-891a-b8ed551b1e67 bash
# brctl show
bridge name     bridge id               STP enabled     interfaces
# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
285: tap0dcb7825-97: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/ether fa:16:3e:41:f8:72 brd ff:ff:ff:ff:ff:ff

In the root namespace, I see:

# sudo brctl show
bridge name     bridge id               STP enabled     interfaces
brq9b1007d9-0e          8000.000000000000       no
qbr44c0bbeb-ba          8000.000000000000       no
qbrb1a4daed-5d          8000.ceb257658407       no              qvbb1a4daed-5d
                                                        tapb1a4daed-5d
qbrce909133-82          8000.000000000000       no
virbr0          8000.000000000000       yes
vnet0           8000.000000000000       no

# sudo brctl addif brq9b1007d9-0e tapb1a4daed-5d
device tapb1a4daed-5d is already a member of a bridge; can't enslave it to bridge brq9b1007d9-0e.

Any suggestion? the interface is slaved to the wrong bridge (qbrb1a4daed-5d instead of brq9b1007d9-0e).

I'm using neutron, neutron.services.l3_router.l3_router_plugin.L3RouterPlugin, neutron.plugins.ml2.plugin.Ml2Plugin. in ml2, I have

[ml2]
type_drivers = local,flat,vlan,gre,vxlan
mechanism_drivers = openvswitch,linuxbridge
tenant_network_types = local,flat,vlan,gre,vxlan
[ml2_type_flat]
flat_networks = *

/etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini is existing but empty.

/etc/neutron/l3_agent.ini has:

[DEFAULT]
l3_agent_manager = neutron.agent.l3_agent.L3NATAgentWithStateReport
external_network_bridge = br-ex
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
ovs_use_veth = False
root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
use_namespaces = True
router_delete_namespaces = Tru
True

e

trouble creating router port (brctl is already a member of a bridge)

My guest is running and got an ip address from dnsmasq. I'm using namespaces. I'm getting an error in /var/log/neutron/linuxbridge-agent.log:

 "device tapb1a4daed-5d is already a member of a bridge; can't enslave it to bridge brq9b1007d9-0e.\n"

And its trying to do this brctl addif brq9b1007d9-0e tapb1a4daed-5d (which in turn is giving that error).

As a consequence, i cannot reach the external world (since my router port doesn't exist/doesn't come up).

I have one namespace active: # ip netns list qdhcp-9b1007d9-0edc-46f1-891a-b8ed551b1e67

In the root namespace, I recreate the problem in the shell: # brctl addif brq9b1007d9-0e tapb1a4daed-5d device tapb1a4daed-5d is already a member of a bridge; can't enslave it to bridge brq9b1007d9-0e.

I can see in the namespace there is no bridge:

# ip netns exec qdhcp-9b1007d9-0edc-46f1-891a-b8ed551b1e67 bash
# brctl show
bridge name     bridge id               STP enabled     interfaces
# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
285: tap0dcb7825-97: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/ether fa:16:3e:41:f8:72 brd ff:ff:ff:ff:ff:ff

In the root namespace, I see:

# sudo brctl show
bridge name     bridge id               STP enabled     interfaces
brq9b1007d9-0e          8000.000000000000       no
qbr44c0bbeb-ba          8000.000000000000       no
qbrb1a4daed-5d          8000.ceb257658407       no              qvbb1a4daed-5d
                                                        tapb1a4daed-5d
qbrce909133-82          8000.000000000000       no
virbr0          8000.000000000000       yes
vnet0           8000.000000000000       no

# sudo brctl addif brq9b1007d9-0e tapb1a4daed-5d
device tapb1a4daed-5d is already a member of a bridge; can't enslave it to bridge brq9b1007d9-0e.

Any suggestion? the interface is slaved to the wrong bridge (qbrb1a4daed-5d instead of brq9b1007d9-0e).

I'm using neutron, neutron.services.l3_router.l3_router_plugin.L3RouterPlugin, neutron.plugins.ml2.plugin.Ml2Plugin. in ml2, I have

[ml2]
type_drivers = local,flat,vlan,gre,vxlan
mechanism_drivers = openvswitch,linuxbridge
tenant_network_types = local,flat,vlan,gre,vxlan
[ml2_type_flat]
flat_networks = *

/etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini is existing but empty.

/etc/neutron/l3_agent.ini has:

[DEFAULT]
l3_agent_manager = neutron.agent.l3_agent.L3NATAgentWithStateReport
external_network_bridge = br-ex
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
ovs_use_veth = False
root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
use_namespaces = True
router_delete_namespaces = True

This is on icehouse on 14.04 Ubuntu.