OpenStack Networking (Neutron)
Go to file
Oleg Bondarev 0ddca28454 Make sure "dead vlan" ports cannot transmit packets
https://review.opendev.org/c/openstack/neutron/+/820897 added
a dead vlan flow that pushes the dead vlan tag onto frames
belonging to dead ports before these ports are reassigned to
their proper vlans. However add_flow and delete_flows race and
delete_flows may run before add_flow, in this case deleting 0 flows
but not giving us a chance to detect this: neither does it throw
an error nor does it return the number of deleted flows.
This leads to port staying inaccessible forever and hence
breaks corresponding DHCP or router.

Current patch suggests another approach to make sure no packets are
leaked from newly plugged ports: setting their "vlan_mode" attribute
to "trunk" and "trunks"=[4095] (along with assigning dead VLAN tag).
With this OVS normal pipeline will allow only packets tagged with 4095
from such ports [1], which normally not happens, but even if it does -
default rule in br-int will drop them anyway.
Thus untagged packets from such ports will also be dropped until
ovs agent sets proper VLAN tag and clears vlan_mode to default
("access").

This approach avoids the race between dhcp/l3 and ovs agents because
dhcp/l3 agents no longer modify flow table.

This partially reverts commit 7aae31c9f9

[1] https://docs.openvswitch.org/en/latest/ref/ovs-actions.7/?highlight=ovs-actions#the-ovs-normal-pipeline

Closes-Bug: #1930414
Closes-Bug: #1959564
Change-Id: I0391dd24224f8656a09ddb002e7dae8783ba37a4
2022-02-04 16:43:03 +03:00
api-ref Fix some typos 2016-06-28 22:46:19 +02:00
devstack Merge "Remove installation of the ovs from the source in Devstack plugin" 2022-01-19 19:30:16 +00:00
doc Update dns_assignment attribute documentation 2022-01-26 18:22:50 -06:00
etc Sync rootwrap.conf from oslo.rootwrap 2022-01-03 09:17:04 +09:00
neutron Make sure "dead vlan" ports cannot transmit packets 2022-02-04 16:43:03 +03:00
playbooks Add functional and fullstack jobs with FIPS enabled 2021-11-17 13:41:40 +01:00
rally-jobs [ci] Fix several rally task arguments 2020-05-06 14:56:27 +03:00
releasenotes Local IP internal documentation and release note 2022-01-26 10:59:16 +00:00
roles Make configure_for_func_testing compatible with e.g. Centos 2022-01-17 12:32:04 +01:00
tools Merge "[OVN] Prevent OVS to OVN migration if firewall "iptables_hybrid"" 2022-01-24 11:12:59 +00:00
vagrant/ovn Fix local neutron folder path in ovn/sparse/Vagrantfile 2020-11-03 17:02:34 +01:00
zuul.d Update irrelevant-files for non scenario jobs 2022-01-27 18:15:26 +05:30
.coveragerc Cleanup coverage configuration 2016-10-17 17:06:19 +05:30
.gitignore Add etc/neutron/*.sample files to be ignored by git 2019-12-12 12:38:24 +01:00
.gitreview OpenDev Migration Patch 2019-04-19 19:38:27 +00:00
.mailmap Add mailmap entry 2014-05-16 13:40:04 -04:00
.pylintrc Remove "six" library 2020-07-28 16:55:52 +00:00
.stestr.conf Fix post gate hook to accommodate for new os-testr 2017-09-12 14:20:12 -06:00
CONTRIBUTING.rst [Community goal] Add contributor and PTL guide 2020-03-03 04:43:26 +01:00
HACKING.rst Follow up for replacing assertItemsEqual 2021-06-03 16:04:07 +00:00
LICENSE Adding Apache Version 2.0 license file. This is the official license agreement under which Quantum code is available to 2011-08-08 12:31:04 -07:00
README.rst Start README.rst with a better title 2019-11-19 17:42:57 +01:00
TESTING.rst Fix links for Source code references 2021-12-02 20:12:34 +05:30
bindep.txt Add functional and fullstack jobs with FIPS enabled 2021-11-17 13:41:40 +01:00
lower-constraints.txt Merge "Disable tracebacks of eventlet.wsgi.server" 2022-01-12 10:39:14 +00:00
plugin.spec Add OVN migration OSP 16.2 option 2021-01-24 17:18:55 +02:00
requirements.txt Merge "Disable tracebacks of eventlet.wsgi.server" 2022-01-12 10:39:14 +00:00
setup.cfg Merge "Add Local IP L2 extension skeleton" 2021-11-30 19:07:48 +00:00
setup.py Updated from global requirements 2017-03-04 11:19:58 +00:00
test-requirements.txt Follow-up: Move linters dependencies to tox.ini 2021-01-07 04:26:07 +09:00
tox.ini Use TOX_CONSTRAINTS_FILE 2021-12-24 10:44:01 +08:00

README.rst

OpenStack Neutron

image

Neutron is an OpenStack project to provide "network connectivity as a service" between interface devices (e.g., vNICs) managed by other OpenStack services (e.g., Nova).

To learn more about neutron:

Get in touch via email. Use [Neutron] in your subject.

To learn how to contribute, please read the CONTRIBUTING.rst file.