Merge "Fix OVS conjunctive IP flows cleanup" into stable/victoria
This commit is contained in:
commit
97cb79df82
|
@ -1508,4 +1508,9 @@ class OVSFirewallDriver(firewall.FirewallDriver):
|
|||
# the actions field is bogus anyway.
|
||||
del flow['actions']
|
||||
del flow['priority']
|
||||
# NOTE(hangyang) If cookie is not set then _delete_flows will
|
||||
# use the OVSBridge._default_cookie to filter the flows but that
|
||||
# will not match with the ip flow's cookie so OVS won't actually
|
||||
# delete the flow
|
||||
flow['cookie'] = ovs_lib.COOKIE_ANY
|
||||
self._delete_flows(deferred=False, **flow)
|
||||
|
|
|
@ -1046,6 +1046,16 @@ class TestOVSFirewallDriver(base.BaseTestCase):
|
|||
addr_to_conj = {'addr1': {8, 16, 24}}
|
||||
self._test_delete_flows_for_flow_state(addr_to_conj, False)
|
||||
|
||||
def test_delete_flow_for_ip_using_cookie_any(self):
|
||||
with mock.patch.object(self.firewall, '_delete_flows') as \
|
||||
mock_delete_flows:
|
||||
self.firewall.delete_flow_for_ip(('10.1.2.3', None),
|
||||
constants.INGRESS_DIRECTION,
|
||||
constants.IPv4, 100, [0])
|
||||
_, kwargs = mock_delete_flows.call_args
|
||||
self.assertIn('cookie', kwargs)
|
||||
self.assertIs(ovs_lib.COOKIE_ANY, kwargs['cookie'])
|
||||
|
||||
|
||||
class TestCookieContext(base.BaseTestCase):
|
||||
def setUp(self):
|
||||
|
|
Loading…
Reference in New Issue