03-18-2019 08:40 AM
Hello NSO community,
I have a question about service reconciliation. I am doing a bottom-up service reconciliation i.e. : sync-from // script to inject service into the CDB // commit dry-run // commit // re-deploy reconcile.
Everything works fine except that the refcount on the specific sub-interface for the service redeployed is still at 2 after the last reconcile command (where other refcounts for the service are well decreased to 1). For instance :
show devices device R14B4530WIN0 | display service-meta-data
/* Refcount: 2 */
/* Backpointer: [ /l3vpn:l3vpn[l3vpn:name='WINCLINT'] ] */
GigabitEthernet 0/0/4.9990000 {
/* Refcount: 1 */
description [FE1A4530FFO1.9990000] FF WALLONIE DATA CENTER * FOREM/FF INTERNET;
encapsulation {
dot1Q {
/* Refcount: 1 */
vlan-id 999;
}
}
vrf {
/* Refcount: 1 */
forwarding WINCLINT;
}
ip {
address {
primary {
/* Refcount: 1 */
address 10.161.82.105;
/* Refcount: 1 */
mask 255.255.255.252;
}
}
/* Refcount: 1 */
unreachables false;
/* Refcount: 1 */
proxy-arp false;
redirects false;
}
service-policy {
/* Refcount: 1 */
output PHB-shape-1000000-pe;
}
}
I tried to reconcile with the flag { discard-non-service-config } but then it deletes all other services (not yet reconciliated).
Even more strange, I have another PE where doing the same input does not give me the same output :
show devices device R13B1435WIN0 | display service-meta-data
/* Refcount: 1 */
/* Backpointer: [ /l3vpn:l3vpn[l3vpn:name='WINCLINT'] ] */
GigabitEthernet 0/0/0.20090002 {
/* Refcount: 1 */
description [FE9S4530MUT1.2009] WDC;
encapsulation {
dot1Q {
/* Refcount: 1 */
vlan-id 2009;
/* Refcount: 1 */
second-dot1q 2;
}
}
vrf {
/* Refcount: 1 */
forwarding WINCLINT;
}
ip {
address {
primary {
/* Refcount: 1 */
address 10.162.53.149;
/* Refcount: 1 */
mask 255.255.255.252;
}
}
/* Refcount: 1 */
unreachables false;
/* Refcount: 1 */
proxy-arp false;
}
service-policy {
/* Refcount: 1 */
output PHB-shape-20000-pe;
}
}
Any idea of what could be wrong with my procedure ?
Many thanks in advance for your help.
Benoit
03-20-2019 10:31 AM
Did the sub-interface exist (in the device) prior to the service model adding its code to this sub-interface? Or did the service actually create the subinterface as part of its tasks. I think the questions is what is NSO expecting to do when you delete the service instance.
03-22-2019 06:22 AM
The key to your problem is what you wrote:
I tried to reconcile with the flag { discard-non-service-config } but then it deletes all other services (not yet reconciliated).
Each time you reconcile, NSO will see that there are other users of this interface, and hence keep the refcount one higher than you want. If you are sure you have reconciled all services except one, you can reconcile with discard, so that the last service understands that it should be a shared (vs unowned) asset. You can combine this with the no-networking flag to ensure no changes to the running network are made.
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