diff --git a/scripts/frr/configs/commands/bgp.json b/scripts/frr/configs/commands/bgp.json index e9d25d8..fb90055 100644 --- a/scripts/frr/configs/commands/bgp.json +++ b/scripts/frr/configs/commands/bgp.json @@ -52,6 +52,14 @@ "/protocols/bgp/@element/address-family/ipv4-unicast/parameters/dampening": "bgp dampening $if|{/half-life/@text},|half-life in {/@dict}$", "/protocols/bgp/@element/address-family/ipv4-unicast/parameters/distance/global": "distance bgp {/external/@text} {/internal/@text} {/local/@text}", "/protocols/bgp/@element/address-family/ipv4-unicast/network/@element": "network {/tagnode/@text} [route-map {/route-map/@text},] $if|backdoor,|backdoor in {/@dict}$", + "/protocols/bgp/@element/address-family/ipv4-unicast/label/vpn/export": "label vpn export {/@text}", + "/protocols/bgp/@element/address-family/vpnv4-unicast/@enter": "address-family ipv4 vpn", + "/protocols/bgp/@element/address-family/vpnv4-unicast/@exit": "exit-address-family", + "/protocols/bgp/@element/address-family/vpnv4-unicast/network/@element": "network {/addr/@text} rd {/rd/@text} label {/label/@text} [route-map {/route-map/@text},]", + + "/protocols/bgp/@element/address-family/vpnv6-unicast/@enter": "address-family ipv6 vpn", + "/protocols/bgp/@element/address-family/vpnv6-unicast/@exit": "exit-address-family", + "/protocols/bgp/@element/address-family/vpnv6-unicast/network/@element": "network {/addr/@text} rd {/rd/@text} label {/label/@text} [route-map {/route-map/@text},]", "/protocols/bgp/@element/address-family/ipv6-unicast/@enter": "address-family ipv6 unicast", "/protocols/bgp/@element/address-family/ipv6-unicast/@exit": "exit-address-family", @@ -64,6 +72,7 @@ "/protocols/bgp/@element/address-family/ipv6-unicast/parameters/dampening": "bgp dampening $if|{/half-life/@text},|half-life in {/@dict}$", "/protocols/bgp/@element/address-family/ipv6-unicast/parameters/distance/global": "distance bgp {/external/@text} {/internal/@text} {/local/@text}", "/protocols/bgp/@element/address-family/ipv6-unicast/network/@element": "network {/tagnode/@text} [route-map {/route-map/@text},]", + "/protocols/bgp/@element/address-family/ipv6-unicast/label/vpn/export": "label vpn export {/@text}", "/protocols/bgp/@element/neighbor/@element/address-family/ipv4-unicast/@enter": "address-family ipv4 unicast", "/protocols/bgp/@element/neighbor/@element/address-family/ipv4-unicast/@exit": "exit-address-family", @@ -94,6 +103,35 @@ "/protocols/bgp/@element/neighbor/@element/address-family/ipv4-unicast/unsuppress-map": "neighbor {/../../../tagnode/@text} unsuppress-map {/@text}", "/protocols/bgp/@element/neighbor/@element/address-family/ipv4-unicast/weight": "neighbor {/../../../tagnode/@text} weight {/@text}", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/@enter": "address-family ipv4 vpn", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/@exit": "exit-address-family", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast": ["[neighbor {/../../tagnode/@text} peer-group {/peer-group/@text},]", "neighbor {/../../tagnode/@text} activate"], + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/allowas-in": "neighbor {/../../../tagnode/@text} allowas-in", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/allowas-in/number": "neighbor {/../../../../tagnode/@text} allowas-in {/@text}", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/attribute-unchanged": "neighbor {/../../../tagnode/@text} attribute-unchanged $if|as-path,|as-path in {/@dict}$ $if|med,|med in {/@dict}$ $if|next-hop,|next-hop in {/@dict}$", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/capability/orf/prefix-list/send": "neighbor {/../../../../../../tagnode/@text} capability orf prefix-list send", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/capability/orf/prefix-list/receive": "neighbor {/../../../../../../tagnode/@text} capability orf prefix-list receive", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/default-originate": "neighbor {/../../../tagnode/@text} default-originate [route-map {/route-map/@text},]", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/disable-send-community/standard": "no neighbor {/../../../../tagnode/@text} send-community standard", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/disable-send-community/extended": "no neighbor {/../../../../tagnode/@text} send-community extended", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/distribute-list/export": "neighbor {/../../../../tagnode/@text} distribute-list {/@text} out", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/distribute-list/import": "neighbor {/../../../../tagnode/@text} distribute-list {/@text} in", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/filter-list/export": "neighbor {/../../../../tagnode/@text} filter-list {/@text} out", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/filter-list/import": "neighbor {/../../../../tagnode/@text} filter-list {/@text} in", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/maximum-prefix/@element": "neighbor {/../../../../tagnode/@text} maximum-prefix {/tagnode/@text} $if|{/threshold/@element/tagnode/@text},|threshold in {/@dict}$", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/maximum-prefix/@element/threshold/@element": "neighbor {/../../../../../../tagnode/@text} maximum-prefix {/../../tagnode/@text} {/tagnode/@text} $if|warning-only,|warning-only in {/@dict}$", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/nexthop-self": "neighbor {/../../../tagnode/@text} next-hop-self", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/prefix-list/export": "neighbor {/../../../../tagnode/@text} prefix-list {/@text} out", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/prefix-list/import": "neighbor {/../../../../tagnode/@text} prefix-list {/@text} in", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/remove-private-as": "neighbor {/../../../tagnode/@text} remove-private-AS", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/route-reflector-client": "neighbor {/../../../tagnode/@text} route-reflector-client", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/route-server-client": "neighbor {/../../../tagnode/@text} route-server-client", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/soft-reconfiguration/inbound": "neighbor {/../../../../tagnode/@text} soft-reconfiguration inbound", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/route-map/import": "neighbor {/../../../../tagnode/@text} route-map {/@text} in", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/route-map/export": "neighbor {/../../../../tagnode/@text} route-map {/@text} out", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/unsuppress-map": "neighbor {/../../../tagnode/@text} unsuppress-map {/@text}", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/weight": "neighbor {/../../../tagnode/@text} weight {/@text}", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-unicast/@enter": "address-family ipv6 unicast", "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-unicast/@exit": "exit-address-family", "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-unicast": ["[neighbor {/../../tagnode/@text} peer-group {/peer-group/@text},]", "neighbor {/../../tagnode/@text} activate"], @@ -122,7 +160,66 @@ "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-unicast/route-map/export": "neighbor {/../../../../tagnode/@text} route-map {/@text} out", "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-unicast/unsuppress-map": "neighbor {/../../../tagnode/@text} unsuppress-map {/@text}", "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-unicast/weight": "neighbor {/../../../tagnode/@text} weight {/@text}", - + + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/@enter": "address-family ipv6 vpn", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/@exit": "exit-address-family", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast": ["[neighbor {/../../tagnode/@text} peer-group {/peer-group/@text},]", "neighbor {/../../tagnode/@text} activate"], + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/allowas-in": "neighbor {/../../../tagnode/@text} allowas-in", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/allowas-in/number": "neighbor {/../../../../tagnode/@text} allowas-in {/@text}", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/attribute-unchanged": "neighbor {/../../../tagnode/@text} attribute-unchanged $if|as-path,|as-path in {/@dict}$ $if|med,|med in {/@dict}$ $if|next-hop,|next-hop in {/@dict}$", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/capability/orf/prefix-list/send": "neighbor {/../../../../../../tagnode/@text} capability orf prefix-list send", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/capability/orf/prefix-list/receive": "neighbor {/../../../../../../tagnode/@text} capability orf prefix-list receive", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/default-originate": "neighbor {/../../../tagnode/@text} default-originate [route-map {/route-map/@text},]", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/disable-send-community/standard": "no neighbor {/../../../../tagnode/@text} send-community standard", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/disable-send-community/extended": "no neighbor {/../../../../tagnode/@text} send-community extended", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/distribute-list/export": "neighbor {/../../../../tagnode/@text} distribute-list {/@text} out", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/distribute-list/import": "neighbor {/../../../../tagnode/@text} distribute-list {/@text} in", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/filter-list/export": "neighbor {/../../../../tagnode/@text} filter-list {/@text} out", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/filter-list/import": "neighbor {/../../../../tagnode/@text} filter-list {/@text} in", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/maximum-prefix/@element": "neighbor {/../../../../tagnode/@text} maximum-prefix {/tagnode/@text} $if|{/threshold/@element/tagnode/@text},|threshold in {/@dict}$", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/maximum-prefix/@element/threshold/@element": "neighbor {/../../../../../../tagnode/@text} maximum-prefix {/../../tagnode/@text} {/tagnode/@text} $if|warning-only,|warning-only in {/@dict}$", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/nexthop-self": "neighbor {/../../../tagnode/@text} next-hop-self", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/prefix-list/export": "neighbor {/../../../../tagnode/@text} prefix-list {/@text} out", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/prefix-list/import": "neighbor {/../../../../tagnode/@text} prefix-list {/@text} in", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/remove-private-as": "neighbor {/../../../tagnode/@text} remove-private-AS", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/route-reflector-client": "neighbor {/../../../tagnode/@text} route-reflector-client", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/route-server-client": "neighbor {/../../../tagnode/@text} route-server-client", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/soft-reconfiguration/inbound": "neighbor {/../../../../tagnode/@text} soft-reconfiguration inbound", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/route-map/import": "neighbor {/../../../../tagnode/@text} route-map {/@text} in", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/route-map/export": "neighbor {/../../../../tagnode/@text} route-map {/@text} out", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/unsuppress-map": "neighbor {/../../../tagnode/@text} unsuppress-map {/@text}", + "/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/weight": "neighbor {/../../../tagnode/@text} weight {/@text}", + + + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/@enter": "address-family ipv6 labeled-unicast", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/@exit": "exit-address-family", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast": ["[neighbor {/../../tagnode/@text} peer-group {/peer-group/@text},]", "neighbor {/../../tagnode/@text} activate"], + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/allowas-in": "neighbor {/../../../tagnode/@text} allowas-in", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/allowas-in/number": "neighbor {/../../../../tagnode/@text} allowas-in {/@text}", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/attribute-unchanged": "neighbor {/../../../tagnode/@text} attribute-unchanged $if|as-path,|as-path in {/@dict}$ $if|med,|med in {/@dict}$ $if|next-hop,|next-hop in {/@dict}$", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/capability/orf/prefix-list/send": "neighbor {/../../../../../../tagnode/@text} capability orf prefix-list send", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/capability/orf/prefix-list/receive": "neighbor {/../../../../../../tagnode/@text} capability orf prefix-list receive", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/default-originate": "neighbor {/../../../tagnode/@text} default-originate [route-map {/route-map/@text},]", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/disable-send-community/standard": "no neighbor {/../../../../tagnode/@text} send-community standard", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/disable-send-community/extended": "no neighbor {/../../../../tagnode/@text} send-community extended", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/distribute-list/export": "neighbor {/../../../../tagnode/@text} distribute-list {/@text} out", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/distribute-list/import": "neighbor {/../../../../tagnode/@text} distribute-list {/@text} in", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/filter-list/export": "neighbor {/../../../../tagnode/@text} filter-list {/@text} out", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/filter-list/import": "neighbor {/../../../../tagnode/@text} filter-list {/@text} in", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/maximum-prefix/@element": "neighbor {/../../../../tagnode/@text} maximum-prefix {/tagnode/@text} $if|{/threshold/@element/tagnode/@text},|threshold in {/@dict}$", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/maximum-prefix/@element/threshold/@element": "neighbor {/../../../../../../tagnode/@text} maximum-prefix {/../../tagnode/@text} {/tagnode/@text} $if|warning-only,|warning-only in {/@dict}$", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/nexthop-self": "neighbor {/../../../tagnode/@text} next-hop-self", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/prefix-list/export": "neighbor {/../../../../tagnode/@text} prefix-list {/@text} out", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/prefix-list/import": "neighbor {/../../../../tagnode/@text} prefix-list {/@text} in", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/remove-private-as": "neighbor {/../../../tagnode/@text} remove-private-AS", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/route-reflector-client": "neighbor {/../../../tagnode/@text} route-reflector-client", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/route-server-client": "neighbor {/../../../tagnode/@text} route-server-client", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/soft-reconfiguration/inbound": "neighbor {/../../../../tagnode/@text} soft-reconfiguration inbound", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/route-map/import": "neighbor {/../../../../tagnode/@text} route-map {/@text} in", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/route-map/export": "neighbor {/../../../../tagnode/@text} route-map {/@text} out", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/unsuppress-map": "neighbor {/../../../tagnode/@text} unsuppress-map {/@text}", + "/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/weight": "neighbor {/../../../tagnode/@text} weight {/@text}", + "/protocols/bgp/@element/peer-group/@element": "neighbor {/tagnode/@text} peer-group", "/protocols/bgp/@element/peer-group/@element/advertisement-interval": "neighbor {/../tagnode/@text} advertisement-interval {/@text}", "/protocols/bgp/@element/peer-group/@element/capability/dynamic": "neighbor {/../../tagnode/@text} capability dynamic", diff --git a/scripts/frr/configs/commands/bgp_vrf.json b/scripts/frr/configs/commands/bgp_vrf.json index 68e7687..a31d49c 100644 --- a/scripts/frr/configs/commands/bgp_vrf.json +++ b/scripts/frr/configs/commands/bgp_vrf.json @@ -55,6 +55,11 @@ "/routing/routing-instance/@element/protocols/bgp/@element/address-family/ipv4-unicast/parameters/dampening": "bgp dampening $if|{/half-life/@text},|half-life in {/@dict}$", "/routing/routing-instance/@element/protocols/bgp/@element/address-family/ipv4-unicast/parameters/distance/global": "distance bgp {/external/@text} {/internal/@text} {/local/@text}", "/routing/routing-instance/@element/protocols/bgp/@element/address-family/ipv4-unicast/network/@element": "network {/tagnode/@text} [route-map {/route-map/@text},] $if|backdoor,|backdoor in {/@dict}$", + "/routing/routing-instance/@element/protocols/bgp/@element/address-family/ipv4-unicast/label/vpn/export": "label vpn export {/@text}", + + "/routing/routing-instance/@element/protocols/bgp/@element/address-family/vpnv4-unicast/@enter": "address-family ipv4 vpn", + "/routing/routing-instance/@element/protocols/bgp/@element/address-family/vpnv4-unicast/@exit": "exit-address-family", + "/routing/routing-instance/@element/protocols/bgp/@element/address-family/vpnv4-unicast/network/@element": "network {/addr/@text} rd {/rd/@text} label {/label/@text} [route-map {/route-map/@text},]", "/routing/routing-instance/@element/protocols/bgp/@element/address-family/ipv6-unicast/@enter": "address-family ipv6 unicast", "/routing/routing-instance/@element/protocols/bgp/@element/address-family/ipv6-unicast/@exit": "exit-address-family", @@ -70,6 +75,12 @@ "/routing/routing-instance/@element/protocols/bgp/@element/address-family/ipv6-unicast/parameters/dampening": "bgp dampening $if|{/half-life/@text},|half-life in {/@dict}$", "/routing/routing-instance/@element/protocols/bgp/@element/address-family/ipv6-unicast/parameters/distance/global": "distance bgp {/external/@text} {/internal/@text} {/local/@text}", "/routing/routing-instance/@element/protocols/bgp/@element/address-family/ipv6-unicast/network/@element": "network {/tagnode/@text} [route-map {/route-map/@text},]", + "/routing/routing-instance/@element/protocols/bgp/@element/address-family/ipv6-unicast/label/vpn/export": "label vpn export {/@text}", + + "/routing/routing-instance/@element/protocols/bgp/@element/address-family/vpnv6-unicast/@enter": "address-family ipv6 vpn", + "/routing/routing-instance/@element/protocols/bgp/@element/address-family/vpnv6-unicast/@exit": "exit-address-family", + "/routing/routing-instance/@element/protocols/bgp/@element/address-family/vpnv6-unicast/network/@element": "network {/addr/@text} rd {/rd/@text} label {/label/@text} [route-map {/route-map/@text},]", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv4-unicast/@enter": "address-family ipv4 unicast", "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv4-unicast/@exit": "exit-address-family", @@ -100,6 +111,36 @@ "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv4-unicast/unsuppress-map": "neighbor {/../../../tagnode/@text} unsuppress-map {/@text}", "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv4-unicast/weight": "neighbor {/../../../tagnode/@text} weight {/@text}", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/@enter": "address-family ipv4 vpn", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/@exit": "exit-address-family", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast": ["[neighbor {/../../tagnode/@text} peer-group {/peer-group/@text},]", "neighbor {/../../tagnode/@text} activate"], + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/allowas-in": "neighbor {/../../../tagnode/@text} allowas-in", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/allowas-in/number": "neighbor {/../../../../tagnode/@text} allowas-in {/@text}", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/attribute-unchanged": "neighbor {/../../../tagnode/@text} attribute-unchanged $if|as-path,|as-path in {/@dict}$ $if|med,|med in {/@dict}$ $if|next-hop,|next-hop in {/@dict}$", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/capability/orf/prefix-list/send": "neighbor {/../../../../../../tagnode/@text} capability orf prefix-list send", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/capability/orf/prefix-list/receive": "neighbor {/../../../../../../tagnode/@text} capability orf prefix-list receive", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/default-originate": "neighbor {/../../../tagnode/@text} default-originate [route-map {/route-map/@text},]", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/disable-send-community/standard": "no neighbor {/../../../../tagnode/@text} send-community standard", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/disable-send-community/extended": "no neighbor {/../../../../tagnode/@text} send-community extended", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/distribute-list/export": "neighbor {/../../../../tagnode/@text} distribute-list {/@text} out", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/distribute-list/import": "neighbor {/../../../../tagnode/@text} distribute-list {/@text} in", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/filter-list/export": "neighbor {/../../../../tagnode/@text} filter-list {/@text} out", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/filter-list/import": "neighbor {/../../../../tagnode/@text} filter-list {/@text} in", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/maximum-prefix/@element": "neighbor {/../../../../tagnode/@text} maximum-prefix {/tagnode/@text} $if|{/threshold/@element/tagnode/@text},|threshold in {/@dict}$", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/maximum-prefix/@element/threshold/@element": "neighbor {/../../../../../../tagnode/@text} maximum-prefix {/../../tagnode/@text} {/tagnode/@text} $if|warning-only,|warning-only in {/@dict}$", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/nexthop-self": "neighbor {/../../../tagnode/@text} next-hop-self", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/prefix-list/export": "neighbor {/../../../../tagnode/@text} prefix-list {/@text} out", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/prefix-list/import": "neighbor {/../../../../tagnode/@text} prefix-list {/@text} in", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/remove-private-as": "neighbor {/../../../tagnode/@text} remove-private-AS", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/route-reflector-client": "neighbor {/../../../tagnode/@text} route-reflector-client", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/route-server-client": "neighbor {/../../../tagnode/@text} route-server-client", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/soft-reconfiguration/inbound": "neighbor {/../../../../tagnode/@text} soft-reconfiguration inbound", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/route-map/import": "neighbor {/../../../../tagnode/@text} route-map {/@text} in", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/route-map/export": "neighbor {/../../../../tagnode/@text} route-map {/@text} out", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/unsuppress-map": "neighbor {/../../../tagnode/@text} unsuppress-map {/@text}", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv4-unicast/weight": "neighbor {/../../../tagnode/@text} weight {/@text}", + + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-unicast/@enter": "address-family ipv6 unicast", "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-unicast/@exit": "exit-address-family", "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-unicast": ["[neighbor {/../../tagnode/@text} peer-group {/peer-group/@text},]", "neighbor {/../../tagnode/@text} activate"], @@ -128,7 +169,65 @@ "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-unicast/route-map/export": "neighbor {/../../../../tagnode/@text} route-map {/@text} out", "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-unicast/unsuppress-map": "neighbor {/../../../tagnode/@text} unsuppress-map {/@text}", "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-unicast/weight": "neighbor {/../../../tagnode/@text} weight {/@text}", + + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/@enter": "address-family ipv6 vpn", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/@exit": "exit-address-family", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast": ["[neighbor {/../../tagnode/@text} peer-group {/peer-group/@text},]", "neighbor {/../../tagnode/@text} activate"], + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/allowas-in": "neighbor {/../../../tagnode/@text} allowas-in", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/allowas-in/number": "neighbor {/../../../../tagnode/@text} allowas-in {/@text}", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/attribute-unchanged": "neighbor {/../../../tagnode/@text} attribute-unchanged $if|as-path,|as-path in {/@dict}$ $if|med,|med in {/@dict}$ $if|next-hop,|next-hop in {/@dict}$", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/capability/orf/prefix-list/send": "neighbor {/../../../../../../tagnode/@text} capability orf prefix-list send", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/capability/orf/prefix-list/receive": "neighbor {/../../../../../../tagnode/@text} capability orf prefix-list receive", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/default-originate": "neighbor {/../../../tagnode/@text} default-originate [route-map {/route-map/@text},]", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/disable-send-community/standard": "no neighbor {/../../../../tagnode/@text} send-community standard", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/disable-send-community/extended": "no neighbor {/../../../../tagnode/@text} send-community extended", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/distribute-list/export": "neighbor {/../../../../tagnode/@text} distribute-list {/@text} out", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/distribute-list/import": "neighbor {/../../../../tagnode/@text} distribute-list {/@text} in", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/filter-list/export": "neighbor {/../../../../tagnode/@text} filter-list {/@text} out", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/filter-list/import": "neighbor {/../../../../tagnode/@text} filter-list {/@text} in", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/maximum-prefix/@element": "neighbor {/../../../../tagnode/@text} maximum-prefix {/tagnode/@text} $if|{/threshold/@element/tagnode/@text},|threshold in {/@dict}$", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/maximum-prefix/@element/threshold/@element": "neighbor {/../../../../../../tagnode/@text} maximum-prefix {/../../tagnode/@text} {/tagnode/@text} $if|warning-only,|warning-only in {/@dict}$", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/nexthop-self": "neighbor {/../../../tagnode/@text} next-hop-self", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/prefix-list/export": "neighbor {/../../../../tagnode/@text} prefix-list {/@text} out", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/prefix-list/import": "neighbor {/../../../../tagnode/@text} prefix-list {/@text} in", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/remove-private-as": "neighbor {/../../../tagnode/@text} remove-private-AS", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/route-reflector-client": "neighbor {/../../../tagnode/@text} route-reflector-client", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/route-server-client": "neighbor {/../../../tagnode/@text} route-server-client", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/soft-reconfiguration/inbound": "neighbor {/../../../../tagnode/@text} soft-reconfiguration inbound", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/route-map/import": "neighbor {/../../../../tagnode/@text} route-map {/@text} in", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/route-map/export": "neighbor {/../../../../tagnode/@text} route-map {/@text} out", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/unsuppress-map": "neighbor {/../../../tagnode/@text} unsuppress-map {/@text}", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/vpnv6-unicast/weight": "neighbor {/../../../tagnode/@text} weight {/@text}", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/@enter": "address-family ipv6 labeled-unicast", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/@exit": "exit-address-family", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast": ["[neighbor {/../../tagnode/@text} peer-group {/peer-group/@text},]", "neighbor {/../../tagnode/@text} activate"], + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/allowas-in": "neighbor {/../../../tagnode/@text} allowas-in", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/allowas-in/number": "neighbor {/../../../../tagnode/@text} allowas-in {/@text}", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/attribute-unchanged": "neighbor {/../../../tagnode/@text} attribute-unchanged $if|as-path,|as-path in {/@dict}$ $if|med,|med in {/@dict}$ $if|next-hop,|next-hop in {/@dict}$", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/capability/orf/prefix-list/send": "neighbor {/../../../../../../tagnode/@text} capability orf prefix-list send", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/capability/orf/prefix-list/receive": "neighbor {/../../../../../../tagnode/@text} capability orf prefix-list receive", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/default-originate": "neighbor {/../../../tagnode/@text} default-originate [route-map {/route-map/@text},]", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/disable-send-community/standard": "no neighbor {/../../../../tagnode/@text} send-community standard", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/disable-send-community/extended": "no neighbor {/../../../../tagnode/@text} send-community extended", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/distribute-list/export": "neighbor {/../../../../tagnode/@text} distribute-list {/@text} out", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/distribute-list/import": "neighbor {/../../../../tagnode/@text} distribute-list {/@text} in", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/filter-list/export": "neighbor {/../../../../tagnode/@text} filter-list {/@text} out", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/filter-list/import": "neighbor {/../../../../tagnode/@text} filter-list {/@text} in", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/maximum-prefix/@element": "neighbor {/../../../../tagnode/@text} maximum-prefix {/tagnode/@text} $if|{/threshold/@element/tagnode/@text},|threshold in {/@dict}$", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/maximum-prefix/@element/threshold/@element": "neighbor {/../../../../../../tagnode/@text} maximum-prefix {/../../tagnode/@text} {/tagnode/@text} $if|warning-only,|warning-only in {/@dict}$", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/nexthop-self": "neighbor {/../../../tagnode/@text} next-hop-self", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/prefix-list/export": "neighbor {/../../../../tagnode/@text} prefix-list {/@text} out", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/prefix-list/import": "neighbor {/../../../../tagnode/@text} prefix-list {/@text} in", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/remove-private-as": "neighbor {/../../../tagnode/@text} remove-private-AS", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/route-reflector-client": "neighbor {/../../../tagnode/@text} route-reflector-client", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/route-server-client": "neighbor {/../../../tagnode/@text} route-server-client", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/soft-reconfiguration/inbound": "neighbor {/../../../../tagnode/@text} soft-reconfiguration inbound", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/route-map/import": "neighbor {/../../../../tagnode/@text} route-map {/@text} in", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/route-map/export": "neighbor {/../../../../tagnode/@text} route-map {/@text} out", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/unsuppress-map": "neighbor {/../../../tagnode/@text} unsuppress-map {/@text}", + "/routing/routing-instance/@element/protocols/bgp/@element/neighbor/@element/address-family/ipv6-labeled-unicast/weight": "neighbor {/../../../tagnode/@text} weight {/@text}", + "/routing/routing-instance/@element/protocols/bgp/@element/peer-group/@element": "neighbor {/tagnode/@text} peer-group", "/routing/routing-instance/@element/protocols/bgp/@element/peer-group/@element/advertisement-interval": "neighbor {/../tagnode/@text} advertisement-interval {/@text}", "/routing/routing-instance/@element/protocols/bgp/@element/peer-group/@element/capability/dynamic": "neighbor {/../../tagnode/@text} capability dynamic", diff --git a/yang/vyatta-protocols-frr-bgp-v1.yang b/yang/vyatta-protocols-frr-bgp-v1.yang index 6552eed..ccab11d 100644 --- a/yang/vyatta-protocols-frr-bgp-v1.yang +++ b/yang/vyatta-protocols-frr-bgp-v1.yang @@ -64,10 +64,44 @@ module vyatta-protocols-frr-bgp-v1 { SPDX-License-Identifier: BSD-3-Clause The YANG module package for vyatta-protocols-frr-bgp-v1"; + revision 2020-05-18 { + description "Commands added to support 6PE and 6VPE features."; + } + + revision 2020-04-16 { + description "Added commands to support IPv4 mpls l3 vpn."; + } + revision 2018-10-30 { description "Inital version."; } + typedef rt-rd { + type union { + type string { + //ASN:NN format. Allowing 2-byte:4-byte (65535:4294967295) + pattern '([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])' + + ':' + + '([0-9]|[1-9]\d{1,8}|[1-3]\d{9}|4[0-1]\d{8}|42[0-8]\d{7}|429[0-3]\d{6}|4294[0-8]\d{5}|' + + '42949[0-5]\d{4}|429496[0-6]\d{3}|4294967[0-1]\d{2}|42949672[0-8]\d|429496729[0-5])'; + } + type string { + //ASN:NN format. Allowing 4-byte:2-byte (4294967295:65535) + pattern '([0-9]|[1-9]\d{1,8}|[1-3]\d{9}|4[0-1]\d{8}|42[0-8]\d{7}|429[0-3]\d{6}|4294[0-8]\d{5}|' + + '42949[0-5]\d{4}|429496[0-6]\d{3}|4294967[0-1]\d{2}|42949672[0-8]\d|429496729[0-5])' + + ':' + + '([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])'; + } + type string { + //IPAddress:NN format. Allowing IpAddress:2-byte + pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' + + ':' + + '([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])'; + } + } + } + grouping route-map-group { leaf route-map { description "Route-map for filtering"; @@ -216,6 +250,41 @@ module vyatta-protocols-frr-bgp-v1 { } } + grouping network-vpnv4-unicast { + list network { + description "BGP network"; + configd:help "BGP network"; + key "addr"; + leaf addr { + description "BGP network"; + type types:ipv4-prefix { + configd:normalize "normalize ipv4-prefix"; + } + configd:help "BGP network"; + } + leaf rd { + description "Specify Route Distinguisher"; + configd:help "Specify Route Distinguisher"; + configd:pattern-help "ASN:NN or IPAddress:NN"; + type rt-rd; + default "100:1"; + } + leaf label { + description "VPN NLRI label"; + configd:help "VPN NLRI label"; + type uint32 { + range 0..1048575; + } + default "10"; + } + uses route-map-group { + refine route-map { + configd:help "Route-map to modify network"; + } + } + } + } + grouping network-ipv4 { list network { description "BGP network"; @@ -321,6 +390,40 @@ module vyatta-protocols-frr-bgp-v1 { } } } + grouping network-vpnv6-unicast { + list network { + description "BGP network"; + configd:help "BGP network"; + key "addr"; + leaf addr { + description "BGP network"; + type types:ipv6-prefix { + configd:normalize "normalize ipv4-prefix"; + } + configd:help "BGP network"; + } + leaf rd { + description "Specify Route Distinguisher"; + configd:help "Specify Route Distinguisher"; + configd:pattern-help "ASN:NN or IPAddress:NN"; + type rt-rd; + default "100:1"; + } + leaf label { + description "VPN NLRI label"; + configd:help "VPN NLRI label"; + type uint32 { + range 0..1048575; + } + default "10"; + } + uses route-map-group { + refine route-map { + configd:help "Route-map to modify network"; + } + } + } + } grouping redistribute-ipv6 { container redistribute { @@ -1291,6 +1394,7 @@ module vyatta-protocols-frr-bgp-v1 { } uses neigh_peer_grp_ipv4_lists; } + container ipv6-unicast { description "BGP peer-group IPv6 unicast parameters"; presence "Enables BGP peer-group IPv6 unicast parameters"; @@ -1521,6 +1625,114 @@ module vyatta-protocols-frr-bgp-v1 { } } } + + container vpnv4-unicast { + description "BGP neighbor parameters"; + presence "Enables BGP neighbor IPv4 parameters"; + configd:help "BGP neighbor parameters"; + uses peer-grp-neighbor-afi-common-settings { + refine filter-list/export { + must "not(../../peer-group)" { + error-message "You may not configure + filter-list export for a neighbor in peer-group\n"; + } + } + refine route-map/export { + must "not(../../peer-group)" { + error-message "You may not configure + route-map export for a neighbor in peer-group\n"; + } + } + refine attribute-unchanged { + must "not(../peer-group)" { + error-message "You may not configure + attribute-unchanged for a neighbor in peer-group\n"; + } + } + refine remove-private-as { + must "not(../peer-group)" { + error-message "You may not configure + remove-private-as for a neighbor in peer-group\n"; + } + } + refine route-reflector-client { + must "not(../peer-group)" { + error-message "You may not configure + route-reflector-client for a neighbor in peer-group\n"; + } + } + refine disable-send-community { + must "not(../peer-group)" { + error-message "You may not configure + disable-send-community for a neighbor in peer-group\n"; + } + } + refine capability/orf { + must "not(../../peer-group)" { + error-message "You may not configure + capability orf for a neighbor in peer-group"; + } + } + refine default-originate { + must "not(../peer-group)" { + error-message "You may not configure + default-originate for a neighbor in peer-group\n"; + } + } + refine unsuppress-map { + must "not(../peer-group)" { + error-message "You may not configure + unsuppress-map for a neighbor in peer-group\n"; + } + } + refine nexthop-self { + must "not(../peer-group)" { + error-message "You may not configure + nexthop-self for a neighbor in peer-group\n"; + } + } + refine route-server-client { + must "not(../peer-group)" { + error-message "You may not configure + route-server-client for a neighbor in peer-group\n"; + } + } + } + uses neigh_peer_grp_ipv4_lists { + refine distribute-list { + must "not(../../../../peer-group[tagnode = current()/../peer-group]/ + address-family/ipv4-unicast/prefix-list)" { + error-message "You may not configure + distribute-list when prefix-list is set in peer-group"; + } + } + refine prefix-list { + must "not(../../../../peer-group[tagnode = current()/../peer-group]/ + address-family/ipv4-unicast/distribute-list)" { + error-message "You may not configure + prefix-list when distribute-list is set in peer-group"; + } + } + } + leaf peer-group { + description "IPv4 peer group for this peer"; + type leafref { + path "../../../../peer-group/tagnode"; + } + configd:help "IPv4 peer group for this peer"; + must "../../../../peer-group[tagnode=current()]/ + address-family/ipv4-unicast" { + error-message 'You must configure + address-family ipv4-unicast in peer-group'; + } + must "not(../../ipv6-unicast/peer-group) or + (current() = ../../ipv6-unicast/peer-group)" { + error-message 'You must configure same + peer-group for all address-families'; + } + } + } + container ipv6-unicast { description "BGP neighbor parameters"; presence "Enables BGP neighbor IPv6 parameters"; @@ -1605,6 +1817,210 @@ module vyatta-protocols-frr-bgp-v1 { configd:help "IPv6 peer group for this peer"; } } + container vpnv6-unicast { + description "BGP neighbor parameters"; + presence "Enables BGP neighbor IPv6 parameters"; + configd:help "BGP neighbor parameters"; + uses peer-grp-neighbor-afi-common-settings { + refine filter-list/export { + must "not(../../peer-group)" { + error-message "You may not configure filter-list + export for a neighbor in peer-group\n"; + } + } + refine route-map/export { + must "not(../../peer-group)" { + error-message "You may not configure route-map + export for a neighbor in peer-group\n"; + } + } + refine attribute-unchanged { + must "not(../peer-group)" { + error-message "You may not configure attribute-unchanged + for a neighbor in peer-group\n"; + } + } + refine remove-private-as { + must "not(../peer-group)" { + error-message "You may not configure remove-private-as + for a neighbor in peer-group\n"; + } + } + refine route-reflector-client { + must "not(../peer-group)" { + error-message "You may not configure route-reflector-client + for a neighbor in peer-group\n"; + } + } + refine disable-send-community { + must "not(../peer-group)" { + error-message "You may not configure disable-send-community + for a neighbor in peer-group\n"; + } + } + refine capability/orf { + must "not(../../peer-group)" { + error-message "You may not configure capability orf + for a neighbor in peer-group"; + } + } + refine default-originate { + must "not(../peer-group)" { + error-message "You may not configure default-originate + for a neighbor in peer-group\n"; + } + } + refine unsuppress-map { + must "not(../peer-group)" { + error-message "You may not configure unsuppress-map + for a neighbor in peer-group\n"; + } + } + refine nexthop-self { + must "not(../peer-group)" { + error-message "You may not configure nexthop-self + for a neighbor in peer-group\n"; + } + } + refine route-server-client { + must "not(../peer-group)" { + error-message "You may not configure route-server-client + for a neighbor in peer-group\n"; + } + } + } + uses neigh_peer_grp_ipv6_lists { + refine distribute-list { + must "not(../../../../peer-group[tagnode = current()/../peer-group]/ + address-family/ipv6-unicast/prefix-list)" { + error-message "You may not configure distribute-list when + prefix-list is set in peer-group"; + } + } + refine prefix-list { + must "not(../../../../peer-group[tagnode = current()/../peer-group]/ + address-family/ipv6-unicast/distribute-list)" { + error-message "You may not configure distribute-list + when distribute-list is set in peer-group"; + } + } + } + leaf peer-group { + description "IPv6 peer group for this peer"; + type leafref { + path "../../../../peer-group/tagnode"; + } + must "../../../../peer-group[tagnode=current()]/ + address-family/ipv6-unicast" { + error-message "Please set address-family + ipv6-unicast in peer-group"; + } + configd:help "IPv6 peer group for this peer"; + } + } + + container ipv6-labeled-unicast { + description "BGP neighbor parameters"; + presence "Enables BGP neighbor IPv6 parameters"; + configd:help "BGP neighbor parameters"; + uses peer-grp-neighbor-afi-common-settings { + refine filter-list/export { + must "not(../../peer-group)" { + error-message "You may not configure filter-list export + for a neighbor in peer-group\n"; + } + } + refine route-map/export { + must "not(../../peer-group)" { + error-message "You may not configure route-map + export for a neighbor in peer-group\n"; + } + } + refine attribute-unchanged { + must "not(../peer-group)" { + error-message "You may not configure attribute-unchanged + for a neighbor in peer-group\n"; + } + } + refine remove-private-as { + must "not(../peer-group)" { + error-message "You may not configure remove-private-as + for a neighbor in peer-group\n"; + } + } + refine route-reflector-client { + must "not(../peer-group)" { + error-message "You may not configure route-reflector-client + for a neighbor in peer-group\n"; + } + } + refine disable-send-community { + must "not(../peer-group)" { + error-message "You may not configure disable-send-community + for a neighbor in peer-group\n"; + } + } + refine capability/orf { + must "not(../../peer-group)" { + error-message "You may not configure capability orf for a + neighbor in peer-group"; + } + } + refine default-originate { + must "not(../peer-group)" { + error-message "You may not configure default-originate + for a neighbor in peer-group\n"; + } + } + refine unsuppress-map { + must "not(../peer-group)" { + error-message "You may not configure unsuppress-map for + a neighbor in peer-group\n"; + } + } + refine nexthop-self { + must "not(../peer-group)" { + error-message "You may not configure nexthop-self for a + neighbor in peer-group\n"; + } + } + refine route-server-client { + must "not(../peer-group)" { + error-message "You may not configure route-server-client + for a neighbor in peer-group\n"; + } + } + } + uses neigh_peer_grp_ipv6_lists { + refine distribute-list { + must "not(../../../../peer-group[tagnode = current()/../peer-group]/ + address-family/ipv6-unicast/prefix-list)" { + error-message "You may not configure distribute-list + when prefix-list is set in peer-group"; + } + } + refine prefix-list { + must "not(../../../../peer-group[tagnode = current()/../peer-group]/ + address-family/ipv6-unicast/distribute-list)" { + error-message "You may not configure distribute-list when + distribute-list is set in peer-group"; + } + } + } + leaf peer-group { + description "IPv6 peer group for this peer"; + type leafref { + path "../../../../peer-group/tagnode"; + } + must "../../../../peer-group[tagnode=current()]/ + address-family/ipv6-unicast" { + error-message "Please set address-family + ipv6-unicast in peer-group"; + } + configd:help "IPv6 peer group for this peer"; + } + } + } } @@ -1626,10 +2042,41 @@ module vyatta-protocols-frr-bgp-v1 { uses parameters-distance; uses parameters-dampening; } + + container label { + description "label value for VRF"; + configd:help "label value for VRF"; + container vpn { + description "Between current address-family and vpn"; + configd:help "Between current address-family and vpn"; + leaf export { + description "For routes leaked from current address-family to vpn"; + configd:help "For routes leaked from current address-family to vpn"; + type union { + type uint32 { + range 0..1048575; + } + type enumeration { + enum "auto"; + configd:help "Automatically assign a label"; + } + } + } + } + } + uses ipv4-aggregate-address; uses network-ipv4; uses redistribute-ipv4; } + + container vpnv4-unicast { + description "BGP IPv4 VPN settings"; + presence "Enables BGP IPv4 VPN settings"; + configd:help "BGP IPv4 VPN settings"; + uses network-vpnv4-unicast; + } + container ipv6-unicast { description "Enable BGP IPv6 settings"; presence "Enables BGP IPv6 settings"; @@ -1641,10 +2088,39 @@ module vyatta-protocols-frr-bgp-v1 { uses parameters-distance; uses parameters-dampening; } + container label { + description "label value for VRF"; + configd:help "label value for VRF"; + container vpn { + description "Between current address-family and vpn"; + configd:help "Between current address-family and vpn"; + leaf export { + description "For routes leaked from current address-family to vpn"; + configd:help "For routes leaked from current address-family to vpn"; + type union { + type uint32 { + range 0..1048575; + } + type enumeration { + enum "auto"; + configd:help "Automatically assign a label"; + } + } + } + } + } + uses ipv6-aggregate-address; uses network-ipv6; uses redistribute-ipv6; } + container vpnv6-unicast { + description "BGP IPv6 VPN settings"; + presence "Enables BGP IPv6 VPN settings"; + configd:help "BGP IPv6 VPN settings"; + uses network-vpnv6-unicast; + } + } }