]> git.puffer.fish Git - matthieu/frr.git/commitdiff
yang: fix wrong check for isis metric style
authoranlan_cs <anlan_cs@tom.com>
Sat, 8 Jun 2024 15:38:05 +0000 (23:38 +0800)
committeranlan_cs <anlan_cs@tom.com>
Tue, 11 Jun 2024 09:16:46 +0000 (17:16 +0800)
Before:
```
anlan(config)# route isis ix
anlan(config-router)# metric-style transition
...
anlan(config-if)# isis metric 200
% Configuration failed.

Error type: validation
Error description: YANG error(s):
 Path: Data location "/frr-interface:lib/interface[name='x']/frr-isisd:isis/metric/level-1".
 Error: Must condition ". < 64 or /frr-isisd:isis/instance[area-tag = current()/../../area-tag]/metric-style = 'wide' or not(/frr-isisd:isis/instance[area-tag = current()/../../area-tag]/metric-style)" not satisfied.
 Path: Data location "/frr-interface:lib/interface[name='x']/frr-isisd:isis/metric/level-2".
 Error: Must condition ". < 64 or /frr-isisd:isis/instance[area-tag = current()/../../area-tag]/metric-style = 'wide' or not(/frr-isisd:isis/instance[area-tag = current()/../../area-tag]/metric-style)" not satisfied
```

After:
```
anlan(config)# route isis ix
anlan(config-router)# metric-style transition
...
anlan(config-if)# isis metric 200
anlan(config-if)#
```

Signed-off-by: anlan_cs <anlan_cs@tom.com>
yang/frr-isisd.yang

index d1a08fa976b96c4c3be1003b8f1645ddd40f7e3d..60914b0be9613fd012c3c0c7210e42e7b02950fe 100644 (file)
@@ -685,7 +685,7 @@ module frr-isisd {
         type uint32 {
           range "0..16777215";
         }
-        must ". < 64 or /frr-isisd:isis/instance[area-tag = current()/../../area-tag]/metric-style = 'wide' or not(/frr-isisd:isis/instance[area-tag = current()/../../area-tag]/metric-style)";
+        must ". < 64 or not(/frr-isisd:isis/instance[area-tag = current()/../../area-tag]/metric-style) or /frr-isisd:isis/instance[area-tag = current()/../../area-tag]/metric-style != 'narrow'";
         default "10";
         description
           "Default level-1 metric for this IS-IS circuit.";
@@ -695,7 +695,7 @@ module frr-isisd {
         type uint32 {
           range "0..16777215";
         }
-        must ". < 64 or /frr-isisd:isis/instance[area-tag = current()/../../area-tag]/metric-style = 'wide' or not(/frr-isisd:isis/instance[area-tag = current()/../../area-tag]/metric-style)";
+        must ". < 64 or not(/frr-isisd:isis/instance[area-tag = current()/../../area-tag]/metric-style) or /frr-isisd:isis/instance[area-tag = current()/../../area-tag]/metric-style != 'narrow'";
         default "10";
         description
           "Default level-2 metric for this IS-IS circuit.";