-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Blueprint (discuss on issue) mef_eline VLAN range EVPL #318
Comments
Similar to kytos-ng/mef_eline#18. Since we won't have a blueprint, but will only discuss on issue, the discussion can take place on this issue or on the linked one, and then we can close one as duplicated. |
|
I have tested |
@ajoaoff nice, and thanks for anticipating that PR. If you could also break down the dependencies or how the feature will behave (consolidating some of the information that you also shared and researched some time ago on Slack and clarified requirements with Jeronimo), much appreciated. cc'ing also @Alopalao @italovalcy @gretelliz since they're working on related mef VLAN untagged/any and or sdntrace_cp. |
Regarding |
I have an impression that a single VLAN should suffice, otherwise we'd be ignoring at the application level that a concept of a matched range is supported by the switches. In terms request payload, probably @italovalcy @jab1982 would you be OK with a single vlan in the payload of traces? based on how you guys will use in production do you see any issues with this approach? |
Also, as a range of VLANs, are we only considering a contiguous [low, high] range or more flexibility is needed? |
Hey @ajoaoff, good question. Thank you for bringing that up. Just one VLAN is enough, in my opinion. However, I suggest using a "random VLAN inside the expected range". That way we simplify the tests but we also probabilistically cover other possibilities though out the time. Wdyt? |
I would suggest more flexibility here, maybe something similar to what was defined for SDX data model (L2VPN):
If that turns out to be much more complicated, we can leverage the new VLAN string type to do something like:
|
Some points of attention I see:
|
UPDATE: Thinking about this I realized that maybe one trace per VLAN/MASK would fit better than one trace for the whole EVC. Explanation: since the goal of the trace is to validate consistency between mef_eline and flow_manager, we have to make sure all necessary flows for an EVC are there. For a EVPL with a single VLAN ID, we have two flows, and we run two traces: one from UNI_A and another one from UNI_Z; which checks the two flows. In the scenario of VLAN Range, we will probably have more than two flows. For example, suppose you request the following range:
Depending on the strategy to calculate the necessary flows, you may end up requiring more than two flows to implement that. Indeed, the following calculation is one of the possibilities (using Noviflow's syntax):
Thus, having one trace for each pair of flows (ingress-egress) in each direction makes more sense, in my opinion. |
Great suggestion, @italovalcy. In the API spec, I think the second suggested option Internally, though, @ajoaoff, I'll recommend to try to potentially subclass |
Agreed, this sounds better and easier to maintain too. With |
@italovalcy @ajoaoff, should UNI vlan range always be the same size on both ends? for an EVPL we currently support asymmetric VLANs UNI since it always knows the expected C-VLAN on the other UNI. I think we need to confirm both if the length needs to be the same and also if they can be asymmetrical (different values) or if symmetrical is sufficient. |
Hi @viniarck, good question, and great observation! IMHO, we should not support different ranges on the UNIs. If we use a VLAN range, both UNIs should have the same range. Even though we may have use cases for having different ranges, that would be very difficult to implement using OpenFlow rules. Thus, to make it simple and fully compatible with the current data plane implementation, my suggestion is that both UNIs have the same range. Then, when matching ingress traffic in a UNI, we just push the service tag VLAN and output to the next hop port (for intra-switch, we don't even need to push service tag VLAN) - instead of also applying the set_field VLAN as we currently have. |
Sounds good, @italovalcy. Thanks for your input and confirming the use case. @ajoaoff looks like you have all the requirements in place, feel free to start breaking down the tasks on GitHub in the |
Additional comments:
|
Closing this issue, this discussion contains more details about updated features. The epic is in progress and soon to be finnished. |
Blueprint mef_eline VLAN range EVPL
This is for extending
mef_eline
to support VLAN range when creating an EVPL.The API should be extended,
of_core
,flow_manager
should support OF mask match on vlan.This blueprint should identify the use case, how translations will work, NApps dependencies involved, what needs to be changed, and what's already supported.
I'll assign this one to @ajoaoff since he's started an initial assessment.
The text was updated successfully, but these errors were encountered: