I have another thought, given that flowspec is something invariable (does not change) across switches, could not we define a vlan-tag in the flowspec and then state that we do not support vlan encapsulation/decapsulation
scenarios but instead transport a VLAN-tag flow from one port to another. Sorry to go back on this, I am just trying to gather the vlan-tag into the Container Mgr logic as this is very common way to separate traffic in real networks.
From: Luis Gomez
Sent: Tuesday, October 29, 2013 5:48 PM
To: 'Alessandro Boch (aboch)'; Madhu Venguopal
Cc: 'integration-dev@...'; dev (controller-dev@...)
Subject: RE: [controller-dev] Container Mgr question
Thanks, I did not know about the bidirectional thing, now works after changing to:
Now I also understand what you said the other day: “FRM is not auto-adding the match on the static vlan on the configured flow entries (it cannot, otherwise it would break the logic in the first hop switch,
the one matching on the host traffic ingressing the of network)”. The VLAN tags can be added/removed through the data path across the different switches so maybe it is not good idea to include them in the flowspecs. They could be included or be part of the
nodeconnectors, like: container1 has nodeconnector “SW2-port1-vlan10” and container2 has nodeconnector “SW2-port1-vlan20” but I do not think this definition of node connector is easy to implement on an OF switch.
So as a conclusion, for the bug I just opened you can just try to remove the static vlan definition (so it does not create confusion) and enforce flowspecs whenever you need to share ports.
Each flow spec configuration is by default bidirectional, backend internally generates a couple of flow specs.
The flow specs are internally represented as a Match object, which represents a set of network packets.
So, in your case:
The first slice FS says all the packets with SRC and _DST IP_ 10.0.0.1 and with with SRC and _DST IP_ 10.0.0.3.
While the second slice FS says all the ones with SRC and _DST IP_ 10.0.0.2 and with with SRC and _DST IP_ 10.0.0.4.
So there are non-empty intersections between the FSs of the two slices:
[10.0.0.1, 10.0.0.2], [10.0.0.2,10.0.0.1], [10.0.0.1,10.0.0.3], [10.0.0.3,10.0.01], ….
Which is why Container Manager does not allow a port to be assigned to both slices.
Hi Madhu and Alessandro,
I have opened bug #127 for the container Mgr improvement. Now I have another question when I played with the flowspecs:
I configured the following flowspecs for container 1:
And the following for container 2:
For me it is like they are all different flowspecs however when I try to share a port I get: “Port OF|3@OF|00:00:00:00:00:00:00:02 is shared and other container has common flow spec”
Is this expected behavior? if so what makes a flowspec different from another flowspec?
Inline @ A#
On 10/28/13, 2:00 AM, Luis Gomez wrote:
Hi controller experts,
I am configuring containers in OpenDaylight controller, and observed the following:
1) Containers using different ports is no problem (no flowspec needed)
2) If containers share one or more host ports, I need flowspecs (different on both containers) to separate traffic
3) If containers share only network ports, it is enough if they have different staticVlan
M# Yes. Your observations are inline with the design intent.
Then my questions:
- In scenario 2) if a host uses VLAN tags for different traffics or a regular switch trunk port is connected to host port, how can I put each VLAN on a different container? the existing implementation does not seem to deal with this situation.
M# Yes. this is a missing item on the Flow-Spec. We need to add the Vlan based isolation. Please open a Bugzilla item.
- In scenario 3) how is the “staticVlan” setting used to separate traffic in the network ports? I have created flows in the containers but I do not see any vlan being automatically applied or enforced on the network ports.
M# This is supposed to work as you expect. But, I think this was disabled some time ago due to a few observed issues.
Will let the other controller-devs to get the reason. Also, I have a basic concern with this feature. Since OF1.0 doesnt support QinQ, this staticVlan
addition will overwrite any vlan that is already present in the packet. So, not having this feature right now, is not a problem :-)
But certainly the above vlan presence in flow-spec is missing.
A# Right, in order to make use of the Static Vlan, the application needs to have the topology view. The application needs to push/pop the container static vlan on traffic ingressing/egressing the openflow network. The
application needs to know if a port is a host-facing port. FRM cannot blindly set/unset this vlan because it works on per-flow basis, it has no topology information.
In a scenario where containers do not share host-facing ports (but they can share inter-switch links), using the static vlan assures traffic isolation without the need of configuring container flows ( flow
But given the switch interconnections and host attachments are dynamic in nature, given this works only if hosts send untagged frames, and given FRM is not auto-adding the match on the static vlan on the configured
flow entries (it cannot, otherwise it would break the logic in the first hop switch, the one matching on the host traffic ingressing the of network), I would not put much effort in testing this.
controller-dev mailing list