neutron/neutron
Rodolfo Alonso Hernandez 0eebd002cc [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)

Change-Id: I63e446a30cf10e7bcd34a6f0d6ba1711301efcbe
Related-Bug: #1881157
2020-07-20 08:45:46 +00:00
..
agent [OVS][FW] Remote SG IDs left behind when a SG is removed 2020-07-20 08:45:46 +00:00
api Remove usage of six.add_metaclass 2020-05-21 14:41:18 -04:00
cmd Merge "Migrate "dhcp_release" to oslo.privsep" 2020-07-08 16:01:21 +00:00
common Merge "[OVN] Use new distributed device_owner for OVN distributed services" 2020-07-10 10:43:19 +00:00
conf Merge "Add config option ``http_retries``" 2020-07-08 23:16:53 +00:00
core_extensions Remove usage of six.add_metaclass 2020-05-21 14:41:18 -04:00
db Merge "[DVR] Related routers should be included if are requested" 2020-07-10 13:23:10 +00:00
debug Fix neutron debug probe to use integration_bridge 2020-03-31 11:17:47 +00:00
extensions Remove usage of six.text_type and six.string_type 2020-05-22 14:02:55 -04:00
hacking Catch additional invalid mock import statement 2020-05-19 17:25:33 -04:00
ipam [OVN] Use new distributed device_owner for OVN distributed services 2020-07-08 13:26:35 +00:00
locale Imported Translations from Zanata 2020-05-03 07:38:11 +00:00
notifiers Add config option ``http_retries`` 2020-06-29 22:07:46 -04:00
objects Auto-delete dhcp ports on segment delete 2020-07-08 15:15:08 +02:00
pecan_wsgi Set DB retry for quota_enforcement pecan_wsgi hook 2019-11-08 15:34:17 +04:00
plugins Merge "[OVN] Use new distributed device_owner for OVN distributed services" 2020-07-10 10:43:19 +00:00
privileged Merge "Implement "BridgeDevice" with Pyroute2" 2020-07-10 00:36:48 +00:00
profiling Add profiler decorator to Neutron 2019-10-31 10:05:01 -05:00
quota Remove usage of six.text_type and six.string_type 2020-05-22 14:02:55 -04:00
scheduler L3 agent scheduler should return a valid index if manual scheduling 2020-06-24 15:37:23 +00:00
server Re-use existing ProcessLauncher from wsgi in RPC workers 2020-02-07 14:51:06 +01:00
services Merge "Optionally use admin powers when deleting DNS records" 2020-07-12 12:16:21 +00:00
tests [OVS][FW] Remote SG IDs left behind when a SG is removed 2020-07-20 08:45:46 +00:00
__init__.py Remove usage of six.PY2 2020-05-22 12:59:01 -04:00
_i18n.py Make code follow log translation guideline 2017-08-14 02:01:48 +00:00
auth.py
manager.py Remove usage of six.add_metaclass 2020-05-21 14:41:18 -04:00
neutron_plugin_base_v2.py Remove usage of six.add_metaclass 2020-05-21 14:41:18 -04:00
opts.py No rpc_response_max_timeout in LB-agent 2020-06-01 15:25:20 +00:00
policy.py Remove usage of six.text_type and six.string_type 2020-05-22 14:02:55 -04:00
service.py Re-use existing ProcessLauncher from wsgi in RPC workers 2020-02-07 14:51:06 +01:00
version.py
worker.py Change process name of neutron-server to match worker role 2019-03-01 14:18:09 -05:00
wsgi.py Remove usage of six.text_type and six.string_type 2020-05-22 14:02:55 -04:00