05-04-2021 05:49 AM - edited 05-04-2021 05:50 AM
I have a puzzle that I don’t manage to solve. I want to create an IPSLA configuration: The first step here is to reserve a MEP-ID for every service access. I’m using the resource manager to reserve such an ID and assign it (highlighted in green). Works like a charm. Usually, I have the “config false” statement in the model, but removed it to make it easier to display the assigned values.
Then, in the second step, an IPSLA measurement operation has to be started, which is identified by a reference to the MEP-ID of the serviceaccess of the peer of the measurement. In my model, every “serviceaccess” has a list of serviceaccesses to which an IPSLA measurement should be established.
Here, I want to figure out the MEP-ID of the peer serviceaccesses (yellow). Even though they have been defined, I can’t access them:
admin@ncs% request ces services VS0.000.000.003 re-deploy | debug template | match -a 10 line.204
251:Evaluating "../../serviceaccesses[serviceaccessid = current()/../ipsla-peers]/mepid" (from file "ces-template.xml", line 204)
252-Context node: /ces/services[vlanservice='VS0.000.000.003']/serviceaccesses[serviceaccessid='VA0.000.000.004']/perouter
253-Result: empty node - skipping siblings
I can read any other (regular) value at that level that has not been assigned using the resource manager. Do you have any explanation for this behavior? How can I read those values?
Values:
/ces/services[vlanservice='VS0.000.000.003']/serviceaccesses[serviceaccessid='VA0.000.000.004']/bandwidth 10
/ces/services[vlanservice='VS0.000.000.003']/serviceaccesses[serviceaccessid='VA0.000.000.004']/serviceaccesstopology root
/ces/services[vlanservice='VS0.000.000.003']/serviceaccesses[serviceaccessid='VA0.000.000.004']/cfm true
/ces/services[vlanservice='VS0.000.000.003']/serviceaccesses[serviceaccessid='VA0.000.000.004']/mepid 1000
/ces/services[vlanservice='VS0.000.000.003']/serviceaccesses[serviceaccessid='VA0.000.000.004']/ipsla-peers [ VA0.000.000.005 VA0.000.000.006 ]
/ces/services[vlanservice='VS0.000.000.003']/serviceaccesses[serviceaccessid='VA0.000.000.005']/bandwidth 10
/ces/services[vlanservice='VS0.000.000.003']/serviceaccesses[serviceaccessid='VA0.000.000.005']/serviceaccesstopology leaf
/ces/services[vlanservice='VS0.000.000.003']/serviceaccesses[serviceaccessid='VA0.000.000.005']/cfm true
/ces/services[vlanservice='VS0.000.000.003']/serviceaccesses[serviceaccessid='VA0.000.000.005']/mepid 1001
/ces/services[vlanservice='VS0.000.000.003']/serviceaccesses[serviceaccessid='VA0.000.000.006']/bandwidth 60
/ces/services[vlanservice='VS0.000.000.003']/serviceaccesses[serviceaccessid='VA0.000.000.006']/serviceaccesstopology leaf
/ces/services[vlanservice='VS0.000.000.003']/serviceaccesses[serviceaccessid='VA0.000.000.006']/cfm true
/ces/services[vlanservice='VS0.000.000.003']/serviceaccesses[serviceaccessid='VA0.000.000.006']/mepid 1002
Template:
<ethernet>
<cfm>
<mep>
<domain>
<name>SCS-CES-DMN-L2</name>
<service>CES-EVC1000-SVC</service>
<mep-id>{../mepid}</mep-id>
<sla>
<operation>
<profile>
<name>SCS-WARP-SLA-DELAY-BE-L2</name>
<mep-id>{../../serviceaccesses[serviceaccessid = current()/../ipsla-peers]/mepid}</mep-id> LINE 204
<target/>
</profile>
</operation>
</sla>
</domain>
</mep>
</cfm>
</ethernet>
Model:
list services {
key vlanservice;
uses ncs:service-data;
ncs:servicepoint ces-servicepoint;
leaf vlanservice {
type string;
}
list serviceaccesses {
key serviceaccessid;
leaf serviceaccessid {
type string;
}
leaf mepid {
type uint16;
}
leaf-list ipsla-peers {
type leafref {
path "../../serviceaccesses/serviceaccessid";
}
}
}
}
05-04-2021 06:17 AM
Not exactly sure on what's going in but do you have your newly resource manager generated id stored under the service instance itself? If that is the case, then that is also your problem. When fastmap runs it deletes everything and re-create it all (in memory) so you can check for data there.
05-04-2021 10:55 PM
No, the ids are stored outside the service instance. In the case above, I have these assignments:
admin@ncs% run show resource-pools id-pool mepid_VS0.000.000.003
NAME ID ERROR ID
-----------------------------------------------------
mepid_VS0.000.000.003 VA0.000.000.004 - 1000
VA0.000.000.005 - 1001
VA0.000.000.006 - 1002
05-05-2021 09:12 AM
But in your xpath you aren't looking at the resource manager mep id. You are looking at
../../serviceaccesses[serviceaccessid = current()/../ipsla-peers]/mepid
Which is under the service it self, isn't it? I dont have a full view of it but it looks to me like thats is what you are doing.
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide