Showing results for 
Search instead for 
Did you mean: 

vendor agnostic port names / port numbering in cfs package




What is the preferred way of developing a cfs package in multivendor enviroment with regards to port names and numbering?

The solutions are:

- developing some abstract names of ports that are later translated to vendor specific names - adds cruft to the package but makes it independent of NEDs and device specific data. For example "ethernet 1/1" maps to "Ethernet 1/1" or "Ethernet 1" depending on the device.

- using 'case' statement in top level package, like pasted below.


In my case NSO will have a 3rd party GUI application. I want to make the cooperation with GUI developer as simple as possible. I would like to:

- avoid the situation where the GUI has to have some variable scenarios dependent on device type etc.

- minimize the impact of adding a additional device type in future

- have too many interactions between GUI and NSO to find details about the device




grouping access-trunk {
  choice device-types {
    case nexus {
      when "/ncs:devices/ncs:device[ncs:name=current()/device]/ncs:capability[ncs:uri='']";
      uses access-trunk-nexus;
    case arista {
      when "/ncs:devices/ncs:device[ncs:name=current()/device]/ncs:capability[ncs:uri='']";
      uses access-trunk-arista;


1 Reply 1

Alex Stevenson
Cisco Employee
Cisco Employee


Hello @j-ulanowski,


Have you checked in these two places?


Cisco Code Exchange -

DevNet Automation Exchange -


You can search for 'NSO' on Code Exchange and Automation Exchange also has a 'NSO' category.


Hope this helps!



Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the NSO Developer community:

Recognize Your Peers