Public bug reported:

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

** Affects: neutron
     Importance: Undecided
         Status: New

** Summary changed:

- OVSCookieBridge not applying cookie to all operations
+ OVSCookieBridge not applying extension cookie to all flow operations

-- 
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:
  New

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

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to