Replies: 6 comments 11 replies
-
Yes. Let's remove
Yes. Let's use the current tag range anywhere where a range of tags is required, making also all of tag ranges inputs (and future ones) homogeneous. Its form that you specified is also relatively user high-level and friendly too since it ended up with |
Beta Was this translation helpful? Give feedback.
-
On Kytos-ng core we do. But, let's break things down here. We can make Now, regarding error handling and making sure it's clear what's the conflicting ranges, I think it'd be fantastic to have this too, and it's opportunity to also review and potentially change the returned bool values of You're right it shouldn't impact on |
Beta Was this translation helpful? Give feedback.
-
Yes, since |
Beta Was this translation helpful? Give feedback.
-
Good idea and observation. For sure, I'd recommend a new module though such as |
Beta Was this translation helpful? Give feedback.
-
|
@Alopalao regarding "Detecting a duplicated EVC with share_uni", I'm okay with leveraging the UNI tag allocation approach. My only concern here is for EPL (i.e., you dont have a TAG). Will that case also be covered? Regarding "Input for ranges", can you please provide some examples of Regarding "Make a tag available", not sure if I understood, but what would be a case for deleting an EVC that frees more VLANs than it was allocated before? In that case, the database is inconsistent no? Please clarify the scenario here. Other than that, I would refer to the issue discussion that replaced the Blueprint. Congratulations for the work here! |
Beta Was this translation helpful? Give feedback.
-
|
This issue discussion will be closed for major requirements. Nicely done, Aldo. Also, appreciated Italo's collaboration. Anything else will be discussed in PRs since no major points are expected. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I have read the issue Blueprint (discuss on issue) mef_eline VLAN range EVPL, and partially implemented it. Creation, deletion, posting flows and tags allocation are working. I am missing things like error cases, consistency check and sdn_trace compatibility (I wonder if it will be a problem). So, I have some questions with some changes that I want to describe here:
mef_eline:Detecting a duplicated EVC with share_uni:
Although I already asked about this in a meeting, I want to be more descriptive here and I also had another idea. With the addition of
vlan_pool, UNI tag allocation is already implemented and ensures that two UNIs do not share the same TAG in the sameInterface. _is_duplicated_evc left unique feature is the message that we have another UNI with the same TAG instead of showing the error that the TAG is already used. The cost of _is_duplicated_evc was negligible but now with the addition ofvlan_rangewe have a list (specificallylist[list[int]]) or more to check for each EVC addition which is already done by tag allocation.Proposed change:
So far the only NApps that allocate a tag are
mef_elineandof_lldp. Therefore, if for each EVC creation, we check againstof_lldptag, we can rule out whether it is used by another EVC or not when a tag is not available; instead of checking against every other EVC created (not archived).Needed:
mef_elinewill need to knowof_lldptag.Input for ranges:
It was already decided to have a string representing the TAG values, comment. It is desired to avoid/detect human errors for example "100-105, 102-110". The input variable type should be changed in order to analyze errors. I think we should be asking for integers instead of strings.
Proposed change:
The input must be a
list[list[int]]similar to what was implemented invlan_pool. This includes _get_tag_ranges to ensure an input that works withvlan_pool.kytos:Make a tag available, current code:
available_vlanalready works with ranges so the changes were not substantial when implementingvlan_ranges, working change. When trying to use tags, the algorithm can be briefly summarized as"take all tags or none"meaning that all the tags in a range should be present inavailable_tagsotherwise none of them are going to be used.But when making a tag available
"take all tags or none"does not apply correctly. make_tags_available is triggered whenmef_elinedeletes a circuit freeing a TAG or more. If a TAG was already available, a warning ("This TAG X was already available") was sent but the circuit deletion was not stopped. With the current implementation andvlan_rangewe cannot get away with lazy deletion.Do we want to apply
"take all tags or none"to make_tags_available withvlan_rangesas well? To do so we should restrict the deletion of an EVC with an already available tag and I think this is not desirable.Proposed change:
Change
make_tags_availableimplementation to analyze onlylist[list[int]]adding everything even though it was available. The return values would be a list containing previously available values, using range_intersection.Needed:
All tags received would need to be changed to
list[list[int]].Used tags, current code:
This is the new implementation of Interface.use_tags needs to ensure that each range in, for example,
[[100, 200], [300, 400]]is available in the Interface. Adeepcopyseems necessary in case an error is found because each analyzed range modifiesavailable_vlan. This increases complexity and does not give any specific information on which tag was not available.Proposed change:
Change the algorithm. First, see if any tag is not available (return any not available tag using range_intersection(desired_tags, available_tags)) . Second, use range_difference to get the new
available_tags.Needed:
All tags received would need to be changed to
list[list[int]].Final thoughts:
Interface. So far we haverange_differenceandrange_intersectionwhich could be used more if these changes are accepted. Also, we would be addingrange_additionto lazily make a tag available. Are there any plans that involve ranges? Maybe these operations should be inkytos/helpers.pyso these operations could be available to be used in other NApps.cc'ing @italovalcy and @viniarck
Beta Was this translation helpful? Give feedback.
All reactions