neutron/neutron/tests/unit
Rodolfo Alonso Hernandez 6615f248e2 [OVS][FW] Remote SG IDs left behind when a SG is removed
When any port in the OVS agent is using a security groups (SG) and
this SG is removed, is marked to be deleted. This deletion process
is done in [1].

The SG deletion process consists on removing any reference of this SG
from the firewall and the SG port map. The firewall removes this SG in
[2].

The information of a SG is stored in:
* ConjIPFlowManager.conj_id_map = ConjIdMap(). This class stores the
  conjunction IDS (conj_ids) in a dictionary using the following keys:

    ConjIdMap.id_map[(sg_id, remote_sg_id, direction, ethertype,
      conj_ids)] = conj_id_XXX

* ConjIPFlowManager.conj_ids is a nested dictionary, built in the
  following way:

    self.conj_ids[vlan_tag][(direction, ethertype)][remote_sg_id] = \
      set([conj_id_1, conj_id_2, ...])

This patch stores all conjuntion IDs generated and assigned to the
tuple (sg_id, remote_sg_id, direction, ethertype). When a SG is
removed, the deletion method will look for this SG in the new storage
variable created, ConjIdMap.id_map_group, and will mark all the
conjuntion IDs related to be removed. That will cleanup those rules
left in the OVS matching:
  action=conjunction(conj_id, 1/2)

[1]118930f03d/neutron/agent/linux/openvswitch_firewall/firewall.py (L731)
[2]118930f03d/neutron/agent/linux/openvswitch_firewall/firewall.py (L399)

Conflicts:
      neutron/tests/unit/agent/linux/openvswitch_firewall/test_firewall.py

Change-Id: I63e446a30cf10e7bcd34a6f0d6ba1711301efcbe
Related-Bug: #1881157
(cherry picked from commit 0eebd002cc)
(cherry picked from commit ed22f7a2ff)
2020-07-31 16:05:11 +00:00
..
agent [OVS][FW] Remote SG IDs left behind when a SG is removed 2020-07-31 16:05:11 +00:00
api Merge "Start enforcing E125 flake8 directive" 2019-07-22 15:35:27 +00:00
cmd Remove Neutron LBaaS 2019-09-20 07:46:06 +00:00
common Fix return correct cache when reusing port 2020-04-08 12:08:13 +00:00
conf/agent Agent common config 2017-03-15 09:52:18 -06:00
core_extensions remove neutron.common.exceptions 2019-02-01 14:35:00 -07:00
db [OVN] Allow IP allocation with different segments for OVN service ports 2020-07-27 11:53:37 +00:00
debug Remove deprecated 'external_network_bridge' option 2019-03-09 22:07:38 +00:00
extensions Delete segment RPs when network is deleted 2020-05-26 17:09:31 +00:00
hacking remove string use of neutron.common.rpc 2019-02-08 09:40:39 -07:00
ipam Start enforcing E125 flake8 directive 2019-07-19 23:39:41 -04:00
notifiers Add config option ``http_retries`` 2020-07-09 10:11:43 +00:00
objects Auto-delete dhcp ports on segment delete 2020-07-13 12:43:04 +02:00
pecan_wsgi Removing deprecated module neutron.api.versions 2018-03-28 14:15:50 +07:00
plugins Ensure drop flows on br-int at agent startup for DVR too 2020-07-22 07:31:13 +00:00
privileged Use pyroute2 for SRIOV VF commands 2020-06-03 11:05:20 +00:00
quota use get reader/writer session from neutron-lib 2018-07-06 14:43:31 -06:00
scheduler DVR: Remove control plane arp updates for DVR 2020-06-25 10:15:46 +00:00
services Locate RP-tree parent by hypervisor name 2019-12-20 13:25:13 +01:00
tests Start enforcing E125 flake8 directive 2019-07-19 23:39:41 -04:00
__init__.py Don't set use_stderr to False for tests 2017-04-15 01:41:29 +00:00
_test_extension_portbindings.py Remove the unit test 'test_ports_vnic_type_list' 2018-06-15 15:12:10 +00:00
dummy_plugin.py Remove Neutron LBaaS 2019-09-20 07:46:06 +00:00
extension_stubs.py Consume ServicePluginBase from neutron-lib 2017-03-17 12:06:57 -06:00
test_auth.py Fix context deprecation warnings 2018-02-13 15:02:49 -05:00
test_manager.py Remove Neutron LBaaS 2019-09-20 07:46:06 +00:00
test_neutron_plugin_base_v2.py Add unit test to validate non DB base core plugin can be loaded 2017-11-15 21:21:35 +00:00
test_opts.py Fix the sriov agent config group name 2016-05-05 16:16:08 +08:00
test_policy.py Fix handling of network:shared field in policy module 2019-05-07 11:31:25 +02:00
test_service.py fix test nit 2019-08-04 12:31:46 +08:00
test_worker.py Move AgentStatusCheckWorker to PeriodicWorker 2016-11-17 15:31:19 -08:00
test_wsgi.py Start enforcing E125 flake8 directive 2019-07-19 23:39:41 -04:00
testlib_api.py use SqlFixture and StaticSqlFixture from neutron-lib 2019-07-08 11:26:34 -06:00