cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1273
Views
0
Helpful
2
Replies

Service Template XML Variable when using Choice

lukezskywalk
Level 1
Level 1

Hi everyone, I am trying to build a simple qos service template. Just wondering about passing variables to the template xml from Yang using the choice 

 

module qos {

augment /ncs:services {

 

list qos {
key vpn-name;
uses ncs:service-data;
ncs:servicepoint "qos";

 

leaf vpn-name {
type string;
}

// may replace this with other ways of refering to the devices.

leaf-list device {
type leafref {
path "/ncs:devices/ncs:device/ncs:name";
}
}

 

container perqos {
  choice qos-model {
    case model1 {
      container vpn-trunk {

         leaf vlan-id {
            type uint16 {
             range "1..4096";

            }

        }

       }

    }

  case model2 {
      container vpn-access {

         leaf vlan-id {
            type uint16 {
             range "1..4096";

           }

      }

    }

 }

}

}

}

}

 

My XML template

 

<class-map>
   <name>LAN_{/vpn-name}</name>
     <prematch>match-any</prematch>
     <match>
     <matchRule>vlan {<NEED HELP HERE>/vlan-id}</matchRule>
</match>
</class-map>

 

How do I reference the vlan-id in a node that is chosen based on the Choice structure? Preferred not to use a script language.

 

2 Replies 2

lukezskywalk
Level 1
Level 1
I figured it out. I can just use //vlan-id. The Xpath definition for // = Selects nodes in the document from the current node that match the selection no matter where they are.

Since the choice will only leave 1 configurable sub container, the vlan-id is unique in my case and I can use this without conflict.

lukezskywalk
Level 1
Level 1
So my original question of using some of logic to fill the XML template still remains. If I have two configuration snipet (1 for each Choice), how do I do this?

If choice = vpn-trunk, xml template will use vpn-trunk configuration. If choice = vpn=access, xml template will use vpn-access configuration.
Polls
AI-powered tools for network troubleshooting are likely to be part of everyone’s workflow sooner or later. What is the single biggest challenge or concern you see with adopting these tools in your organization?