Skip to content
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

Opposite Link #542

Open
orenais opened this issue Jul 7, 2023 · 6 comments
Open

Opposite Link #542

orenais opened this issue Jul 7, 2023 · 6 comments

Comments

@orenais
Copy link

orenais commented Jul 7, 2023

We have started working on a T-API 2.4.x compliant PCE in transportPCE : https://git.opendaylight.org/gerrit/c/transportpce/+/106775
At that time we built the classes that allow abstracting Nodes and Links from the topology to Graph objects. There is still a method for which we are investigating on how to make it the best way : this is the method that allows retrieving from a link its corresponding opposite link when unidirectional links are used between ROADMs.
In our network we have some links that have the same endpoints but do not use the same path/cables, so that we need this attribute to make sure that when we have calculated a path from A to Z, the path we calculate from Z to A uses the right path and that impairments are correctly evaluated.
We did not identify at that time some link attribute in the yang model that provides a reference to the opposite link. If we did not miss anything, would it be possible to add this attribute to the link in 2.4.x models? Thanks!

@amazzini
Copy link
Collaborator

amazzini commented Jul 9, 2023

I would think that the opposite link information applies only in the case of unidirectional Links linking the same pair of bidirectional NEPs. If so, it seems true that is not possible to distinguish AZ Link from ZA Link. This issue is solved in the Core IM thanks to the Link Ports. Further discussion is necessary.

@rcasellas
Copy link
Collaborator

rcasellas commented Jul 10, 2023 via email

@amazzini
Copy link
Collaborator

Another consideration is to sistematically model bidirectional links even when ended by two couples of unidirectional NEPs. Doing so, you join the NEPs according to the topology intent pursued at installation/cabling time. Additionally the Access Port may join the couple of logically unidirectional NEPs. In other words, when a link is modeled as unidirectional, it is intended for an unidirectional use, hence the "opposite" link is not applicable.
Nigel & Andrea

@orenais
Copy link
Author

orenais commented Jul 19, 2023

Thanks to all of you for considering my point. Answering to the conversation thread starting from first to latest answer.
I had in mind both the case of bidirectional and unidirectional NEPs. For bidirectional NEP, there is a way to retrieve the opposite link, but this imply to scan the list of links until we find one that has the same NEPs at its ends. So the problem is more obvious in the case mentioned by Ramon when we consider on both sides a pair of unidirectional NEP terminating 2 unidirectional links. In this case we don't really have a way to make sure both unidirectionnal links are associated and use the same cable. It would be painfull to scan the risk charaterictics to compare them. Additionally we have no garanty that this information has been correctly filled in the data base. Some SRLG might miss from a list.
Systematically model bidirectional links is an acceptable solution, but IMHO probably not so optimal in terms of backward compatibility. Additionaly it constrains the implementation. Some OEMS may have already developped their controller considering unidirectional links. As the amplifier information is not associated with the links but at the oms-CEP level some of them may have done complex implementation that they are not really willing to change. Moreover it is risky since it implies to add an implementation guideline which would be in a RIA and could be easily missed.
My feeling is that adding an opposite-link attribute to the link (To check : making it mandatory for unidirectional links with a when statement to avoid potential wrong implementation) does not imply to modify implementations made by early implementers. They will just need to populate an additional attributes which limits the required developments. For the ones that want to work on a T-API topology retrieved from a NMS/controllers it will greatly simplify the code and limit the number of operations required to build this information.

@rcasellas
Copy link
Collaborator

rcasellas commented Jul 20, 2023 via email

@orenais
Copy link
Author

orenais commented Jul 20, 2023

Sure, the name array is really convenient to handle many workaround.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants