diff options
author | Christian Hopps <chopps@gmail.com> | 2021-05-04 16:41:58 +0200 |
---|---|---|
committer | Christian Hopps <chopps@labn.net> | 2021-05-13 22:24:48 +0200 |
commit | 3bb513c399c2e7c8dd597b7399dd7c0f064842d0 (patch) | |
tree | 14f3e677c49fce272946788f8a8b8f3f8a3e26b5 /yang | |
parent | Merge pull request #8629 from donaldsharp/parse_rtattr (diff) | |
download | frr-3bb513c399c2e7c8dd597b7399dd7c0f064842d0.tar.xz frr-3bb513c399c2e7c8dd597b7399dd7c0f064842d0.zip |
lib: adapt to version 2 of libyang
Compile with v2.0.0 tag of `libyang2` branch of:
https://github.com/CESNET/libyang
staticd init load time of 10k routes now 6s vs ly1 time of 150s
Signed-off-by: Christian Hopps <chopps@labn.net>
Diffstat (limited to 'yang')
-rw-r--r-- | yang/embedmodel.py | 2 | ||||
-rw-r--r-- | yang/frr-bgp-bmp.yang | 2 | ||||
-rw-r--r-- | yang/frr-bgp-common-multiprotocol.yang | 30 | ||||
-rw-r--r-- | yang/frr-bgp-common-structure.yang | 3 | ||||
-rw-r--r-- | yang/frr-bgp-common.yang | 7 | ||||
-rw-r--r-- | yang/frr-bgp-neighbor.yang | 3 | ||||
-rw-r--r-- | yang/frr-bgp-peer-group.yang | 3 | ||||
-rw-r--r-- | yang/frr-bgp-route-map.yang | 88 | ||||
-rw-r--r-- | yang/frr-bgp.yang | 4 | ||||
-rw-r--r-- | yang/frr-isisd.yang | 18 | ||||
-rw-r--r-- | yang/frr-ospfd.yang | 6 | ||||
-rw-r--r-- | yang/frr-pim.yang | 4 | ||||
-rw-r--r-- | yang/frr-ripd.yang | 12 | ||||
-rw-r--r-- | yang/frr-zebra-route-map.yang | 26 | ||||
-rw-r--r-- | yang/frr-zebra.yang | 2 |
15 files changed, 107 insertions, 103 deletions
diff --git a/yang/embedmodel.py b/yang/embedmodel.py index 39bf2bb92..a77a81363 100644 --- a/yang/embedmodel.py +++ b/yang/embedmodel.py @@ -94,7 +94,7 @@ else: sub_name = search_name.group(1) name = re_mainname.search(data).group(1) sub_rev = re_rev.search(data).group(1) - fmt = "LYS_YANG" + fmt = "LYS_IN_YANG" if name is None or rev is None: raise ValueError("cannot determine YANG module name and revision") diff --git a/yang/frr-bgp-bmp.yang b/yang/frr-bgp-bmp.yang index 344448f10..2417874ea 100644 --- a/yang/frr-bgp-bmp.yang +++ b/yang/frr-bgp-bmp.yang @@ -13,8 +13,6 @@ submodule frr-bgp-bmp { prefix frr-bt; } - include frr-bgp-common-multiprotocol; - organization "FRRouting"; contact diff --git a/yang/frr-bgp-common-multiprotocol.yang b/yang/frr-bgp-common-multiprotocol.yang index aefdf02ba..4b080613d 100644 --- a/yang/frr-bgp-common-multiprotocol.yang +++ b/yang/frr-bgp-common-multiprotocol.yang @@ -9,8 +9,6 @@ submodule frr-bgp-common-multiprotocol { prefix frr-rt; } - include frr-bgp-common; - organization "FRRouting"; contact @@ -67,7 +65,7 @@ submodule frr-bgp-common-multiprotocol { "A common grouping used for contents of the list that is used for AFI-SAFI entries."; container ipv4-unicast { - when "derived-from-or-self(../afi-safi-name, 'ipv4-unicast')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:ipv4-unicast')" { description "Include this container for IPv4 Unicast specific configuration."; @@ -77,7 +75,7 @@ submodule frr-bgp-common-multiprotocol { } container ipv6-unicast { - when "derived-from-or-self(../afi-safi-name, 'ipv6-unicast')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:ipv6-unicast')" { description "Include this container for IPv6 Unicast specific configuration."; @@ -87,7 +85,7 @@ submodule frr-bgp-common-multiprotocol { } container ipv4-labeled-unicast { - when "derived-from-or-self(../afi-safi-name, 'ipv4-labeled-unicast')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:ipv4-labeled-unicast')" { description "Include this container for IPv4 Labeled Unicast specific configuration."; @@ -97,7 +95,7 @@ submodule frr-bgp-common-multiprotocol { } container ipv6-labeled-unicast { - when "derived-from-or-self(../afi-safi-name, 'ipv6-labeled-unicast')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:ipv6-labeled-unicast')" { description "Include this container for IPv6 Labeled Unicast specific configuration."; @@ -107,7 +105,7 @@ submodule frr-bgp-common-multiprotocol { } container l3vpn-ipv4-unicast { - when "derived-from-or-self(../afi-safi-name, 'l3vpn-ipv4-unicast')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:l3vpn-ipv4-unicast')" { description "Include this container for IPv4 Unicast L3VPN specific configuration."; @@ -117,7 +115,7 @@ submodule frr-bgp-common-multiprotocol { } container l3vpn-ipv6-unicast { - when "derived-from-or-self(../afi-safi-name, 'l3vpn-ipv6-unicast')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:l3vpn-ipv6-unicast')" { description "Include this container for unicast IPv6 L3VPN specific configuration."; @@ -127,7 +125,7 @@ submodule frr-bgp-common-multiprotocol { } container l3vpn-ipv4-multicast { - when "derived-from-or-self(../afi-safi-name, 'l3vpn-ipv4-multicast')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:l3vpn-ipv4-multicast')" { description "Include this container for multicast IPv4 L3VPN specific configuration."; @@ -137,7 +135,7 @@ submodule frr-bgp-common-multiprotocol { } container l3vpn-ipv6-multicast { - when "derived-from-or-self(../afi-safi-name, 'l3vpn-ipv6-multicast')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:l3vpn-ipv6-multicast')" { description "Include this container for multicast IPv6 L3VPN specific configuration."; @@ -147,7 +145,7 @@ submodule frr-bgp-common-multiprotocol { } container l2vpn-vpls { - when "derived-from-or-self(../afi-safi-name, 'l2vpn-vpls')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:l2vpn-vpls')" { description "Include this container for BGP-signalled VPLS specific configuration."; @@ -157,7 +155,7 @@ submodule frr-bgp-common-multiprotocol { } container l2vpn-evpn { - when "derived-from-or-self(../afi-safi-name, 'l2vpn-evpn')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:l2vpn-evpn')" { description "Include this container for BGP EVPN specific configuration."; @@ -167,7 +165,7 @@ submodule frr-bgp-common-multiprotocol { } container ipv4-multicast { - when "derived-from-or-self(../afi-safi-name, 'ipv4-multicast')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:ipv4-multicast')" { description "Include this container for IPv4 multicast specific configuration."; @@ -177,7 +175,7 @@ submodule frr-bgp-common-multiprotocol { } container ipv6-multicast { - when "derived-from-or-self(../afi-safi-name, 'ipv6-multicast')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:ipv6-multicast')" { description "Include this container for IPv6 multicast specific configuration."; @@ -187,7 +185,7 @@ submodule frr-bgp-common-multiprotocol { } container ipv4-flowspec { - when "derived-from-or-self(../afi-safi-name, 'ipv4-flowspec')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:ipv4-flowspec')" { description "Include this container for IPv4 flowspec specific configuration."; @@ -197,7 +195,7 @@ submodule frr-bgp-common-multiprotocol { } container ipv6-flowspec { - when "derived-from-or-self(../afi-safi-name, 'ipv6-flowspec')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:ipv6-flowspec')" { description "Include this container for IPv6 flowspec specific configuration."; diff --git a/yang/frr-bgp-common-structure.yang b/yang/frr-bgp-common-structure.yang index 7b987a93c..232c78899 100644 --- a/yang/frr-bgp-common-structure.yang +++ b/yang/frr-bgp-common-structure.yang @@ -25,8 +25,6 @@ submodule frr-bgp-common-structure { prefix frr-bt; } - include frr-bgp-common; - organization "FRRouting"; contact @@ -118,7 +116,6 @@ submodule frr-bgp-common-structure { } leaf no-prepend { - when "../local-as != 0"; type boolean; default "false"; description diff --git a/yang/frr-bgp-common.yang b/yang/frr-bgp-common.yang index 1a19d5296..157e4cd61 100644 --- a/yang/frr-bgp-common.yang +++ b/yang/frr-bgp-common.yang @@ -455,11 +455,14 @@ submodule frr-bgp-common { grouping global-network-config { leaf import-check { type boolean; - default "false"; + default "true"; description "When set to 'true' bgp creates entries for network statements if a matching prefix exists in the rib. When set to 'false' bgp - creates entries for networks that the router cannot reach."; + creates entries for networks that the router cannot reach. + + In FRR versions < 7.4 this used to default to 'false' this is an + incompatible backward change"; } } diff --git a/yang/frr-bgp-neighbor.yang b/yang/frr-bgp-neighbor.yang index a4b50b156..d6688eed2 100644 --- a/yang/frr-bgp-neighbor.yang +++ b/yang/frr-bgp-neighbor.yang @@ -5,9 +5,6 @@ submodule frr-bgp-neighbor { prefix "bgp"; } - include frr-bgp-common-structure; - include frr-bgp-common-multiprotocol; - organization "FRRouting"; contact diff --git a/yang/frr-bgp-peer-group.yang b/yang/frr-bgp-peer-group.yang index 452ff1a12..746ced30c 100644 --- a/yang/frr-bgp-peer-group.yang +++ b/yang/frr-bgp-peer-group.yang @@ -13,9 +13,6 @@ submodule frr-bgp-peer-group { prefix frr-bt; } - include frr-bgp-common-structure; - include frr-bgp-neighbor; - organization "FRRouting"; contact diff --git a/yang/frr-bgp-route-map.yang b/yang/frr-bgp-route-map.yang index 96505b08a..ca60c8f7b 100644 --- a/yang/frr-bgp-route-map.yang +++ b/yang/frr-bgp-route-map.yang @@ -332,7 +332,7 @@ module frr-bgp-route-map { augment "/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:rmap-match-condition/frr-route-map:match-condition" { case local-preference { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'match-local-preference')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:match-local-preference')"; leaf local-preference { type uint32 { range "0..4294967295"; @@ -341,14 +341,14 @@ module frr-bgp-route-map { } case script { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'match-script')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:match-script')"; leaf script { type string; } } case origin { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'match-origin')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:match-origin')"; leaf origin { type enumeration { enum "egp" { @@ -371,7 +371,7 @@ module frr-bgp-route-map { } case rpki { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'rpki')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:rpki')"; leaf rpki { type enumeration { enum "invalid" { @@ -394,7 +394,7 @@ module frr-bgp-route-map { } case probability { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'probability')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:probability')"; leaf probability { type uint8 { range "0..100"; @@ -403,14 +403,14 @@ module frr-bgp-route-map { } case source-vrf { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'source-vrf')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:source-vrf')"; leaf source-vrf { type string; } } case peer { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'peer')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:peer')"; choice peer { description "Value of the peer"; @@ -449,10 +449,10 @@ module frr-bgp-route-map { } case access-list-name { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'mac-address-list') or " - + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'as-path-list') or " - + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'ip-route-source') or " - + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'ip-route-source-prefix-list')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:mac-address-list') or " + + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:as-path-list') or " + + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:ip-route-source') or " + + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:ip-route-source-prefix-list')"; description "Access-list name"; leaf list-name { @@ -461,7 +461,7 @@ module frr-bgp-route-map { } case evpn-default-route { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'evpn-default-route')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:evpn-default-route')"; description "Match default EVPN type-5 route"; leaf evpn-default-route { @@ -470,7 +470,7 @@ module frr-bgp-route-map { } case evpn-vni { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'evpn-vni')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:evpn-vni')"; description "Match eVPN VNI"; leaf evpn-vni { @@ -481,7 +481,7 @@ module frr-bgp-route-map { } case evpn-route-type { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'evpn-route-type')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:evpn-route-type')"; description "Match eVPN route-type"; leaf evpn-route-type { @@ -506,7 +506,7 @@ module frr-bgp-route-map { } case evpn-rd { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'evpn-rd')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:evpn-rd')"; description "Match eVPN route-distinguisher"; leaf route-distinguisher { @@ -515,9 +515,9 @@ module frr-bgp-route-map { } case comm-list-name { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'match-community') or " - + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'match-large-community') or " - + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'match-extcommunity')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:match-community') or " + + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:match-large-community') or " + + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:match-extcommunity')"; container comm-list { leaf comm-list-name { type bgp-filter:bgp-list-name; @@ -532,7 +532,7 @@ module frr-bgp-route-map { } case ipv4-address { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'ipv4-nexthop')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:ipv4-nexthop')"; leaf ipv4-address { type inet:ipv4-address; description @@ -541,7 +541,7 @@ module frr-bgp-route-map { } case ipv6-address { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'ipv6-nexthop')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:ipv6-nexthop')"; leaf ipv6-address { type inet:ipv6-address; description @@ -552,7 +552,7 @@ module frr-bgp-route-map { augment "/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:rmap-set-action/frr-route-map:set-action" { case distance { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'distance')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:distance')"; leaf distance { type uint8 { range "0..255"; @@ -561,7 +561,7 @@ module frr-bgp-route-map { } case extcommunity-rt { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'set-extcommunity-rt')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-extcommunity-rt')"; description "Value of the ext-community"; leaf extcommunity-rt { @@ -572,7 +572,7 @@ module frr-bgp-route-map { } case extcommunity-soo { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'set-extcommunity-soo')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-extcommunity-soo')"; description "Value of the ext-community"; leaf extcommunity-soo { @@ -583,7 +583,7 @@ module frr-bgp-route-map { } case extcommunity-lb { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'set-extcommunity-lb')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-extcommunity-lb')"; container extcommunity-lb { description "Value of the ext-community."; @@ -604,7 +604,7 @@ module frr-bgp-route-map { } case ipv4-address { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'ipv4-vpn-address')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:ipv4-vpn-address')"; description "Set the IPv4 address"; leaf ipv4-address { @@ -613,15 +613,15 @@ module frr-bgp-route-map { } case ipv4-nexthop { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'set-ipv4-nexthop')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-ipv4-nexthop')"; leaf ipv4-nexthop { type string; } } case ipv6-address { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'ipv6-nexthop-global') or " - + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'ipv6-vpn-address')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:ipv6-nexthop-global') or " + + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:ipv6-vpn-address')"; description "Set the IPv6 address"; leaf ipv6-address { @@ -630,15 +630,15 @@ module frr-bgp-route-map { } case preference { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'ipv6-prefer-global') or " - + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'ipv6-peer-address')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:ipv6-prefer-global') or " + + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:ipv6-peer-address')"; leaf preference { type boolean; } } case label-index { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'label-index')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:label-index')"; leaf label-index { type uint32 { range "0..1048560"; @@ -647,14 +647,14 @@ module frr-bgp-route-map { } case local-pref { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'set-local-preference')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-local-preference')"; leaf local-pref { type string; } } case weight { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'weight')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:weight')"; leaf weight { type uint32 { range "0..4294967295"; @@ -663,7 +663,7 @@ module frr-bgp-route-map { } case origin { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'set-origin')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-origin')"; leaf origin { type enumeration { enum "egp" { @@ -686,14 +686,14 @@ module frr-bgp-route-map { } case originator-id { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'originator-id')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:originator-id')"; leaf originator-id { type inet:ipv4-address; } } case table { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'table')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:table')"; leaf table { type uint32 { range "1..4294967295"; @@ -702,14 +702,14 @@ module frr-bgp-route-map { } case atomic-aggregate { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'atomic-aggregate')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:atomic-aggregate')"; leaf atomic-aggregate { type empty; } } case as-path-prepend { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'as-path-prepend')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:as-path-prepend')"; choice as-path-prepend { description "Value of the BGP AS-path attribute"; @@ -734,7 +734,7 @@ module frr-bgp-route-map { } case as-path-exclude { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'as-path-exclude')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:as-path-exclude')"; leaf exclude-as-path { type string; description @@ -743,7 +743,7 @@ module frr-bgp-route-map { } case community { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'set-community')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-community')"; choice community { description "Value of the BGP community attribute"; @@ -766,7 +766,7 @@ module frr-bgp-route-map { } case large-community { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'set-large-community')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-large-community')"; choice large-community { description "Value of the BGP large-community attribute"; @@ -789,7 +789,7 @@ module frr-bgp-route-map { } case aggregator { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'aggregator')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:aggregator')"; container aggregator { leaf aggregator-asn { type uint32 { @@ -810,8 +810,8 @@ module frr-bgp-route-map { } case comm-list-name { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'comm-list-delete') or " - + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'large-comm-list-delete')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:comm-list-delete') or " + + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:large-comm-list-delete')"; leaf comm-list-name { type bgp-filter:bgp-list-name; } diff --git a/yang/frr-bgp.yang b/yang/frr-bgp.yang index ae44447df..a779bb205 100644 --- a/yang/frr-bgp.yang +++ b/yang/frr-bgp.yang @@ -23,10 +23,10 @@ module frr-bgp { prefix frr-bt; } - include "frr-bgp-common-structure"; - include "frr-bgp-common"; + include "frr-bgp-common-structure"; + include "frr-bgp-common-multiprotocol"; include "frr-bgp-neighbor"; diff --git a/yang/frr-isisd.yang b/yang/frr-isisd.yang index 4653e6f00..5997e8866 100644 --- a/yang/frr-isisd.yang +++ b/yang/frr-isisd.yang @@ -481,6 +481,10 @@ module frr-isisd { description "TI-LFA configuration."; leaf enable { + must ". = 'false' or ../../lfa/enable = 'false'" { + error-message + "Can't enable both classic LFA and TI-LFA in the same interface."; + } type boolean; default false; description @@ -804,10 +808,6 @@ module frr-isisd { container level-1 { description "Level-1 IP Fast-reroute configuration."; - must "./lfa/enable = 'false' or ./ti-lfa/enable = 'false'" { - error-message - "Can't enable both classic LFA and TI-LFA in the same interface."; - } uses interface-config-lfa; uses interface-config-remote-lfa; uses interface-config-ti-lfa; @@ -815,10 +815,6 @@ module frr-isisd { container level-2 { description "Level-2 IP Fast-reroute configuration."; - must "./lfa/enable = 'false' or ./ti-lfa/enable = 'false'" { - error-message - "Can't enable both classic LFA and TI-LFA in the same interface."; - } uses interface-config-lfa; uses interface-config-remote-lfa; uses interface-config-ti-lfa; @@ -1502,14 +1498,15 @@ module frr-isisd { container srgb { description "Global blocks to be advertised."; - must "./upper-bound > ./lower-bound"; leaf lower-bound { + must "../upper-bound > ."; type uint32; default "16000"; description "Lower value in the label range."; } leaf upper-bound { + must ". > ../lower-bound"; type uint32; default "23999"; description @@ -1519,14 +1516,15 @@ module frr-isisd { container srlb { description "Local blocks to be advertised."; - must "./upper-bound > ./lower-bound"; leaf lower-bound { + must "../upper-bound > ."; type uint32; default "15000"; description "Lower value in the label range."; } leaf upper-bound { + must ". > ../lower-bound"; type uint32; default "15999"; description diff --git a/yang/frr-ospfd.yang b/yang/frr-ospfd.yang index 42a7e8784..b0150cc06 100644 --- a/yang/frr-ospfd.yang +++ b/yang/frr-ospfd.yang @@ -682,8 +682,8 @@ module frr-ospfd { container global-block { description "Segment Routing Global Block label range."; - must "./upper-bound > ./lower-bound"; leaf lower-bound { + must "../upper-bound > ."; type uint32 { range "0..1048575"; } @@ -691,6 +691,7 @@ module frr-ospfd { } leaf upper-bound { + must ". > ../lower-bound"; type uint32 { range "0..1048575"; } @@ -701,14 +702,15 @@ module frr-ospfd { container srlb { description "Local blocks to be advertised."; - must "./upper-bound > ./lower-bound"; leaf lower-bound { + must "../upper-bound > ."; type uint32; default "15000"; description "Lower value in the label range."; } leaf upper-bound { + must ". > ../lower-bound"; type uint32; default "15999"; description diff --git a/yang/frr-pim.yang b/yang/frr-pim.yang index 52d864161..70adb37b2 100644 --- a/yang/frr-pim.yang +++ b/yang/frr-pim.yang @@ -341,14 +341,14 @@ module frr-pim { leaf bsm { type boolean; - default "false"; + default "true"; description "Enables BSM support on the interface."; } leaf unicast-bsm { type boolean; - default "false"; + default "true"; description "Accept/Send unicast BSM on the interface."; } diff --git a/yang/frr-ripd.yang b/yang/frr-ripd.yang index 929c91606..d77241cb1 100644 --- a/yang/frr-ripd.yang +++ b/yang/frr-ripd.yang @@ -291,6 +291,10 @@ module frr-ripd { } container version { leaf receive { + must + '(. = "1" and ../send = "1") or ' + + '(. = "2" and ../send = "2") or ' + + '(. = "1-2" and ../send = "2")'; type enumeration { enum "1" { value 1; @@ -313,6 +317,10 @@ module frr-ripd { "Advertisement reception - Version control."; } leaf send { + must + '(../receive = "1" and . = "1") or ' + + '(../receive = "2" and . = "2") or ' + + '(../receive = "1-2" and . = "2")'; type enumeration { enum "1" { value 1; @@ -329,10 +337,6 @@ module frr-ripd { description "Advertisement transmission - Version control."; } - must - '(./receive = "1" and ./send = "1") or ' + - '(./receive = "2" and ./send = "2") or ' + - '(./receive = "1-2" and ./send = "2")'; } /* diff --git a/yang/frr-zebra-route-map.yang b/yang/frr-zebra-route-map.yang index 91f4c87e3..de0f64d38 100644 --- a/yang/frr-zebra-route-map.yang +++ b/yang/frr-zebra-route-map.yang @@ -64,10 +64,15 @@ module frr-zebra-route-map { "Set IPv4/IPv6 source address for route"; } - augment "/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:rmap-match-condition/frr-route-map:match-condition" { + augment "/frr-route-map:lib" + + "/frr-route-map:route-map" + + "/frr-route-map:entry" + + "/frr-route-map:match-condition" + + "/frr-route-map:rmap-match-condition" + + "/frr-route-map:match-condition" { case ipv4-prefix-length { - when "derived-from-or-self(../condition, 'ipv4-prefix-length') or " - + "derived-from-or-self(../condition, 'ipv4-next-hop-prefix-length')"; + when "derived-from-or-self(../frr-route-map:condition, 'frr-zebra-route-map:ipv4-prefix-length') or " + + "derived-from-or-self(../frr-route-map:condition, 'frr-zebra-route-map:ipv4-next-hop-prefix-length')"; leaf ipv4-prefix-length { type uint8 { range "0..32"; @@ -76,7 +81,7 @@ module frr-zebra-route-map { } case ipv6-prefix-length { - when "derived-from-or-self(../condition, 'ipv6-prefix-length')"; + when "derived-from-or-self(../frr-route-map:condition, 'frr-zebra-route-map:ipv6-prefix-length')"; leaf ipv6-prefix-length { type uint8 { range "0..128"; @@ -85,7 +90,7 @@ module frr-zebra-route-map { } case source-instance { - when "derived-from-or-self(../condition, 'source-instance')"; + when "derived-from-or-self(../frr-route-map:condition, 'frr-zebra-route-map:source-instance')"; leaf source-instance { type uint8 { range "0..255"; @@ -94,16 +99,21 @@ module frr-zebra-route-map { } case source-protocol { - when "derived-from-or-self(../condition, 'source-protocol')"; + when "derived-from-or-self(../frr-route-map:condition, 'frr-zebra-route-map:source-protocol')"; leaf source-protocol { type frr-route-types:frr-route-types; } } } - augment "/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:rmap-set-action/frr-route-map:set-action" { + augment "/frr-route-map:lib" + + "/frr-route-map:route-map" + + "/frr-route-map:entry" + + "/frr-route-map:set-action" + + "/frr-route-map:rmap-set-action" + + "/frr-route-map:set-action" { case src-address { - when "derived-from-or-self(../action, 'src-address')"; + when "derived-from-or-self(../frr-route-map:action, 'frr-zebra-route-map:src-address')"; choice src-address { description "Value of the source address"; diff --git a/yang/frr-zebra.yang b/yang/frr-zebra.yang index 5c2560837..a2c6bb4c2 100644 --- a/yang/frr-zebra.yang +++ b/yang/frr-zebra.yang @@ -1953,7 +1953,7 @@ module frr-zebra { } leaf ip4-peer { - when "derived-from-or-self(../address-family, 'ipv4')"; + when "derived-from-or-self(../address-family, 'frr-rt:ipv4')"; type inet:ipv4-prefix; description "Peer prefix, for peer-to-peer interfaces."; |