diff --git a/src/sonic-yang-models/yang-models/sonic-bgp-common.yang b/src/sonic-yang-models/yang-models/sonic-bgp-common.yang index e035c1be26..d36d56277d 100644 --- a/src/sonic-yang-models/yang-models/sonic-bgp-common.yang +++ b/src/sonic-yang-models/yang-models/sonic-bgp-common.yang @@ -382,22 +382,6 @@ module sonic-bgp-common { description "Interval after which connection will get re-established"; } - leaf-list route_map_in { - type leafref { - path "/rmap:sonic-route-map/rmap:ROUTE_MAP_SET/rmap:ROUTE_MAP_SET_LIST/rmap:name"; - } - description "Route-map filter for incoming routes"; - max-elements 1; - } - - leaf-list route_map_out { - type leafref { - path "/rmap:sonic-route-map/rmap:ROUTE_MAP_SET/rmap:ROUTE_MAP_SET_LIST/rmap:name"; - } - description "Route-map filter for outgoing routes"; - max-elements 1; - } - leaf soft_reconfiguration_in { type boolean; description "Inbound soft reconfiguration"; diff --git a/src/sonic-yang-models/yang-models/sonic-bgp-neighbor.yang b/src/sonic-yang-models/yang-models/sonic-bgp-neighbor.yang index c8ce6ec4ad..d10613bb06 100644 --- a/src/sonic-yang-models/yang-models/sonic-bgp-neighbor.yang +++ b/src/sonic-yang-models/yang-models/sonic-bgp-neighbor.yang @@ -28,6 +28,10 @@ module sonic-bgp-neighbor { // prefix vlan; //} + import sonic-route-map { + prefix rmap; + } + import sonic-bgp-global { prefix bgpg; } @@ -130,7 +134,26 @@ module sonic-bgp-neighbor { } description "BGP Neighbor, it will be neighbor address or interface name"; } + uses bgpcmn:sonic-bgp-cmn-af; + + // These should logically be in sonic-bgp-cmn-af, however due to a libyang2 bug when including + // a leaf-list entry, there are validation failures. + leaf-list route_map_in { + type leafref { + path "/rmap:sonic-route-map/rmap:ROUTE_MAP_SET/rmap:ROUTE_MAP_SET_LIST/rmap:name"; + } + description "Route-map filter for incoming routes"; + max-elements 1; + } + + leaf-list route_map_out { + type leafref { + path "/rmap:sonic-route-map/rmap:ROUTE_MAP_SET/rmap:ROUTE_MAP_SET_LIST/rmap:name"; + } + description "Route-map filter for outgoing routes"; + max-elements 1; + } } } } diff --git a/src/sonic-yang-models/yang-models/sonic-bgp-peergroup.yang b/src/sonic-yang-models/yang-models/sonic-bgp-peergroup.yang index a1f9bd2ce9..b879587c46 100644 --- a/src/sonic-yang-models/yang-models/sonic-bgp-peergroup.yang +++ b/src/sonic-yang-models/yang-models/sonic-bgp-peergroup.yang @@ -15,6 +15,10 @@ module sonic-bgp-peergroup { prefix bgpg; } + import sonic-route-map { + prefix rmap; + } + organization "SONiC"; @@ -68,6 +72,24 @@ module sonic-bgp-peergroup { } uses bgpcmn:sonic-bgp-cmn-af; + + // These should logically be in sonic-bgp-cmn-af, however due to a libyang2 bug when including + // a leaf-list entry, there are validation failures. + leaf-list route_map_in { + type leafref { + path "/rmap:sonic-route-map/rmap:ROUTE_MAP_SET/rmap:ROUTE_MAP_SET_LIST/rmap:name"; + } + description "Route-map filter for incoming routes"; + max-elements 1; + } + + leaf-list route_map_out { + type leafref { + path "/rmap:sonic-route-map/rmap:ROUTE_MAP_SET/rmap:ROUTE_MAP_SET_LIST/rmap:name"; + } + description "Route-map filter for outgoing routes"; + max-elements 1; + } } }