Bug 1165: ContainerFlow boundary is not always enforced for vlans 91/7791/2
authorAlessandro Boch <aboch@cisco.com>
Fri, 6 Jun 2014 21:36:38 +0000 (14:36 -0700)
committerAlessandro Boch <aboch@cisco.com>
Fri, 6 Jun 2014 22:30:20 +0000 (15:30 -0700)
commitf8f583edd858c32649332788f15b3fabf47f10ed
treeb259ca292f3855cd997ebe2922c4558ab7db76bc
parent82eb3f94c133e091ca5dd2f26450da9f121c12ca
Bug 1165: ContainerFlow boundary is not always enforced for vlans

- When a flow add is requested, ForwardingRulesmanager checks whether
  the requested flow complies with the ContainerFlow(s) for the current container.
  The check is performed by ContainerFlow.allowsFlow(Flow x).
  This function checks if the Match portion of the passed Flow does conflict with the
  container flow (which is a Match itself). It then checks whether the Flow's Actions
  are allowed by the container flow (this to avoid cross container redirection of traffic).
  In order to do so, it constructs a Match which summarizes the actions, then it checks if
  it conflicts with the container flow Match.
  BUG: During this last step, it misses to account the SetVlan actions.
  Because of the above bug  an app/user can install a flow which leaks traffic from one
  container to another, when the containers' flows specify vlan as boundary.

Change-Id: Id5a5e60c190b4353ed1fd76966e885a021ee4d2a
Signed-off-by: Alessandro Boch <aboch@cisco.com>
opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/ContainerFlow.java