summaryrefslogtreecommitdiffstats
path: root/yang
diff options
context:
space:
mode:
authorChristian Hopps <chopps@gmail.com>2021-05-04 16:41:58 +0200
committerChristian Hopps <chopps@labn.net>2021-05-13 22:24:48 +0200
commit3bb513c399c2e7c8dd597b7399dd7c0f064842d0 (patch)
tree14f3e677c49fce272946788f8a8b8f3f8a3e26b5 /yang
parentMerge pull request #8629 from donaldsharp/parse_rtattr (diff)
downloadfrr-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.py2
-rw-r--r--yang/frr-bgp-bmp.yang2
-rw-r--r--yang/frr-bgp-common-multiprotocol.yang30
-rw-r--r--yang/frr-bgp-common-structure.yang3
-rw-r--r--yang/frr-bgp-common.yang7
-rw-r--r--yang/frr-bgp-neighbor.yang3
-rw-r--r--yang/frr-bgp-peer-group.yang3
-rw-r--r--yang/frr-bgp-route-map.yang88
-rw-r--r--yang/frr-bgp.yang4
-rw-r--r--yang/frr-isisd.yang18
-rw-r--r--yang/frr-ospfd.yang6
-rw-r--r--yang/frr-pim.yang4
-rw-r--r--yang/frr-ripd.yang12
-rw-r--r--yang/frr-zebra-route-map.yang26
-rw-r--r--yang/frr-zebra.yang2
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.";