Replies: 8 comments 13 replies
-
Hi all, Excellent to see this discussion here! Originally, the vlan pool was first mentioned on Blueprint 12, when people started designing MEF E-Line and VLAN services on Kytos. To quote that PR very quickly:
and also:
So, having Additionally, I would like to discuss with you the possibility of NOT having
Another requirement to keep in mind is: Link tags and Interface tags should not overlap. Even though they can be used in different contexts, at the end of the day, they are all VLAN tags, and we should not conflict. OF-LLDP also utilizes a VLAN-tagged package to do its job, and we are not taking that into consideration when setting UP MEF-Eline EVCs. Since we are touching this subject here, I would like to suggest we also take actions to avoid conflict on the used tags for an interface or link and the tag being used by of_lldp (the action to be done here could be just making of_lldp compliance with the process of checking the available tag, or even remove the of_lldp special VLAN ID from the list available tags). |
Beta Was this translation helpful? Give feedback.
-
Regarding
I don't think it's an issue, it's behaving as intended, VLAN 1 in this case shouldn't be available again, I don't think UNIs should have a different pool than NNIs, a pool is for the entire interface. Something that we still need to likely cover in the future is to start using
I second Italo's suggestion to also try to simplify and move Now, regarding flipping the logic of The problem we're dealing here is two-fold a) just the configuration of the explicit range and b) keeping track of usage/available values, the second part b), I think it's not problematic currently, also the price to refactor isn't too small (and considering DB scripts too). Also, when changing the configuration of the range, for sure it should only be allowed to reduce the range if the entire new range is available.
Indeed, |
Beta Was this translation helpful? Give feedback.
-
Seems that we going with API request because we would need a modifiable
|
Beta Was this translation helpful? Give feedback.
-
DEPRECATED
These operation have the characteristic of only accept ranges but a number (2) can be represented as a range ([2,3]). Time complexities:
Note: These operations are suited for |
Beta Was this translation helpful? Give feedback.
-
More decisions made:
|
Beta Was this translation helpful? Give feedback.
-
More points:
Update: Create script for saved |
Beta Was this translation helpful? Give feedback.
-
Summarized this discussion thoughts into another discussion |
Beta Was this translation helpful? Give feedback.
-
Closing this discussion |
Beta Was this translation helpful? Give feedback.
-
Vlan_pool settings
Currently the option from
kytos.conf
,vlan_pool
causes some bugs if it is used. Having this option being used initializes an interface even thoughconnection
isNone
. This causes:Couldn't get port 1 speed, sw 00:...:01, feats None
.mac
andspeed
are None, document.Additionally, the event
"kytos/mef_eline.link_available_tags"
is not used thusvlan_pool
configuration is not saved in the database collectioninterface_details
. This collection is used when loading an existent topology.Alternatives to have
vlan_pool
option functional:1. Fixed old approach:Move the settings of interfaces tags to initialization of an interface, code. We can get the configuration ofvlan_pool
fromcontroller.options.vlan_pool
. I have not noticed that using the collectioninterface_details
would be beneficial to this case since it would be loaded at every start of Kytos. But it is a way to unify where the information for available VLANs is if we addvlan_pool
settings to the database.We could have a request to set/add a configuration to
vlan_pool
while Kytos is running. With this approach, we would need to utilize the database collectioninterface_details
. We could minimize queries in the database by keeping track of which interface IDs have a field in the database with a variable in the Controller or, also, creating a list of iterables.NNI and UNI VLAN differentiation (EDITED 7-31-2023)
There is another problem when using NNIs as UNIs and this is because the
vlan_pool
for both are treated as the same. Both values should have different restriction of availability and should not overlap between them. Example, if NNI has a range tag of[100 - 199]
. A UNI should be able to take tag2
and110
. Then, the range for NNI changes to[100 - 109] U [111 - 199]
.A solution for this could be having two lists of available tags for each interface
available_tags_nni
andavailable_tags_uni
(Probably changed toused_tags
).available_tags_nni
should be used by path frommef_eline
.available_tags_uni
should be use to validate the creation of a EVC. Also, we will need to delete the used tag from the list.Database
Two collections similar to
interface_details
are needed. These will be read when loading a switch. This means thatinterface_details
will be deprecated in favor of havinginterface_nni_vlans
andinterface_uni_vlans
.ccing @viniarck, @italovalcy, @jab1982
Beta Was this translation helpful? Give feedback.
All reactions