yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #63241
[Bug 1682805] [NEW] transient switching loop caused by neutron-openvswitch-agent
Public bug reported:
If we have the topology bellow in network node.
https://etherpad.openstack.org/p/neutron_transient_switching_loop
The ports on switch connected to eth0 and eth1 set to trunk all VLANs.
When neutron-openvswitch-agent restart, First it will set br-int bridge by self.setup_integration_br(), then set br-eth0 and br-ex by self.setup_physical_bridges(self.bridge_mappings).
Before this bug (https://bugs.launchpad.net/neutron/+bug/1383674), all flows in br-int will clear when neutron-openvswitch-agent restart, this will cause the transient switching loop decribed bellow.
After the bug above fixed, the flows in br-int will remain to keep the network connected if neutron-openvswitch-agent restart, but if the network node reboot, the transient switching loop will also happen as decribed bellow.
In self.setup_integration_br(), A normal flow in table 0 will be added in br-int flow.
In the self.setup_physical_bridges(self.bridge_mappings), Drop flow for packet coming from int-br-eth0 and int-br-ex will be added in br-int flow.
This drop flows will cut the switching loop from switch to br-int.
But before the drop flows added to br-int, If there is a broadcast packet coming from switch, the packet will loop bewtween switch and br-int.
We should add normal flow in table 0 in br-int after the drop flows
added.
** Affects: neutron
Importance: Undecided
Assignee: Jesse (jesse-5)
Status: New
** Description changed:
If we have the topology bellow in network node.
- +-------------------------------------------+
- | |
- | switch |
- +---------+---------------------+-----------+
- | |
- +------------------------------------------------------------+
- | | | |
- | +----+-----+ +----+-----+ |
- | | eth0 | | eth1 | |
- | +--+----------+--+ +--+----------+--+ |
- | | | | | |
- | | br-eth0 | | br-ex | |
- | +-------+--------+ +-------+--------+ |
- | | | |
- | | | |
- | +---------+---------------------+-----------+ |
- | | | |
- | | br-int | |
- | +-------------------------------------------+ |
- | |
- | |
- | network node |
- +------------------------------------------------------------+
+ +-------------------------------------------+
+ | |
+ | switch |
+ +---------+---------------------+-----------+
+ | |
+ +------------------------------------------------------------+
+ | | | |
+ | +----+-----+ +----+-----+ |
+ | | eth0 | | eth1 | |
+ | +--+----------+--+ +--+----------+--+ |
+ | | | | | |
+ | | br-eth0 | | br-ex | |
+ | +-------+--------+ +-------+--------+ |
+ | | | |
+ | | | |
+ | +---------+---------------------+-----------+ |
+ | | | |
+ | | br-int | |
+ | +-------------------------------------------+ |
+ | |
+ | |
+ | network node |
+ +------------------------------------------------------------+
The ports on switch connected to eth0 and eth1 set to trunk all VLANs.
When neutron-openvswitch-agent restart, First it will set br-int bridge by self.setup_integration_br(), then set br-eth0 and br-ex by self.setup_physical_bridges(self.bridge_mappings).
Before this bug (https://bugs.launchpad.net/neutron/+bug/1383674), all flows in br-int will clear when neutron-openvswitch-agent restart, this will cause the transient switching loop decribed bellow.
After the bug above fixed, the flows in br-int will remain to keep the network connected if neutron-openvswitch-agent restart, but if the network node reboot, the transient switching loop will also happen as decribed bellow.
In self.setup_integration_br(), A normal flow in table 0 will be added in br-int flow.
In the self.setup_physical_bridges(self.bridge_mappings), Drop flow for packet coming from int-br-eth0 and int-br-ex will be added in br-int flow.
This drop flows will cut the switching loop from switch to br-int.
But before the drop flows added to br-int, If there is a broadcast packet coming from switch, the packet will loop bewtween switch and br-int.
We should add normal flow in table 0 in br-int after the drop flows
added.
** Description changed:
If we have the topology bellow in network node.
-
- +-------------------------------------------+
- | |
- | switch |
- +---------+---------------------+-----------+
- | |
- +------------------------------------------------------------+
- | | | |
- | +----+-----+ +----+-----+ |
- | | eth0 | | eth1 | |
- | +--+----------+--+ +--+----------+--+ |
- | | | | | |
- | | br-eth0 | | br-ex | |
- | +-------+--------+ +-------+--------+ |
- | | | |
- | | | |
- | +---------+---------------------+-----------+ |
- | | | |
- | | br-int | |
- | +-------------------------------------------+ |
- | |
- | |
- | network node |
- +------------------------------------------------------------+
+ <pre>
+ +-------------------------------------------+
+ | |
+ | switch |
+ +---------+---------------------+-----------+
+ | |
+ +------------------------------------------------------------+
+ | | | |
+ | +----+-----+ +----+-----+ |
+ | | eth0 | | eth1 | |
+ | +--+----------+--+ +--+----------+--+ |
+ | | | | | |
+ | | br-eth0 | | br-ex | |
+ | +-------+--------+ +-------+--------+ |
+ | | | |
+ | | | |
+ | +---------+---------------------+-----------+ |
+ | | | |
+ | | br-int | |
+ | +-------------------------------------------+ |
+ | |
+ | |
+ | network node |
+ +------------------------------------------------------------+
+ </pre>
The ports on switch connected to eth0 and eth1 set to trunk all VLANs.
When neutron-openvswitch-agent restart, First it will set br-int bridge by self.setup_integration_br(), then set br-eth0 and br-ex by self.setup_physical_bridges(self.bridge_mappings).
Before this bug (https://bugs.launchpad.net/neutron/+bug/1383674), all flows in br-int will clear when neutron-openvswitch-agent restart, this will cause the transient switching loop decribed bellow.
After the bug above fixed, the flows in br-int will remain to keep the network connected if neutron-openvswitch-agent restart, but if the network node reboot, the transient switching loop will also happen as decribed bellow.
In self.setup_integration_br(), A normal flow in table 0 will be added in br-int flow.
In the self.setup_physical_bridges(self.bridge_mappings), Drop flow for packet coming from int-br-eth0 and int-br-ex will be added in br-int flow.
This drop flows will cut the switching loop from switch to br-int.
But before the drop flows added to br-int, If there is a broadcast packet coming from switch, the packet will loop bewtween switch and br-int.
We should add normal flow in table 0 in br-int after the drop flows
added.
** Description changed:
If we have the topology bellow in network node.
- <pre>
+
+-------------------------------------------+
| |
| switch |
+---------+---------------------+-----------+
| |
+------------------------------------------------------------+
| | | |
| +----+-----+ +----+-----+ |
| | eth0 | | eth1 | |
| +--+----------+--+ +--+----------+--+ |
| | | | | |
| | br-eth0 | | br-ex | |
| +-------+--------+ +-------+--------+ |
| | | |
| | | |
| +---------+---------------------+-----------+ |
| | | |
| | br-int | |
| +-------------------------------------------+ |
| |
| |
| network node |
+------------------------------------------------------------+
- </pre>
+
The ports on switch connected to eth0 and eth1 set to trunk all VLANs.
When neutron-openvswitch-agent restart, First it will set br-int bridge by self.setup_integration_br(), then set br-eth0 and br-ex by self.setup_physical_bridges(self.bridge_mappings).
Before this bug (https://bugs.launchpad.net/neutron/+bug/1383674), all flows in br-int will clear when neutron-openvswitch-agent restart, this will cause the transient switching loop decribed bellow.
After the bug above fixed, the flows in br-int will remain to keep the network connected if neutron-openvswitch-agent restart, but if the network node reboot, the transient switching loop will also happen as decribed bellow.
In self.setup_integration_br(), A normal flow in table 0 will be added in br-int flow.
In the self.setup_physical_bridges(self.bridge_mappings), Drop flow for packet coming from int-br-eth0 and int-br-ex will be added in br-int flow.
This drop flows will cut the switching loop from switch to br-int.
But before the drop flows added to br-int, If there is a broadcast packet coming from switch, the packet will loop bewtween switch and br-int.
We should add normal flow in table 0 in br-int after the drop flows
added.
** Description changed:
If we have the topology bellow in network node.
- +-------------------------------------------+
- | |
- | switch |
- +---------+---------------------+-----------+
- | |
- +------------------------------------------------------------+
- | | | |
- | +----+-----+ +----+-----+ |
- | | eth0 | | eth1 | |
- | +--+----------+--+ +--+----------+--+ |
- | | | | | |
- | | br-eth0 | | br-ex | |
- | +-------+--------+ +-------+--------+ |
- | | | |
- | | | |
- | +---------+---------------------+-----------+ |
- | | | |
- | | br-int | |
- | +-------------------------------------------+ |
- | |
- | |
- | network node |
- +------------------------------------------------------------+
+ https://etherpad.openstack.org/p/neutron_transient_switching_loop
The ports on switch connected to eth0 and eth1 set to trunk all VLANs.
When neutron-openvswitch-agent restart, First it will set br-int bridge by self.setup_integration_br(), then set br-eth0 and br-ex by self.setup_physical_bridges(self.bridge_mappings).
Before this bug (https://bugs.launchpad.net/neutron/+bug/1383674), all flows in br-int will clear when neutron-openvswitch-agent restart, this will cause the transient switching loop decribed bellow.
After the bug above fixed, the flows in br-int will remain to keep the network connected if neutron-openvswitch-agent restart, but if the network node reboot, the transient switching loop will also happen as decribed bellow.
In self.setup_integration_br(), A normal flow in table 0 will be added in br-int flow.
In the self.setup_physical_bridges(self.bridge_mappings), Drop flow for packet coming from int-br-eth0 and int-br-ex will be added in br-int flow.
This drop flows will cut the switching loop from switch to br-int.
But before the drop flows added to br-int, If there is a broadcast packet coming from switch, the packet will loop bewtween switch and br-int.
We should add normal flow in table 0 in br-int after the drop flows
added.
** Changed in: neutron
Assignee: (unassigned) => Jesse (jesse-5)
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1682805
Title:
transient switching loop caused by neutron-openvswitch-agent
Status in neutron:
New
Bug description:
If we have the topology bellow in network node.
https://etherpad.openstack.org/p/neutron_transient_switching_loop
The ports on switch connected to eth0 and eth1 set to trunk all VLANs.
When neutron-openvswitch-agent restart, First it will set br-int bridge by self.setup_integration_br(), then set br-eth0 and br-ex by self.setup_physical_bridges(self.bridge_mappings).
Before this bug (https://bugs.launchpad.net/neutron/+bug/1383674), all flows in br-int will clear when neutron-openvswitch-agent restart, this will cause the transient switching loop decribed bellow.
After the bug above fixed, the flows in br-int will remain to keep the network connected if neutron-openvswitch-agent restart, but if the network node reboot, the transient switching loop will also happen as decribed bellow.
In self.setup_integration_br(), A normal flow in table 0 will be added in br-int flow.
In the self.setup_physical_bridges(self.bridge_mappings), Drop flow for packet coming from int-br-eth0 and int-br-ex will be added in br-int flow.
This drop flows will cut the switching loop from switch to br-int.
But before the drop flows added to br-int, If there is a broadcast packet coming from switch, the packet will loop bewtween switch and br-int.
We should add normal flow in table 0 in br-int after the drop flows
added.
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1682805/+subscriptions
Follow ups