yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #62688
[Bug 1557620] Fix merged to neutron (master)
Reviewed: https://review.openstack.org/437952
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=d761d26225a8fc63e512fc26b864a46c0956e19a
Submitter: Jenkins
Branch: master
commit d761d26225a8fc63e512fc26b864a46c0956e19a
Author: Thomas Morin <thomas.morin@xxxxxxxxxx>
Date: Thu Feb 23 17:44:38 2017 -0500
delete_flows shall only touch flows with the bridge cookie
With this change delete_flows will only remove flows matching the default
cookie of the bridge.
The uninstall_flows implementation in the native bridge is also modified
to touch only the flows with the bridge cookie.
To still allow deletion of all cookies, cookie=COOKIE_ANY is introduced
as a special value, and used in the agent code in the places where the
intent is indeed to clean all flows whatever their cookie is.
Partial-Bug: #1557620
Change-Id: Idd0531cedda87224531cb8fb6a912ccd0f1554d5
** Changed in: neutron
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1557620
Title:
OVSCookieBridge not applying extension cookie to all flow operations
Status in neutron:
Fix Released
Bug description:
The OVSCookieBridge class does properly the job of applying the
extension-specific cookie when calls are made to
add_flow/mod_flow/delete_flows.
However if methods that call self.add/mod/delete_flow() are called on
an OVSCookieBridge instance, the call will be passed to the underlying
bridge and the implementation in the underlying bridge will call its
own add_flow method that is not cookie aware, and the extension-
specific cookie will not be applied.
Better with an example:
Assuming:
- a = ovs_ofctl.br_tun.OVSTunnelBridge(...)
- c = OVSCookieBridge(a)
Then calling c.install_arp_responder(...) will result in :
- c.bridge.install_arp_responder(...)
- -> a.install_arp_responder(...)
- -> ovs_ofctl.br_tun.OVSTunnelBridge.install_arp_responder(a, ...)
- ...
- -> a.add_flow( ... ) [1]
And the cookie will not be applied because the cookie-aware add_flow
method is in c, not in a.
This topic was discussed on IRC [2]
A second, related, issue is that OVSBridge subclasses touching flows with methods other than add/mod/delete_flow are not taking cookie into account at all. This is the case for instance of openflow.br_tun.OVSTunnelBridge.install_arp_responder, e.g. [3].
[1] https://github.com/openstack/neutron/blob/c44dc073fb9abd91fdcc6713b7191872f8130227/neutron/plugins/ml2/drivers/openvswitch/agent/openflow/ovs_ofctl/br_tun.py#L197
[2] http://eavesdrop.openstack.org/irclogs/%23openstack-neutron
/%23openstack-neutron.2016-03-11.log.html#t2016-03-11T09:11:54
[3]
https://github.com/openstack/neutron/blob/c44dc073fb9abd91fdcc6713b7191872f8130227/neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/br_tun.py#L220
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1557620/+subscriptions
References