├── models
├── bgp
│ ├── filters
│ │ ├── filter-bgp.xml
│ │ ├── filter-bgp.json
│ │ ├── filter-bgp-global.xml
│ │ ├── filter-bgp-neighbors.xml
│ │ ├── filter-bgp-peer-groups.xml
│ │ ├── filter-bgp-global.json
│ │ ├── filter-bgp-neighbors.json
│ │ └── filter-bgp-peer-groups.json
│ ├── netconf
│ │ ├── nc-get-filter-bgp.xml
│ │ ├── nc-get-filter-bgp-global.xml
│ │ ├── nc-get-filter-bgp-neighbors.xml
│ │ ├── nc-get-filter-bgp-peer-groups.xml
│ │ ├── nc-get-config-filter-bgp.xml
│ │ ├── nc-get-config-filter-bgp-global.xml
│ │ ├── nc-get-config-filter-bgp-neighbors.xml
│ │ ├── nc-get-config-filter-bgp-peer-groups.xml
│ │ ├── nc-edit-config-basic-ebgp-bgp.xml
│ │ └── nc-edit-config-basic-ibgp-bgp.xml
│ ├── config
│ │ ├── config-basic-ibgp-bgp.txt
│ │ ├── config-basic-ebgp-bgp.txt
│ │ ├── config-basic-ebgp-bgp.json
│ │ ├── config-basic-ibgp-bgp.json
│ │ ├── config-basic-ebgp-bgp.xml
│ │ └── config-basic-ibgp-bgp.xml
│ ├── oper
│ │ ├── oper-basic-ibgp-bgp.json
│ │ └── oper-config-basic-ibgp-bgp.xml
│ ├── README.md
│ └── tree
│ │ └── bgp-2015-05-15-cisco-xr-devs-tree.txt
└── policy
│ ├── filters
│ ├── filter-routing-policy.xml
│ ├── filter-routing-policy.json
│ ├── filter-routing-policy-defined-sets.xml
│ ├── filter-routing-policy-policy-definitions.xml
│ ├── filter-routing-policy-defined-sets.json
│ └── filter-routing-policy-policy-definitions.json
│ ├── config
│ ├── config-routing-policy-policy1.txt
│ ├── config-routing-policy-policy4.txt
│ ├── config-routing-policy-policy3.txt
│ ├── config-routing-policy-policy1.json
│ ├── config-routing-policy-policy1.xml
│ ├── config-routing-policy-policy4.json
│ ├── config-routing-policy-policy2.txt
│ ├── config-routing-policy-policy4.xml
│ ├── config-routing-policy-policy3.json
│ ├── config-routing-policy-policy2.json
│ ├── config-routing-policy-policy3.xml
│ └── config-routing-policy-policy2.xml
│ ├── netconf
│ ├── nc-get-config-filter-routing-policy.xml
│ ├── nc-get-config-filter-routing-policy-defined-sets.xml
│ ├── nc-get-config-filter-routing-policy-policy-definitions.xml
│ ├── nc-edit-config-routing-policy-policy1.xml
│ ├── nc-edit-config-routing-policy-policy4.xml
│ ├── nc-edit-config-routing-policy-policy3.xml
│ └── nc-edit-config-routing-policy-policy2.xml
│ ├── tree
│ └── routing-policy-2015-05-15-cisco-xr-devs-tree.txt
│ └── README.md
├── LICENSE
└── README.md
/models/bgp/filters/filter-bgp.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/models/bgp/filters/filter-bgp.json:
--------------------------------------------------------------------------------
1 | {
2 | "bgp:bgp": [
3 | null
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/models/bgp/filters/filter-bgp-global.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/models/bgp/filters/filter-bgp-neighbors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/models/policy/filters/filter-routing-policy.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/models/bgp/filters/filter-bgp-peer-groups.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/models/policy/filters/filter-routing-policy.json:
--------------------------------------------------------------------------------
1 | {
2 | "routing-policy:routing-policy": [
3 | null
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/models/bgp/filters/filter-bgp-global.json:
--------------------------------------------------------------------------------
1 | {
2 | "bgp:bgp": {
3 | "global": [
4 | null
5 | ]
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/models/policy/config/config-routing-policy-policy1.txt:
--------------------------------------------------------------------------------
1 | route-policy POLICY1
2 | #statement-name accept route
3 | done
4 | end-policy
5 | !
6 |
--------------------------------------------------------------------------------
/models/bgp/filters/filter-bgp-neighbors.json:
--------------------------------------------------------------------------------
1 | {
2 | "bgp:bgp": {
3 | "neighbors": [
4 | null
5 | ]
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/models/bgp/filters/filter-bgp-peer-groups.json:
--------------------------------------------------------------------------------
1 | {
2 | "bgp:bgp": {
3 | "peer-groups": [
4 | null
5 | ]
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/models/policy/config/config-routing-policy-policy4.txt:
--------------------------------------------------------------------------------
1 | route-policy POLICY4
2 | #statement-name next-hop-self
3 | set next-hop self
4 | done
5 | end-policy
6 | !
7 |
--------------------------------------------------------------------------------
/models/policy/filters/filter-routing-policy-defined-sets.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/models/policy/filters/filter-routing-policy-policy-definitions.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/models/policy/filters/filter-routing-policy-defined-sets.json:
--------------------------------------------------------------------------------
1 | {
2 | "routing-policy:routing-policy": {
3 | "defined-sets": [
4 | null
5 | ]
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/models/policy/filters/filter-routing-policy-policy-definitions.json:
--------------------------------------------------------------------------------
1 | {
2 | "routing-policy:routing-policy": {
3 | "policy-definitions": [
4 | null
5 | ]
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/models/bgp/netconf/nc-get-filter-bgp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/models/bgp/netconf/nc-get-filter-bgp-global.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/models/bgp/config/config-basic-ibgp-bgp.txt:
--------------------------------------------------------------------------------
1 | router bgp 65001
2 | address-family ipv4 unicast
3 | !
4 | neighbor-group IBGP
5 | remote-as 65001
6 | update-source Loopback0
7 | address-family ipv4 unicast
8 | route-policy POLICY2 out
9 | !
10 | !
11 | neighbor 172.16.255.3
12 | use neighbor-group IBGP
13 | !
14 | !
15 |
--------------------------------------------------------------------------------
/models/bgp/config/config-basic-ebgp-bgp.txt:
--------------------------------------------------------------------------------
1 | router bgp 65001
2 | address-family ipv4 unicast
3 | !
4 | neighbor-group EBGP
5 | remote-as 65002
6 | address-family ipv4 unicast
7 | route-policy POLICY3 in
8 | route-policy POLICY1 out
9 | !
10 | !
11 | neighbor 192.168.1.1
12 | use neighbor-group EBGP
13 | !
14 | !
15 |
16 |
--------------------------------------------------------------------------------
/models/bgp/netconf/nc-get-filter-bgp-neighbors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/models/bgp/netconf/nc-get-filter-bgp-peer-groups.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/models/bgp/netconf/nc-get-config-filter-bgp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/models/policy/netconf/nc-get-config-filter-routing-policy.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/models/bgp/netconf/nc-get-config-filter-bgp-global.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/models/bgp/netconf/nc-get-config-filter-bgp-neighbors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/models/bgp/netconf/nc-get-config-filter-bgp-peer-groups.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/models/policy/netconf/nc-get-config-filter-routing-policy-defined-sets.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/models/policy/netconf/nc-get-config-filter-routing-policy-policy-definitions.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/models/policy/config/config-routing-policy-policy3.txt:
--------------------------------------------------------------------------------
1 | prefix-set PREFIX-SET1
2 | 10.0.0.0/16 ge 24 le 32,
3 | 172.0.0.0/8 ge 16 le 32
4 | end-set
5 | !
6 | community-set COMMUNITY-SET2
7 | 65172:17001
8 | end-set
9 | !
10 | route-policy POLICY3
11 | #statement-name prefix-set1
12 | if destination in PREFIX-SET1 then
13 | set local-preference 1000
14 | set community COMMUNITY-SET2
15 | done
16 | endif
17 | #statement-name reject
18 | drop
19 | end-policy
20 | !
21 |
22 |
--------------------------------------------------------------------------------
/models/policy/config/config-routing-policy-policy1.json:
--------------------------------------------------------------------------------
1 | {
2 | "routing-policy:routing-policy": {
3 | "policy-definitions": {
4 | "policy-definition": [
5 | {
6 | "name": "POLICY1",
7 | "statements": {
8 | "statement": [
9 | {
10 | "name": "accept route",
11 | "actions": {
12 | "accept-route": [
13 | null
14 | ]
15 | }
16 | }
17 | ]
18 | }
19 | }
20 | ]
21 | }
22 | }
23 | }
24 |
25 |
--------------------------------------------------------------------------------
/models/policy/config/config-routing-policy-policy1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | POLICY1
6 |
7 |
8 | accept
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/models/policy/config/config-routing-policy-policy4.json:
--------------------------------------------------------------------------------
1 | {
2 | "routing-policy:routing-policy": {
3 | "policy-definitions": {
4 | "policy-definition": [
5 | {
6 | "name": "POLICY4",
7 | "statements": {
8 | "statement": [
9 | {
10 | "name": "next-hop-self",
11 | "actions": {
12 | "bgp-policy:bgp-actions": {
13 | "set-next-hop": "SELF"
14 | },
15 | "accept-route": [
16 | null
17 | ]
18 | }
19 | }
20 | ]
21 | }
22 | }
23 | ]
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/models/policy/config/config-routing-policy-policy2.txt:
--------------------------------------------------------------------------------
1 | as-path-set AS-PATH-SET1
2 | ios-regex '^65172'
3 | end-set
4 | !
5 | community-set COMMUNITY-SET1
6 | ios-regex '^65172:17...$',
7 | 65172:16001
8 | end-set
9 | !
10 | route-policy POLICY2
11 | #statement-name community-set1
12 | if community matches-every COMMUNITY-SET1 then
13 | done
14 | endif
15 | #statement-name as-path-set1
16 | if as-path in AS-PATH-SET1 then
17 | set local-preference 50
18 | done
19 | endif
20 | #statement-name reject route
21 | drop
22 | end-policy
23 | !
24 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright 2016 cisco Systems Inc.
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 |
--------------------------------------------------------------------------------
/models/policy/config/config-routing-policy-policy4.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | POLICY4
6 |
7 |
8 | next-hop-self
9 |
10 |
11 | SELF
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Getting Started With OpenConfig in Cisco IOS XR
2 | This repository includes guides to get started with [OpenConfig](http://www.openconfig.net/) models on Cisco IOS XR devices. OpenConfig is a group of network operators that are developing common data models for network configuration and management in cooperation with vendors. Cisco IOS XR started introducing support for OpenConfig models in release 5.3.2. Each model directory in this repository includes a guide to get started using the model, along with configuration and operational examples. You can use NETCONF or [gRPC](http://www.grpc.io/) to use OpenConfig models with a Cisco IOS XR device.
3 |
4 | ## Additional Resources
5 | * [Getting started with gRPC in Cisco IOS XR](https://github.com/CiscoDevNet/grpc-getting-started)
6 | * [Cisco supported YANG models](https://github.com/YangModels/yang/tree/master/vendor/cisco)
7 |
--------------------------------------------------------------------------------
/models/policy/netconf/nc-edit-config-routing-policy-policy1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | rollback-on-error
8 |
9 |
10 |
11 |
12 | POLICY1
13 |
14 |
15 | accept
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/models/policy/netconf/nc-edit-config-routing-policy-policy4.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | rollback-on-error
8 |
9 |
10 |
11 |
12 | POLICY4
13 |
14 |
15 | next-hop-self
16 |
17 |
18 | SELF
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/models/bgp/config/config-basic-ebgp-bgp.json:
--------------------------------------------------------------------------------
1 | {
2 | "bgp:bgp": {
3 | "global": {
4 | "config": {
5 | "as": 65001
6 | },
7 | "afi-safis": {
8 | "afi-safi": [
9 | {
10 | "afi-safi-name": "ipv4-unicast",
11 | "config": {
12 | "afi-safi-name": "ipv4-unicast",
13 | "enabled": true
14 | }
15 | }
16 | ]
17 | }
18 | },
19 | "peer-groups": {
20 | "peer-group": [
21 | {
22 | "peer-group-name": "EBGP",
23 | "config": {
24 | "peer-group-name": "EBGP",
25 | "peer-as": 65002
26 | },
27 | "afi-safis": {
28 | "afi-safi": [
29 | {
30 | "afi-safi-name": "ipv4-unicast",
31 | "config": {
32 | "afi-safi-name": "ipv4-unicast",
33 | "enabled": true
34 | },
35 | "apply-policy": {
36 | "config": {
37 | "import-policy": [
38 | "POLICY3"
39 | ],
40 | "export-policy": [
41 | "POLICY1"
42 | ]
43 | }
44 | }
45 | }
46 | ]
47 | }
48 | }
49 | ]
50 | },
51 | "neighbors": {
52 | "neighbor": [
53 | {
54 | "neighbor-address": "192.168.1.1",
55 | "config": {
56 | "neighbor-address": "192.168.1.1",
57 | "peer-group": "EBGP"
58 | }
59 | }
60 | ]
61 | }
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/models/bgp/config/config-basic-ibgp-bgp.json:
--------------------------------------------------------------------------------
1 | {
2 | "bgp:bgp": {
3 | "global": {
4 | "config": {
5 | "as": 65001
6 | },
7 | "afi-safis": {
8 | "afi-safi": [
9 | {
10 | "afi-safi-name": "ipv4-unicast",
11 | "config": {
12 | "afi-safi-name": "ipv4-unicast",
13 | "enabled": true
14 | }
15 | }
16 | ]
17 | }
18 | },
19 | "peer-groups": {
20 | "peer-group": [
21 | {
22 | "peer-group-name": "IBGP",
23 | "config": {
24 | "peer-group-name": "IBGP",
25 | "peer-as": 65001
26 | },
27 | "transport": {
28 | "config": {
29 | "local-address": "Loopback0"
30 | }
31 | },
32 | "afi-safis": {
33 | "afi-safi": [
34 | {
35 | "afi-safi-name": "ipv4-unicast",
36 | "config": {
37 | "afi-safi-name": "ipv4-unicast",
38 | "enabled": true
39 | },
40 | "apply-policy": {
41 | "config": {
42 | "export-policy": [
43 | "POLICY2"
44 | ]
45 | }
46 | }
47 | }
48 | ]
49 | }
50 | }
51 | ]
52 | },
53 | "neighbors": {
54 | "neighbor": [
55 | {
56 | "neighbor-address": "172.16.255.3",
57 | "config": {
58 | "neighbor-address": "172.16.255.3",
59 | "peer-group": "IBGP"
60 | }
61 | }
62 | ]
63 | }
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/models/bgp/config/config-basic-ebgp-bgp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 65001
6 |
7 |
8 |
9 | ipv4-unicast
10 |
11 | ipv4-unicast
12 | true
13 |
14 |
15 |
16 |
17 |
18 |
19 | EBGP
20 |
21 | EBGP
22 | 65002
23 |
24 |
25 |
26 | ipv4-unicast
27 |
28 | ipv4-unicast
29 | true
30 |
31 |
32 |
33 | POLICY3
34 | POLICY1
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 | 192.168.1.1
44 |
45 | 192.168.1.1
46 | EBGP
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/models/bgp/config/config-basic-ibgp-bgp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 65001
6 |
7 |
8 |
9 | ipv4-unicast
10 |
11 | ipv4-unicast
12 | true
13 |
14 |
15 |
16 |
17 |
18 |
19 | IBGP
20 |
21 | IBGP
22 | 65001
23 |
24 |
25 |
26 | Loopback0
27 |
28 |
29 |
30 |
31 | ipv4-unicast
32 |
33 | ipv4-unicast
34 | true
35 |
36 |
37 |
38 | POLICY2
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 | 172.16.255.3
48 |
49 | 172.16.255.3
50 | IBGP
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/models/policy/config/config-routing-policy-policy3.json:
--------------------------------------------------------------------------------
1 | {
2 | "routing-policy:routing-policy": {
3 | "defined-sets": {
4 | "prefix-sets": {
5 | "prefix-set": [
6 | {
7 | "prefix-set-name": "PREFIX-SET1",
8 | "prefix": [
9 | {
10 | "ip-prefix": "10.0.0.0/16",
11 | "masklength-range": "24..32"
12 | },
13 | {
14 | "ip-prefix": "172.0.0.0/8",
15 | "masklength-range": "16..32"
16 | }
17 | ]
18 | }
19 | ]
20 | },
21 | "bgp-policy:bgp-defined-sets": {
22 | "community-sets": {
23 | "community-set": [
24 | {
25 | "community-set-name": "COMMUNITY-SET2",
26 | "community-member": [
27 | "65172:17001"
28 | ]
29 | }
30 | ]
31 | }
32 | }
33 | },
34 | "policy-definitions": {
35 | "policy-definition": [
36 | {
37 | "name": "POLICY3",
38 | "statements": {
39 | "statement": [
40 | {
41 | "name": "prefix-set1",
42 | "conditions": {
43 | "match-prefix-set": {
44 | "prefix-set": "PREFIX-SET1",
45 | "match-set-options": "ANY"
46 | }
47 | },
48 | "actions": {
49 | "bgp-policy:bgp-actions": {
50 | "set-local-pref": 1000,
51 | "set-community": {
52 | "community-set-ref": "COMMUNITY-SET2"
53 | }
54 | },
55 | "accept-route": [
56 | null
57 | ]
58 | }
59 | },
60 | {
61 | "name": "reject",
62 | "actions": {
63 | "reject-route": [
64 | null
65 | ]
66 | }
67 | }
68 | ]
69 | }
70 | }
71 | ]
72 | }
73 | }
74 | }
75 |
76 |
--------------------------------------------------------------------------------
/models/policy/config/config-routing-policy-policy2.json:
--------------------------------------------------------------------------------
1 | {
2 | "routing-policy:routing-policy": {
3 | "defined-sets": {
4 | "bgp-policy:bgp-defined-sets": {
5 | "as-path-sets": {
6 | "as-path-set": [
7 | {
8 | "as-path-set-name": "AS-PATH-SET1",
9 | "as-path-set-member": [
10 | "^65172"
11 | ]
12 | }
13 | ]
14 | },
15 | "community-sets": {
16 | "community-set": [
17 | {
18 | "community-set-name": "COMMUNITY-SET1",
19 | "community-member": [
20 | "ios-regex '^65172:17...$'",
21 | "65172:16001"
22 | ]
23 | }
24 | ]
25 | }
26 | }
27 | },
28 | "policy-definitions": {
29 | "policy-definition": [
30 | {
31 | "name": "POLICY2",
32 | "statements": {
33 | "statement": [
34 | {
35 | "name": "community-set1",
36 | "conditions": {
37 | "bgp-policy:bgp-conditions": {
38 | "match-community-set": {
39 | "community-set": "COMMUNITY-SET1",
40 | "match-set-options": "ALL"
41 | }
42 | }
43 | },
44 | "actions": {
45 | "accept-route": [
46 | null
47 | ]
48 | }
49 | },
50 | {
51 | "name": "as-path-set1",
52 | "conditions": {
53 | "bgp-policy:bgp-conditions": {
54 | "match-as-path-set": {
55 | "as-path-set": "AS-PATH-SET1",
56 | "match-set-options": "ANY"
57 | }
58 | }
59 | },
60 | "actions": {
61 | "bgp-policy:bgp-actions": {
62 | "set-local-pref": 50
63 | },
64 | "accept-route": [
65 | null
66 | ]
67 | }
68 | },
69 | {
70 | "name": "reject route",
71 | "actions": {
72 | "reject-route": [
73 | null
74 | ]
75 | }
76 | }
77 | ]
78 | }
79 | }
80 | ]
81 | }
82 | }
83 | }
84 |
--------------------------------------------------------------------------------
/models/policy/config/config-routing-policy-policy3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | PREFIX-SET1
7 |
8 | 10.0.0.0/16
9 | 24..32
10 |
11 |
12 | 172.0.0.0/8
13 | 16..32
14 |
15 |
16 |
17 |
18 |
19 |
20 | COMMUNITY-SET2
21 | 65172:17001
22 |
23 |
24 |
25 |
26 |
27 |
28 | POLICY3
29 |
30 |
31 | prefix-set1
32 |
33 |
34 | PREFIX-SET1
35 | ANY
36 |
37 |
38 |
39 |
40 | 1000
41 |
42 | COMMUNITY-SET2
43 |
44 |
45 |
46 |
47 |
48 |
49 | reject
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/models/bgp/netconf/nc-edit-config-basic-ebgp-bgp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | rollback-on-error
8 |
9 |
10 |
11 |
12 | 65001
13 |
14 |
15 |
16 | ipv4-unicast
17 |
18 | ipv4-unicast
19 | true
20 |
21 |
22 |
23 |
24 |
25 |
26 | EBGP
27 |
28 | EBGP
29 | 65002
30 |
31 |
32 |
33 | ipv4-unicast
34 |
35 | ipv4-unicast
36 | true
37 |
38 |
39 |
40 | POLICY3
41 | POLICY1
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | 192.168.1.1
51 |
52 | 192.168.1.1
53 | EBGP
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/models/bgp/netconf/nc-edit-config-basic-ibgp-bgp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | rollback-on-error
8 |
9 |
10 |
11 |
12 | 65001
13 |
14 |
15 |
16 | ipv4-unicast
17 |
18 | ipv4-unicast
19 | true
20 |
21 |
22 |
23 |
24 |
25 |
26 | IBGP
27 |
28 | IBGP
29 | 65001
30 |
31 |
32 |
33 | Loopback0
34 |
35 |
36 |
37 |
38 | ipv4-unicast
39 |
40 | ipv4-unicast
41 | true
42 |
43 |
44 |
45 | POLICY2
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 | 172.16.255.3
55 |
56 | 172.16.255.3
57 | IBGP
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/models/policy/config/config-routing-policy-policy2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | AS-PATH-SET1
8 | ^65172
9 |
10 |
11 |
12 |
13 | COMMUNITY-SET1
14 | ios-regex '^65172:17...$'
15 | 65172:16001
16 |
17 |
18 |
19 |
20 |
21 |
22 | POLICY2
23 |
24 |
25 | community-set1
26 |
27 |
28 |
29 | COMMUNITY-SET1
30 | ALL
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 | as-path-set1
40 |
41 |
42 |
43 | AS-PATH-SET1
44 | ANY
45 |
46 |
47 |
48 |
49 |
50 | 50
51 |
52 |
53 |
54 |
55 |
56 | reject
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/models/policy/netconf/nc-edit-config-routing-policy-policy3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | rollback-on-error
8 |
9 |
10 |
11 |
12 |
13 | PREFIX-SET1
14 |
15 | 10.0.0.0/16
16 | 24..32
17 |
18 |
19 | 10.1.0.0/19
20 | 30..32
21 |
22 |
23 |
24 |
25 |
26 |
27 | COMMUNITY-SET2
28 | 65172:17001
29 |
30 |
31 |
32 |
33 |
34 |
35 | POLICY3
36 |
37 |
38 | prefix-set1
39 |
40 |
41 | PREFIX-SET1
42 | ANY
43 |
44 |
45 |
46 |
47 | 1000
48 |
49 | COMMUNITY-SET2
50 |
51 |
52 |
53 |
54 |
55 |
56 | reject
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
--------------------------------------------------------------------------------
/models/bgp/oper/oper-basic-ibgp-bgp.json:
--------------------------------------------------------------------------------
1 | {
2 | "bgp:bgp": {
3 | "global": {
4 | "state": {
5 | "as": 65001,
6 | "total-paths": 2,
7 | "total-prefixes": 2
8 | },
9 | "afi-safis": {
10 | "afi-safi": [
11 | {
12 | "afi-safi-name": "ipv4-unicast",
13 | "state": {
14 | "afi-safi-name": "ipv4-unicast",
15 | "enabled": true,
16 | "total-paths": 2,
17 | "total-prefixes": 2
18 | }
19 | }
20 | ]
21 | }
22 | },
23 | "peer-groups": {
24 | "peer-group": [
25 | {
26 | "peer-group-name": "IBGP",
27 | "state": {
28 | "peer-group-name": "IBGP",
29 | "peer-as": 65001
30 | },
31 | "transport": {
32 | "state": {
33 | "local-address": "Loopback0"
34 | }
35 | },
36 | "afi-safis": {
37 | "afi-safi": [
38 | {
39 | "afi-safi-name": "ipv4-unicast",
40 | "state": {
41 | "afi-safi-name": "ipv4-unicast",
42 | "enabled": true
43 | },
44 | "apply-policy": {
45 | "state": {
46 | "export-policy": [
47 | "POLICY2"
48 | ]
49 | }
50 | }
51 | }
52 | ]
53 | }
54 | }
55 | ]
56 | },
57 | "neighbors": {
58 | "neighbor": [
59 | {
60 | "neighbor-address": "172.16.255.3",
61 | "state": {
62 | "neighbor-address": "172.16.255.3",
63 | "peer-group": "IBGP",
64 | "queues": {
65 | "input": 0,
66 | "output": 0
67 | },
68 | "session-state": "bgp-st-estab",
69 | "supported-capabilities": [
70 | "MPBGP"
71 | ],
72 | "messages": {
73 | "sent": {
74 | "NOTIFICATION": 0,
75 | "UPDATE": 1
76 | },
77 | "received": {
78 | "NOTIFICATION": 0,
79 | "UPDATE": 3
80 | }
81 | }
82 | },
83 | "transport": {
84 | "state": {
85 | "local-port": 21344,
86 | "remote-address": "172.16.255.3",
87 | "remote-port": 179
88 | }
89 | },
90 | "timers": {
91 | "state": {
92 | "negotiated-hold-time": 180
93 | }
94 | },
95 | "afi-safis": {
96 | "afi-safi": [
97 | {
98 | "afi-safi-name": "ipv4-unicast",
99 | "state": {
100 | "active": true,
101 | "prefixes": {
102 | "received": 2,
103 | "sent": 0
104 | }
105 | }
106 | }
107 | ]
108 | },
109 | "graceful-restart": {
110 | "state": {
111 | "peer-restart-time": 120
112 | }
113 | }
114 | }
115 | ]
116 | }
117 | }
118 | }
119 |
--------------------------------------------------------------------------------
/models/policy/netconf/nc-edit-config-routing-policy-policy2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | rollback-on-error
8 |
9 |
10 |
11 |
12 |
13 |
14 | AS-PATH-SET1
15 | ^65172
16 |
17 |
18 |
19 |
20 | COMMUNITY-SET1
21 | ios-regex '^65172:17...$'
22 | 65172:16001
23 |
24 |
25 |
26 |
27 |
28 |
29 | POLICY2
30 |
31 |
32 | community-set1
33 |
34 |
35 |
36 | COMMUNITY-SET1
37 | ALL
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 | as-path-set1
47 |
48 |
49 |
50 | AS-PATH-SET1
51 | ANY
52 |
53 |
54 |
55 |
56 |
57 | 50
58 |
59 |
60 |
61 |
62 |
63 | reject
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
--------------------------------------------------------------------------------
/models/bgp/oper/oper-config-basic-ibgp-bgp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 65001
6 |
7 |
8 | 65001
9 | 2
10 | 2
11 |
12 |
13 |
14 | ipv4-unicast
15 |
16 | ipv4-unicast
17 | true
18 |
19 |
20 | ipv4-unicast
21 | true
22 | 2
23 | 2
24 |
25 |
26 |
27 |
28 |
29 |
30 | IBGP
31 |
32 | IBGP
33 | 65001
34 |
35 |
36 | IBGP
37 | 65001
38 |
39 |
40 |
41 | Loopback0
42 |
43 |
44 | Loopback0
45 |
46 |
47 |
48 |
49 | ipv4-unicast
50 |
51 | ipv4-unicast
52 | true
53 |
54 |
55 | ipv4-unicast
56 | true
57 |
58 |
59 |
60 | POLICY2
61 |
62 |
63 | POLICY2
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 | 172.16.255.3
73 |
74 | 172.16.255.3
75 | IBGP
76 |
77 |
78 | 172.16.255.3
79 | IBGP
80 |
81 | 0
82 |
83 |
84 | bgp-st-estab
85 | MPBGP
86 |
87 |
88 | 0
89 | 1
90 |
91 |
92 | 0
93 | 3
94 |
95 |
96 |
97 |
98 |
99 | 21344
100 | 172.16.255.3
101 | 179
102 |
103 |
104 |
105 |
106 | 180
107 |
108 |
109 |
110 |
111 | ipv4-unicast
112 |
113 | true
114 |
115 | 2
116 | 0
117 |
118 |
119 |
120 |
121 |
122 |
123 | 120
124 |
125 |
126 |
127 |
128 |
129 |
--------------------------------------------------------------------------------
/models/policy/tree/routing-policy-2015-05-15-cisco-xr-devs-tree.txt:
--------------------------------------------------------------------------------
1 | module: routing-policy
2 | +--rw routing-policy
3 | +--rw defined-sets
4 | | +--rw prefix-sets
5 | | | +--rw prefix-set* [prefix-set-name]
6 | | | +--rw prefix-set-name string
7 | | | +--rw prefix* [ip-prefix masklength-range]
8 | | | +--rw ip-prefix inet:ip-prefix
9 | | | +--rw masklength-range string
10 | | +--rw tag-sets
11 | | | +--rw tag-set* [tag-set-name]
12 | | | +--rw tag-set-name string
13 | | | +--rw tag* [value]
14 | | | +--rw value pt:tag-type
15 | | +--rw bgp-pol:bgp-defined-sets
16 | | +--rw bgp-pol:community-sets
17 | | | +--rw bgp-pol:community-set* [community-set-name]
18 | | | +--rw bgp-pol:community-set-name string
19 | | | +--rw bgp-pol:community-member* union
20 | | +--rw bgp-pol:ext-community-sets
21 | | +--rw bgp-pol:as-path-sets
22 | | +--rw bgp-pol:as-path-set* [as-path-set-name]
23 | | +--rw bgp-pol:as-path-set-name string
24 | | +--rw bgp-pol:as-path-set-member* string
25 | +--rw policy-definitions
26 | +--rw policy-definition* [name]
27 | +--rw name string
28 | +--rw statements
29 | +--rw statement* [name]
30 | +--rw name string
31 | +--rw conditions
32 | | +--rw call-policy? -> /routing-policy/policy-definitions/policy-definition/name
33 | | +--rw match-prefix-set!
34 | | | +--rw prefix-set? -> /routing-policy/defined-sets/prefix-sets/prefix-set/prefix-set-name
35 | | | +--rw match-set-options? pt:match-set-options-restricted-type
36 | | +--rw match-tag-set!
37 | | | +--rw tag-set? -> /routing-policy/defined-sets/tag-sets/tag-set/tag-set-name
38 | | | +--rw match-set-options? pt:match-set-options-restricted-type
39 | | +--rw install-protocol-eq? identityref
40 | | +--rw bgp-pol:bgp-conditions
41 | | +--rw bgp-pol:match-community-set!
42 | | | +--rw bgp-pol:community-set? -> /rpol:routing-policy/defined-sets/bgp-pol:bgp-defined-sets/community-sets/community-set/community-set-name
43 | | | +--rw bgp-pol:match-set-options? pt:match-set-options-type
44 | | +--rw bgp-pol:match-as-path-set!
45 | | | +--rw bgp-pol:as-path-set? -> /rpol:routing-policy/defined-sets/bgp-pol:bgp-defined-sets/as-path-sets/as-path-set/as-path-set-name
46 | | | +--rw bgp-pol:match-set-options? pt:match-set-options-type
47 | | +--rw bgp-pol:med-eq? uint32
48 | | +--rw bgp-pol:origin-eq? bgp-types:bgp-origin-attr-type
49 | | +--rw bgp-pol:next-hop-in* inet:ip-address
50 | | +--rw bgp-pol:local-pref-eq? uint32
51 | | +--rw bgp-pol:as-path-length!
52 | | +--rw bgp-pol:operator? identityref
53 | | +--rw bgp-pol:value? uint32
54 | +--rw actions
55 | +--rw (route-disposition)?
56 | | +--:(accept-route)
57 | | | +--rw accept-route? empty
58 | | +--:(reject-route)
59 | | +--rw reject-route? empty
60 | +--rw bgp-pol:bgp-actions
61 | +--rw bgp-pol:set-as-path-prepend!
62 | | +--rw bgp-pol:repeat-n? uint8
63 | +--rw bgp-pol:set-community!
64 | | +--rw (set-community-method)?
65 | | | +--:(inline)
66 | | | | +--rw bgp-pol:communities* union
67 | | | +--:(reference)
68 | | | +--rw bgp-pol:community-set-ref? -> /rpol:routing-policy/defined-sets/bgp-pol:bgp-defined-sets/community-sets/community-set/community-set-name
69 | | +--rw bgp-pol:options? bgp-set-community-option-type
70 | +--rw bgp-pol:set-route-origin? bgp-types:bgp-origin-attr-type
71 | +--rw bgp-pol:set-local-pref? uint32
72 | +--rw bgp-pol:set-next-hop? bgp-next-hop-type
73 | +--rw bgp-pol:set-med? bgp-set-med-type
74 |
--------------------------------------------------------------------------------
/models/policy/README.md:
--------------------------------------------------------------------------------
1 | # Getting Started With OpenConfig Routing Policy in Cisco IOS XR
2 | The OpenConfig routing policy (OC-RPOL) model is an alternative to configure and operate routing policy in recent Cisco IOS XR releases. This model provides coverage for a subset of the routing policy functionality in Cisco IOS XR. Configuration outside its scope can be implemented using the native XR models or using the CLI. Similarly, some portions of the OC-RPOL model are not supported in Cisco IOS XR. Those gaps are documented as model deviations. The model is closely related to the OpenConfig BGP (OC-BGP) model which can be used to manage the BGP protocol on Cisco IOS XR. While the OC-RPOL and the OC-BGP models are expected to be used simultaneously in most cases, it is possible to configure routing policies and BGP using different models (OpenConfig or native models).
3 |
4 | ## Files Accompanying This Document
5 | ```
6 | config/ - Configuration examples (JSON and XML)
7 | oper/ - Examples of operational data (JSON and XML)
8 | filters/ - Examples of model filters
9 | netconf/ - Examples of NETCONF RPCs using this model
10 | tree/ - Tree representation of the model after deviations
11 | ```
12 |
13 | ## Model Support
14 | Initial support for the OC-RPOL model was introduced in release 5.3.2. The examples in this document use the extended model support introduced in release 6.0.0 which is based on model revision 2015-05-15. These are the modules supported:
15 | ```
16 | policy-types.yang
17 | routing-policy.yang
18 | ```
19 | The portions of the OC-RPOL model that are not supported are documented in the following deviations:
20 | ```
21 | cisco-xr-routing-policy-deviations.yang
22 | ```
23 | The entire list of models supported in IOS XR is available in the [GitHub repository](https://github.com/YangModels/yang/tree/master/vendor/cisco). The model files can also be retrieved from a Cisco IOS XR device using the NETCONF get-schema operation.
24 |
25 | The tree representations of the OC-RPOL models after applying the Cisco IOS XR deviations can be found at:
26 | ```
27 | tree/routing-policy-2015-05-15-cisco-xr-devs-tree.txt
28 | ```
29 |
30 | ## Data Examples in this Guide
31 | All examples in this guide are presented in JSON and XML format. As of release 6.0.0, YANG models can be exercised using NETCONF and gRPC. You can use JSON examples with a gRPC client and the XML examples with a NETCONF client. The configuration examples in this guide are applied in the [OC-BGP guide](../bgp).
32 |
33 | ---
34 | ## Filtering OC-RPOL Data
35 | You can specify filters when retrieving configuration and operational data. An empty filter may be used when retrieving configuration. It results on data for all device models (Openconfig and non-OpenConfig) being retrieved. An empty filter is rejected when retrieving operational data.
36 |
37 | The OC-RPOL model has two top-level components: `defined-sets` and `policy-definitions`. The most general filter you can define includes the entire data tree for the model (both set and policy definitions):
38 |
39 | XML
40 | ```xml
41 |
42 | ```
43 | JSON
44 | ```json
45 | {
46 | "routing-policy:routing-policy": [
47 | null
48 | ]
49 | }
50 | ```
51 | The following filter retrieves all OC-RPOL data for `defined-sets`:
52 |
53 | XML
54 | ```xml
55 |
56 |
57 |
58 | ```
59 | JSON
60 | ```json
61 | {
62 | "routing-policy:routing-policy": {
63 | "defined-sets": [
64 | null
65 | ]
66 | }
67 | }
68 | ```
69 | Similarly, the following model path retrieves all OC-RPOL data for `policy-definitions`:
70 |
71 | XML
72 | ```xml
73 |
74 |
75 |
76 | ```
77 | JSON
78 | ```json
79 | {
80 | "routing-policy:routing-policy": {
81 | "policy-definitions": [
82 | null
83 | ]
84 | }
85 | }
86 | ```
87 |
88 | ---
89 | ## Getting Started with OC-RPOL Configuration
90 | The OC-RPOL model specifies set and policy definitions. Set definitions may include prefix, neighbor, tag or AS-path sets. Policy definitions specify a list of policies where each policy contains a list of statement with optional conditions and a mandatory action. The following configuration example defines a routing policy that accepts all prefixes:
91 |
92 | XML
93 | ```xml
94 |
95 |
96 |
97 |
98 | POLICY1
99 |
100 |
101 | accept
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 | ```
111 | JSON
112 | ```json
113 | {
114 | "routing-policy:routing-policy": {
115 | "policy-definitions": {
116 | "policy-definition": [
117 | {
118 | "name": "POLICY1",
119 | "statements": {
120 | "statement": [
121 | {
122 | "name": "accept route",
123 | "actions": {
124 | "accept-route": [
125 | null
126 | ]
127 | }
128 | }
129 | ]
130 | }
131 | }
132 | ]
133 | }
134 | }
135 | }
136 | ```
137 | The OC-RPOL configuration above results in the following CLI configuration:
138 | ```
139 | route-policy POLICY1
140 | #statement-name accept route
141 | done
142 | end-policy
143 | !
144 | ```
145 | The following configuration example defines an AS-path set, a community set and a policy. The latter accepts the prefixes matching the community set or the AS-path set. All other prefixes are dropped. The prefixes matching the AS-path also have their BGP local preference set to a value of 50:
146 |
147 | XML
148 | ```xml
149 |
150 |
151 |
152 |
153 |
154 |
155 | AS-PATH-SET1
156 | ^65172
157 |
158 |
159 |
160 |
161 | COMMUNITY-SET1
162 | ios-regex '^65172:17...$'
163 | 65172:16001
164 |
165 |
166 |
167 |
168 |
169 |
170 | POLICY2
171 |
172 |
173 | community-set1
174 |
175 |
176 |
177 | COMMUNITY-SET1
178 | ALL
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 | as-path-set1
188 |
189 |
190 |
191 | AS-PATH-SET1
192 | ANY
193 |
194 |
195 |
196 |
197 |
198 | 50
199 |
200 |
201 |
202 |
203 |
204 | reject
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 | ```
214 | JSON
215 | ```json
216 | {
217 | "routing-policy:routing-policy": {
218 | "defined-sets": {
219 | "bgp-policy:bgp-defined-sets": {
220 | "as-path-sets": {
221 | "as-path-set": [
222 | {
223 | "as-path-set-name": "AS-PATH-SET1",
224 | "as-path-set-member": [
225 | "^65172"
226 | ]
227 | }
228 | ]
229 | },
230 | "community-sets": {
231 | "community-set": [
232 | {
233 | "community-set-name": "COMMUNITY-SET1",
234 | "community-member": [
235 | "ios-regex '^65172:17...$'",
236 | "65172:16001"
237 | ]
238 | }
239 | ]
240 | }
241 | }
242 | },
243 | "policy-definitions": {
244 | "policy-definition": [
245 | {
246 | "name": "POLICY2",
247 | "statements": {
248 | "statement": [
249 | {
250 | "name": "community-set1",
251 | "conditions": {
252 | "bgp-policy:bgp-conditions": {
253 | "match-community-set": {
254 | "community-set": "COMMUNITY-SET1",
255 | "match-set-options": "ALL"
256 | }
257 | }
258 | },
259 | "actions": {
260 | "accept-route": [
261 | null
262 | ]
263 | }
264 | },
265 | {
266 | "name": "as-path-set1",
267 | "conditions": {
268 | "bgp-policy:bgp-conditions": {
269 | "match-as-path-set": {
270 | "as-path-set": "AS-PATH-SET1",
271 | "match-set-options": "ANY"
272 | }
273 | }
274 | },
275 | "actions": {
276 | "bgp-policy:bgp-actions": {
277 | "set-local-pref": 50
278 | },
279 | "accept-route": [
280 | null
281 | ]
282 | }
283 | },
284 | {
285 | "name": "reject route",
286 | "actions": {
287 | "reject-route": [
288 | null
289 | ]
290 | }
291 | }
292 | ]
293 | }
294 | }
295 | ]
296 | }
297 | }
298 | }
299 | ```
300 | The previous OC-RPOL configuration results in the following CLI configuration:
301 | ```
302 | as-path-set AS-PATH-SET1
303 | ios-regex '^65172'
304 | end-set
305 | !
306 | community-set COMMUNITY-SET1
307 | ios-regex '^65172:17...$',
308 | 65172:16001
309 | end-set
310 | !
311 | route-policy POLICY2
312 | #statement-name community-set1
313 | if community matches-every COMMUNITY-SET1 then
314 | done
315 | endif
316 | #statement-name as-path-set1
317 | if as-path in AS-PATH-SET1 then
318 | set local-preference 50
319 | done
320 | endif
321 | #statement-name reject route
322 | drop
323 | end-policy
324 | !
325 | ```
326 | The following configuration example defines a prefix set, a community set and a policy. The latter accepts the prefixes matching the prefix set and drops all other prefixes. The prefixes matching the prefix set also have their BGP local preference and a community set:
327 |
328 | XML
329 | ```xml
330 |
331 |
332 |
333 |
334 |
335 | PREFIX-SET1
336 |
337 | 10.0.0.0/16
338 | 24..32
339 |
340 |
341 | 172.0.0.0/8
342 | 16..32
343 |
344 |
345 |
346 |
347 |
348 |
349 | COMMUNITY-SET2
350 | 65172:17001
351 |
352 |
353 |
354 |
355 |
356 |
357 | POLICY3
358 |
359 |
360 | prefix-set1
361 |
362 |
363 | PREFIX-SET1
364 | ANY
365 |
366 |
367 |
368 |
369 | 1000
370 |
371 | COMMUNITY-SET2
372 |
373 |
374 |
375 |
376 |
377 |
378 | reject
379 |
380 |
381 |
382 |
383 |
384 |
385 |
386 |
387 | ```
388 | JSON
389 | ```json
390 | {
391 | "routing-policy:routing-policy": {
392 | "defined-sets": {
393 | "prefix-sets": {
394 | "prefix-set": [
395 | {
396 | "prefix-set-name": "PREFIX-SET1",
397 | "prefix": [
398 | {
399 | "ip-prefix": "10.0.0.0/16",
400 | "masklength-range": "24..32"
401 | },
402 | {
403 | "ip-prefix": "10.1.0.0/19",
404 | "masklength-range": "30..32"
405 | }
406 | ]
407 | }
408 | ]
409 | },
410 | "bgp-policy:bgp-defined-sets": {
411 | "community-sets": {
412 | "community-set": [
413 | {
414 | "community-set-name": "COMMUNITY-SET2",
415 | "community-member": [
416 | "65172:17001"
417 | ]
418 | }
419 | ]
420 | }
421 | }
422 | },
423 | "policy-definitions": {
424 | "policy-definition": [
425 | {
426 | "name": "POLICY3",
427 | "statements": {
428 | "statement": [
429 | {
430 | "name": "prefix-set1",
431 | "conditions": {
432 | "match-prefix-set": {
433 | "prefix-set": "PREFIX-SET1",
434 | "match-set-options": "ANY"
435 | }
436 | },
437 | "actions": {
438 | "bgp-policy:bgp-actions": {
439 | "set-local-pref": 1000,
440 | "set-community": {
441 | "community-set-ref": "COMMUNITY-SET2"
442 | }
443 | },
444 | "accept-route": [
445 | null
446 | ]
447 | }
448 | },
449 | {
450 | "name": "reject",
451 | "actions": {
452 | "reject-route": [
453 | null
454 | ]
455 | }
456 | }
457 | ]
458 | }
459 | }
460 | ]
461 | }
462 | }
463 | }
464 | ```
465 | The OC-RPOL configuration above results in the following CLI configuration:
466 | ```
467 | prefix-set PREFIX-SET1
468 | 10.0.0.0/16 ge 24 le 32,
469 | 172.0.0.0/8 ge 16 le 32
470 | end-set
471 | !
472 | community-set COMMUNITY-SET2
473 | 65172:17001
474 | end-set
475 | !
476 | route-policy POLICY3
477 | #statement-name prefix-set1
478 | if destination in PREFIX-SET1 then
479 | set local-preference 1000
480 | set community COMMUNITY-SET2
481 | done
482 | endif
483 | #statement-name reject
484 | drop
485 | end-policy
486 | !
487 | ```
488 |
489 | ### Caveats
490 | * When a route policy is defined or modified via the OC-RPOL model, the entire policy must be specified.
491 | * The BGP implementation in Cisco IOS XR only accepts a single policy at a given attachment point. If a configuration specifies a list of policies, the last entry in the list is applied and the other policies are ignored. In order to apply multiple policies, the configuration must use a parent policy that groups the other policies. That parent policy can then be attached at the desired attachment point.
492 | * OpenConfig models are not compatible with FlexCLI (apply groups).
493 |
494 | ---
495 |
--------------------------------------------------------------------------------
/models/bgp/README.md:
--------------------------------------------------------------------------------
1 | # Getting Started With OpenConfig BGP in Cisco IOS XR
2 | The OpenConfig BGP (OC-BGP) model is an alternative to configure and operate BGP in recent Cisco IOS XR releases. This model provides coverage for a subset of the BGP functionality in Cisco IOS XR. Configuration outside its scope can be implemented using the native XR models or using the CLI. Similarly, some portions of the OC-BGP model are not supported in Cisco IOS XR. Those gaps are documented as model deviations. The OC-BGP model is closely related to the OpenConfig routing policy (OC-RPOL). The latter model can be used to implement the policy component of the BGP protocol. While the OC-BGP and the OC-RPOL models are expected to be used simultaneously in most cases, it is possible to configure BGP and routing policies and using different models (OpenConfig or native models).
3 |
4 | ## Files Accompanying This Document
5 | ```
6 | config/ - Configuration examples (JSON and XML)
7 | oper/ - Examples of operational data (JSON and XML)
8 | filters/ - Examples of model filters
9 | netconf/ - Examples of NETCONF RPCs using this model
10 | tree/ - Tree representation of the model after deviations
11 | ```
12 |
13 | ## Model Support
14 | Initial support for the OC-BGP model was introduced in release 5.3.2. The examples in this document use the extended model support introduced in release 6.0.0 which is based on model revision 2015-05-15. These are the modules supported:
15 | ```
16 | bgp-multiprotocol.yang
17 | bgp-operational.yang
18 | bgp-policy.yang
19 | bgp-types.yang
20 | bgp.yang
21 | ```
22 | The portions of the OC-BGP model that are not supported are documented in the following deviations:
23 | ```
24 | cisco-xr-bgp-deviations.yang
25 | cisco-xr-bgp-policy-deviations.yang
26 | ```
27 | The entire list of models supported in IOS XR is available in the [GitHub repository](https://github.com/YangModels/yang/tree/master/vendor/cisco). The model files can also be retrieved from a Cisco IOS XR device using the NETCONF get-schema operation.
28 |
29 | The tree representations of the OC-BGP models after applying the Cisco IOS XR deviations can be found at:
30 | ```
31 | tree/bgp-2015-05-15-cisco-xr-devs-tree.txt
32 | ```
33 |
34 | ## Data Examples in this Guide
35 | All examples in this guide are presented in JSON and XML format. As of release 6.0.0, YANG models can be exercised using NETCONF and gRPC. You can use JSON examples with a gRPC client and the XML examples with a NETCONF client. The configuration examples in this guide use the policy examples in the [OC-RPOL guide](../policy).
36 |
37 | ---
38 | ## Filtering OC-BGP Data
39 | You can specify filters when retrieving configuration and operational data. The OC-BGP model defines both configuration and operational (state) data. Therefore, the type of data retrieved when using a filter depends on the operation invoked. An empty filter may be used when retrieving configuration. It results on configuration data for all device models (Openconfig and non-OpenConfig) being retrieved. An empty filter is rejected when retrieving operational data.
40 |
41 | The OC-BGP model has three top-level components: `global`, `peer-groups` and `neighbors`. The most general filter you can define includes the entire data tree for the model (all three top-level components):
42 |
43 | XML
44 | ```xml
45 |
46 | ```
47 | JSON
48 | ```json
49 | {
50 | "bgp:bgp": [
51 | null
52 | ]
53 | }
54 | ```
55 | The following filter retrieves all OC-BGP `global` data:
56 |
57 | XML
58 | ```xml
59 |
60 |
61 |
62 | ```
63 | JSON
64 | ```json
65 | {
66 | "bgp:bgp": {
67 | "global": [
68 | null
69 | ]
70 | }
71 | }
72 | ```
73 | Similarly, the following filter retrieves all OC-BGP data for `neighbors`:
74 |
75 | XML
76 | ```xml
77 |
78 |
79 |
80 | ```
81 | JSON
82 | ```json
83 | {
84 | "bgp:bgp": {
85 | "neighbors": [
86 | null
87 | ]
88 | }
89 | }
90 | ```
91 | Finally, the following filter retrieves all OC-BGP data for `peer-groups`:
92 |
93 | XML
94 | ```xml
95 |
96 |
97 |
98 | ```
99 | JSON
100 | ```json
101 | {
102 | "bgp:bgp": {
103 | "peer-groups": [
104 | null
105 | ]
106 | }
107 | }
108 | ```
109 |
110 | ---
111 | ## Getting Started with OC-BGP Configuration
112 | ### Basic iBGP configuration
113 | The following configuration example defines an IBGP peer group and associates that group with a BGP neighbor. The group enables IPv4 routing, sets the address of interface Loopback0 as the source address and applies an output policy:
114 |
115 | XML
116 | ```xml
117 |
118 |
119 |
120 |
121 | 65001
122 |
123 |
124 |
125 | ipv4-unicast
126 |
127 | ipv4-unicast
128 | true
129 |
130 |
131 |
132 |
133 |
134 |
135 | IBGP
136 |
137 | IBGP
138 | 65001
139 |
140 |
141 |
142 | Loopback0
143 |
144 |
145 |
146 |
147 | ipv4-unicast
148 |
149 | ipv4-unicast
150 | true
151 |
152 |
153 |
154 | POLICY2
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 | 172.16.255.3
164 |
165 | 172.16.255.3
166 | IBGP
167 |
168 |
169 |
170 |
171 | ```
172 | JSON
173 | ```json
174 | {
175 | "bgp:bgp": {
176 | "global": {
177 | "config": {
178 | "as": 65001
179 | },
180 | "afi-safis": {
181 | "afi-safi": [
182 | {
183 | "afi-safi-name": "ipv4-unicast",
184 | "config": {
185 | "afi-safi-name": "ipv4-unicast",
186 | "enabled": true
187 | }
188 | }
189 | ]
190 | }
191 | },
192 | "peer-groups": {
193 | "peer-group": [
194 | {
195 | "peer-group-name": "IBGP",
196 | "config": {
197 | "peer-group-name": "IBGP",
198 | "peer-as": 65001
199 | },
200 | "transport": {
201 | "config": {
202 | "local-address": "Loopback0"
203 | }
204 | },
205 | "afi-safis": {
206 | "afi-safi": [
207 | {
208 | "afi-safi-name": "ipv4-unicast",
209 | "config": {
210 | "afi-safi-name": "ipv4-unicast",
211 | "enabled": true
212 | },
213 | "apply-policy": {
214 | "config": {
215 | "export-policy": [
216 | "POLICY2"
217 | ]
218 | }
219 | }
220 | }
221 | ]
222 | }
223 | }
224 | ]
225 | },
226 | "neighbors": {
227 | "neighbor": [
228 | {
229 | "neighbor-address": "172.16.255.3",
230 | "config": {
231 | "neighbor-address": "172.16.255.3",
232 | "peer-group": "IBGP"
233 | }
234 | }
235 | ]
236 | }
237 | }
238 | }
239 | ```
240 | The previous OC-BGP configuration results in the following CLI configuration:
241 | ```
242 | router bgp 65001
243 | address-family ipv4 unicast
244 | !
245 | neighbor-group IBGP
246 | remote-as 65001
247 | update-source Loopback0
248 | address-family ipv4 unicast
249 | route-policy POLICY2 out
250 | !
251 | !
252 | neighbor 172.16.255.3
253 | use neighbor-group IBGP
254 | !
255 | !
256 | ```
257 |
258 | In this particular case, the session is established with the iBGP neighbor and two prefixes are received. The following sample output illustrates the entire operational state associated with this particular iBGP neighbor. Note that the XML output includes configuration data while the JSON output does not. The difference in behavior is the result of the difference in semantics between the NETCONF GET RPC and the GET-OPER RPC in Cisco IDL for gRPC:
259 |
260 | XML
261 | ```xml
262 |
263 |
264 |
265 |
266 | 65001
267 |
268 |
269 | 65001
270 | 2
271 | 2
272 |
273 |
274 |
275 | ipv4-unicast
276 |
277 | ipv4-unicast
278 | true
279 |
280 |
281 | ipv4-unicast
282 | true
283 | 2
284 | 2
285 |
286 |
287 |
288 |
289 |
290 |
291 | IBGP
292 |
293 | IBGP
294 | 65001
295 |
296 |
297 | IBGP
298 | 65001
299 |
300 |
301 |
302 | Loopback0
303 |
304 |
305 | Loopback0
306 |
307 |
308 |
309 |
310 | ipv4-unicast
311 |
312 | ipv4-unicast
313 | true
314 |
315 |
316 | ipv4-unicast
317 | true
318 |
319 |
320 |
321 | POLICY2
322 |
323 |
324 | POLICY2
325 |
326 |
327 |
328 |
329 |
330 |
331 |
332 |
333 | 172.16.255.3
334 |
335 | 172.16.255.3
336 | IBGP
337 |
338 |
339 | 172.16.255.3
340 | IBGP
341 |
342 | 0
343 |
344 |
345 | bgp-st-estab
346 | MPBGP
347 |
348 |
349 | 0
350 | 1
351 |
352 |
353 | 0
354 | 3
355 |
356 |
357 |
358 |
359 |
360 | 21344
361 | 172.16.255.3
362 | 179
363 |
364 |
365 |
366 |
367 | 180
368 |
369 |
370 |
371 |
372 | ipv4-unicast
373 |
374 | true
375 |
376 | 2
377 | 0
378 |
379 |
380 |
381 |
382 |
383 |
384 | 120
385 |
386 |
387 |
388 |
389 |
390 | ```
391 | JSON
392 | ```json
393 | {
394 | "bgp:bgp": {
395 | "global": {
396 | "state": {
397 | "as": 65001,
398 | "total-paths": 2,
399 | "total-prefixes": 2
400 | },
401 | "afi-safis": {
402 | "afi-safi": [
403 | {
404 | "afi-safi-name": "ipv4-unicast",
405 | "state": {
406 | "afi-safi-name": "ipv4-unicast",
407 | "enabled": true,
408 | "total-paths": 2,
409 | "total-prefixes": 2
410 | }
411 | }
412 | ]
413 | }
414 | },
415 | "peer-groups": {
416 | "peer-group": [
417 | {
418 | "peer-group-name": "IBGP",
419 | "state": {
420 | "peer-group-name": "IBGP",
421 | "peer-as": 65001
422 | },
423 | "transport": {
424 | "state": {
425 | "local-address": "Loopback0"
426 | }
427 | },
428 | "afi-safis": {
429 | "afi-safi": [
430 | {
431 | "afi-safi-name": "ipv4-unicast",
432 | "state": {
433 | "afi-safi-name": "ipv4-unicast",
434 | "enabled": true
435 | },
436 | "apply-policy": {
437 | "state": {
438 | "export-policy": [
439 | "POLICY2"
440 | ]
441 | }
442 | }
443 | }
444 | ]
445 | }
446 | }
447 | ]
448 | },
449 | "neighbors": {
450 | "neighbor": [
451 | {
452 | "neighbor-address": "172.16.255.3",
453 | "state": {
454 | "neighbor-address": "172.16.255.3",
455 | "peer-group": "IBGP",
456 | "queues": {
457 | "input": 0,
458 | "output": 0
459 | },
460 | "session-state": "bgp-st-estab",
461 | "supported-capabilities": [
462 | "MPBGP"
463 | ],
464 | "messages": {
465 | "sent": {
466 | "NOTIFICATION": 0,
467 | "UPDATE": 1
468 | },
469 | "received": {
470 | "NOTIFICATION": 0,
471 | "UPDATE": 3
472 | }
473 | }
474 | },
475 | "transport": {
476 | "state": {
477 | "local-port": 21344,
478 | "remote-address": "172.16.255.3",
479 | "remote-port": 179
480 | }
481 | },
482 | "timers": {
483 | "state": {
484 | "negotiated-hold-time": 180
485 | }
486 | },
487 | "afi-safis": {
488 | "afi-safi": [
489 | {
490 | "afi-safi-name": "ipv4-unicast",
491 | "state": {
492 | "active": true,
493 | "prefixes": {
494 | "received": 2,
495 | "sent": 0
496 | }
497 | }
498 | }
499 | ]
500 | },
501 | "graceful-restart": {
502 | "state": {
503 | "peer-restart-time": 120
504 | }
505 | }
506 | }
507 | ]
508 | }
509 | }
510 | }
511 | ```
512 | ### Basic eBGP Configuration
513 | The following configuration example defines an EBGP peer group and associates that group with a BGP neighbor. The group enables IPv4 routing and applies a routing policy in both directions:
514 |
515 | XML
516 | ```xml
517 |
518 |
519 |
520 |
521 | 65001
522 |
523 |
524 |
525 | ipv4-unicast
526 |
527 | ipv4-unicast
528 | true
529 |
530 |
531 |
532 |
533 |
534 |
535 | EBGP
536 |
537 | EBGP
538 | 65002
539 |
540 |
541 |
542 | ipv4-unicast
543 |
544 | ipv4-unicast
545 | true
546 |
547 |
548 |
549 | POLICY3
550 | POLICY1
551 |
552 |
553 |
554 |
555 |
556 |
557 |
558 |
559 | 192.168.1.1
560 |
561 | 192.168.1.1
562 | EBGP
563 |
564 |
565 |
566 |
567 | ```
568 | JSON
569 | ```json
570 | {
571 | "bgp:bgp": {
572 | "global": {
573 | "config": {
574 | "as": 65001
575 | },
576 | "afi-safis": {
577 | "afi-safi": [
578 | {
579 | "afi-safi-name": "ipv4-unicast",
580 | "config": {
581 | "afi-safi-name": "ipv4-unicast",
582 | "enabled": true
583 | }
584 | }
585 | ]
586 | }
587 | },
588 | "peer-groups": {
589 | "peer-group": [
590 | {
591 | "peer-group-name": "EBGP",
592 | "config": {
593 | "peer-group-name": "EBGP",
594 | "peer-as": 65002
595 | },
596 | "afi-safis": {
597 | "afi-safi": [
598 | {
599 | "afi-safi-name": "ipv4-unicast",
600 | "config": {
601 | "afi-safi-name": "ipv4-unicast",
602 | "enabled": true
603 | },
604 | "apply-policy": {
605 | "config": {
606 | "import-policy": [
607 | "POLICY3"
608 | ],
609 | "export-policy": [
610 | "POLICY1"
611 | ]
612 | }
613 | }
614 | }
615 | ]
616 | }
617 | }
618 | ]
619 | },
620 | "neighbors": {
621 | "neighbor": [
622 | {
623 | "neighbor-address": "192.168.1.1",
624 | "config": {
625 | "neighbor-address": "192.168.1.1",
626 | "peer-group": "EBGP"
627 | }
628 | }
629 | ]
630 | }
631 | }
632 | }
633 | ```
634 | The OC-BGP configuration above results in the following CLI configuration:
635 | ```
636 | router bgp 65001
637 | address-family ipv4 unicast
638 | !
639 | neighbor-group EBGP
640 | remote-as 65002
641 | address-family ipv4 unicast
642 | route-policy POLICY3 in
643 | route-policy POLICY1 out
644 | !
645 | !
646 | neighbor 192.168.1.1
647 | use neighbor-group EBGP
648 | !
649 | !
650 | ```
651 | ## Configuring BGP Functionality Outside OC-BGP
652 | Some of the BGP functionality in Cisco IOS XR is not configurable using OC-BGP. This situation can occur because the OC-BGP model does not define the functionality, defines it at a different granularity and cannot be mapped, or defines it using a completely different configuration approach (e.g. a routing policy). In these cases, the functionality can be configured using native models or the CLI. The same two mechanism are available for any BGP operational data not included in the OC-BGP model. The CLI commands and their data can be exchanged using gRPC or the interactive command line interpreter.
653 |
654 | As an example, granular control for the storage of received BGP updates cannot be configured in Cisco IOS XR using the OC-BGP model. Such control allows users to configure different behaviors depending on the capability of the neighbor to refresh routes and the user preference for memory consumption. The following CLI enables the local storage of updates received from a neighbor regardless of its capability to refresh routes:
655 | ```
656 | router bgp 65001
657 | neighbor-group IBGP
658 | address-family ipv4 unicast
659 | soft-reconfiguration inbound always
660 | !
661 | !
662 | !
663 | ```
664 | Such configuration can be realized using the native BGP model in Cisco IOS XR:
665 | XML
666 | ```xml
667 |
668 |
669 |
670 | default
671 |
672 | 0
673 |
674 | 65001
675 |
676 |
677 |
678 |
679 |
680 | IBGP
681 |
682 |
683 |
684 | ipv4-unicast
685 |
686 |
687 | true
688 | true
689 |
690 |
691 |
692 |
693 |
694 |
695 |
696 |
697 |
698 |
699 |
700 | ```
701 | JSON
702 | ```json
703 | {
704 | "Cisco-IOS-XR-ipv4-bgp-cfg:bgp": {
705 | "instance": [
706 | {
707 | "instance-name": "default",
708 | "instance-as": [
709 | {
710 | "as": 0,
711 | "four-byte-as": [
712 | {
713 | "as": 65001,
714 | "bgp-running": [
715 | null
716 | ],
717 | "default-vrf": {
718 | "bgp-entity": {
719 | "neighbor-groups": {
720 | "neighbor-group": [
721 | {
722 | "neighbor-group-name": "IBGP",
723 | "create": [
724 | null
725 | ],
726 | "neighbor-group-afs": {
727 | "neighbor-group-af": [
728 | {
729 | "af-name": "ipv4-unicast",
730 | "activate": [
731 | null
732 | ],
733 | "soft-reconfiguration": {
734 | "inbound-soft": true,
735 | "soft-always": true
736 | }
737 | }
738 | ]
739 | }
740 | }
741 | ]
742 | }
743 | }
744 | }
745 | }
746 | ]
747 | }
748 | ]
749 | }
750 | ]
751 | }
752 | }
753 | ```
754 | Setting the next-hop attribute to the local router address is an example of BGP functionality that cannot be configured excusively with the OC-BGP model and requires policy configuration. Cisco IOS XR allows you to set the next hop to the local address for a neighbor group using the following CLI configuration:
755 | ```
756 | router bgp 65001
757 | neighbor-group IBGP
758 | address-family ipv4 unicast
759 | next-hop-self
760 | !
761 | !
762 | !
763 | ```
764 | Similar functionality can be achieved using an OC-RPOL policy and associating it with a peer group using the OC-BGP model.
765 |
766 | XML
767 | ```xml
768 |
769 |
770 |
771 |
772 | POLICY4
773 |
774 |
775 | next-hop-self
776 |
777 |
778 | SELF
779 |
780 |
781 |
782 |
783 |
784 |
785 |
786 |
787 |
788 |
789 |
790 |
791 | 65001
792 |
793 |
794 |
795 |
796 | IBGP
797 |
798 | IBGP
799 |
800 |
801 |
802 | ipv4-unicast
803 |
804 | ipv4-unicast
805 | true
806 |
807 |
808 |
809 | POLICY4
810 |
811 |
812 |
813 |
814 |
815 |
816 |
817 | ```
818 | JSON
819 | ```json
820 | {
821 | "routing-policy:routing-policy": {
822 | "policy-definitions": {
823 | "policy-definition": [
824 | {
825 | "name": "POLICY4",
826 | "statements": {
827 | "statement": [
828 | {
829 | "name": "next-hop-self",
830 | "actions": {
831 | "bgp-policy:bgp-actions": {
832 | "set-next-hop": "SELF"
833 | },
834 | "accept-route": [
835 | null
836 | ]
837 | }
838 | }
839 | ]
840 | }
841 | }
842 | ]
843 | }
844 | },
845 | "bgp:bgp": {
846 | "global": {
847 | "config": {
848 | "as": 65001
849 | }
850 | },
851 | "peer-groups": {
852 | "peer-group": [
853 | {
854 | "peer-group-name": "IBGP",
855 | "config": {
856 | "peer-group-name": "IBGP"
857 | },
858 | "afi-safis": {
859 | "afi-safi": [
860 | {
861 | "afi-safi-name": "ipv4-unicast",
862 | "config": {
863 | "afi-safi-name": "ipv4-unicast",
864 | "enabled": true
865 | },
866 | "apply-policy": {
867 | "config": {
868 | "export-policy": [
869 | "POLICY4"
870 | ]
871 | }
872 | }
873 | }
874 | ]
875 | }
876 | }
877 | ]
878 | }
879 | }
880 | }
881 | ```
882 | The configuration above results in the following CLI configuration which is equivalent to the previous CLI example:
883 | ```
884 | route-policy POLICY4
885 | #statement-name next-hop-self
886 | set next-hop self
887 | done
888 | end-policy
889 | !
890 | router bgp 65001
891 | neighbor-group IBGP
892 | address-family ipv4 unicast
893 | route-policy POLICY4 out
894 | !
895 | !
896 | !
897 | ```
898 |
899 | ### Caveats
900 | OpenConfig models are not compatible with FlexCLI (apply groups).
901 |
902 | ---
903 |
--------------------------------------------------------------------------------
/models/bgp/tree/bgp-2015-05-15-cisco-xr-devs-tree.txt:
--------------------------------------------------------------------------------
1 | module: bgp
2 | +--rw bgp!
3 | +--rw global
4 | | +--rw config
5 | | | +--rw as inet:as-number
6 | | | +--rw router-id? inet:ipv4-address
7 | | +--ro state
8 | | | +--ro as inet:as-number
9 | | | +--ro router-id? inet:ipv4-address
10 | | | +--ro total-paths? uint32
11 | | | +--ro total-prefixes? uint32
12 | | +--rw route-selection-options
13 | | | +--rw config
14 | | | | +--rw always-compare-med? boolean
15 | | | | +--rw ignore-as-path-length? boolean
16 | | | | +--rw external-compare-router-id? boolean
17 | | | | +--rw enable-aigp? boolean
18 | | | +--ro state
19 | | | +--ro always-compare-med? boolean
20 | | | +--ro ignore-as-path-length? boolean
21 | | | +--ro external-compare-router-id? boolean
22 | | | +--ro enable-aigp? boolean
23 | | +--rw default-route-distance
24 | | | +--rw config
25 | | | | +--rw external-route-distance? uint8
26 | | | | +--rw internal-route-distance? uint8
27 | | | +--ro state
28 | | | +--ro external-route-distance? uint8
29 | | | +--ro internal-route-distance? uint8
30 | | +--rw confederation
31 | | | +--rw config
32 | | | | +--rw identifier? inet:as-number
33 | | | | +--rw member-as* inet:as-number
34 | | | +--ro state
35 | | | +--ro enabled? boolean
36 | | | +--ro identifier? inet:as-number
37 | | | +--ro member-as* inet:as-number
38 | | +--rw use-multiple-paths
39 | | | +--rw config
40 | | | +--rw state
41 | | | | +--rw enabled? boolean
42 | | | +--rw ebgp
43 | | | | +--rw config
44 | | | | | +--rw maximum-paths? uint32
45 | | | | +--ro state
46 | | | | +--ro maximum-paths? uint32
47 | | | +--rw ibgp
48 | | | +--rw config
49 | | | | +--rw maximum-paths? uint32
50 | | | +--ro state
51 | | | +--ro maximum-paths? uint32
52 | | +--rw graceful-restart
53 | | | +--rw config
54 | | | | +--rw enabled? boolean
55 | | | | +--rw restart-time? uint16
56 | | | | +--rw stale-routes-time? decimal64
57 | | | +--ro state
58 | | | +--ro enabled? boolean
59 | | | +--ro restart-time? uint16
60 | | | +--ro stale-routes-time? decimal64
61 | | +--rw afi-safis
62 | | +--rw afi-safi* [afi-safi-name]
63 | | +--rw afi-safi-name -> ../config/afi-safi-name
64 | | +--rw graceful-restart
65 | | | +--rw config
66 | | | +--ro state
67 | | +--rw config
68 | | | +--rw afi-safi-name? identityref
69 | | | +--rw enabled? boolean
70 | | +--ro state
71 | | | +--ro afi-safi-name? identityref
72 | | | +--ro enabled? boolean
73 | | | +--ro total-paths? uint32
74 | | | +--ro total-prefixes? uint32
75 | | +--rw ipv4-unicast
76 | | | +--rw prefix-limit
77 | | | | +--rw config
78 | | | | | +--rw max-prefixes? uint32
79 | | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
80 | | | | | +--rw restart-timer? decimal64
81 | | | | +--ro state
82 | | | | +--ro max-prefixes? uint32
83 | | | | +--ro shutdown-threshold-pct? bgp-types:percentage
84 | | | | +--ro restart-timer? decimal64
85 | | | +--rw config
86 | | | | +--rw send-default-route? boolean
87 | | | +--ro state
88 | | | +--ro send-default-route? boolean
89 | | +--rw ipv6-unicast
90 | | | +--rw prefix-limit
91 | | | | +--rw config
92 | | | | | +--rw max-prefixes? uint32
93 | | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
94 | | | | | +--rw restart-timer? decimal64
95 | | | | +--ro state
96 | | | | +--ro max-prefixes? uint32
97 | | | | +--ro shutdown-threshold-pct? bgp-types:percentage
98 | | | | +--ro restart-timer? decimal64
99 | | | +--rw config
100 | | | | +--rw send-default-route? boolean
101 | | | +--ro state
102 | | | +--ro send-default-route? boolean
103 | | +--rw ipv4-labelled-unicast
104 | | | +--rw prefix-limit
105 | | | +--rw config
106 | | | | +--rw max-prefixes? uint32
107 | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
108 | | | | +--rw restart-timer? decimal64
109 | | | +--ro state
110 | | | +--ro max-prefixes? uint32
111 | | | +--ro shutdown-threshold-pct? bgp-types:percentage
112 | | | +--ro restart-timer? decimal64
113 | | +--rw ipv6-labelled-unicast
114 | | | +--rw prefix-limit
115 | | | +--rw config
116 | | | | +--rw max-prefixes? uint32
117 | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
118 | | | | +--rw restart-timer? decimal64
119 | | | +--ro state
120 | | | +--ro max-prefixes? uint32
121 | | | +--ro shutdown-threshold-pct? bgp-types:percentage
122 | | | +--ro restart-timer? decimal64
123 | | +--rw l3vpn-ipv4-unicast
124 | | | +--rw prefix-limit
125 | | | +--rw config
126 | | | | +--rw max-prefixes? uint32
127 | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
128 | | | | +--rw restart-timer? decimal64
129 | | | +--ro state
130 | | | +--ro max-prefixes? uint32
131 | | | +--ro shutdown-threshold-pct? bgp-types:percentage
132 | | | +--ro restart-timer? decimal64
133 | | +--rw l3vpn-ipv6-unicast
134 | | | +--rw prefix-limit
135 | | | +--rw config
136 | | | | +--rw max-prefixes? uint32
137 | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
138 | | | | +--rw restart-timer? decimal64
139 | | | +--ro state
140 | | | +--ro max-prefixes? uint32
141 | | | +--ro shutdown-threshold-pct? bgp-types:percentage
142 | | | +--ro restart-timer? decimal64
143 | | +--rw l3vpn-ipv4-multicast
144 | | | +--rw prefix-limit
145 | | | +--rw config
146 | | | | +--rw max-prefixes? uint32
147 | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
148 | | | | +--rw restart-timer? decimal64
149 | | | +--ro state
150 | | | +--ro max-prefixes? uint32
151 | | | +--ro shutdown-threshold-pct? bgp-types:percentage
152 | | | +--ro restart-timer? decimal64
153 | | +--rw l3vpn-ipv6-multicast
154 | | | +--rw prefix-limit
155 | | | +--rw config
156 | | | | +--rw max-prefixes? uint32
157 | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
158 | | | | +--rw restart-timer? decimal64
159 | | | +--ro state
160 | | | +--ro max-prefixes? uint32
161 | | | +--ro shutdown-threshold-pct? bgp-types:percentage
162 | | | +--ro restart-timer? decimal64
163 | | +--rw l2vpn-vpls
164 | | | +--rw prefix-limit
165 | | | +--rw config
166 | | | | +--rw max-prefixes? uint32
167 | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
168 | | | | +--rw restart-timer? decimal64
169 | | | +--ro state
170 | | | +--ro max-prefixes? uint32
171 | | | +--ro shutdown-threshold-pct? bgp-types:percentage
172 | | | +--ro restart-timer? decimal64
173 | | +--rw l2vpn-evpn
174 | | | +--rw prefix-limit
175 | | | +--rw config
176 | | | | +--rw max-prefixes? uint32
177 | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
178 | | | | +--rw restart-timer? decimal64
179 | | | +--ro state
180 | | | +--ro max-prefixes? uint32
181 | | | +--ro shutdown-threshold-pct? bgp-types:percentage
182 | | | +--ro restart-timer? decimal64
183 | | +--rw route-selection-options
184 | | | +--rw config
185 | | | | +--rw always-compare-med? boolean
186 | | | | +--rw ignore-as-path-length? boolean
187 | | | | +--rw external-compare-router-id? boolean
188 | | | | +--rw enable-aigp? boolean
189 | | | +--ro state
190 | | | +--ro always-compare-med? boolean
191 | | | +--ro ignore-as-path-length? boolean
192 | | | +--ro external-compare-router-id? boolean
193 | | | +--ro enable-aigp? boolean
194 | | +--rw use-multiple-paths
195 | | +--rw config
196 | | +--rw state
197 | | | +--rw enabled? boolean
198 | | +--rw ebgp
199 | | | +--rw config
200 | | | | +--rw maximum-paths? uint32
201 | | | +--ro state
202 | | | +--ro maximum-paths? uint32
203 | | +--rw ibgp
204 | | +--rw config
205 | | | +--rw maximum-paths? uint32
206 | | +--ro state
207 | | +--ro maximum-paths? uint32
208 | +--rw neighbors
209 | | +--rw neighbor* [neighbor-address]
210 | | +--rw neighbor-address -> ../config/neighbor-address
211 | | +--rw config
212 | | | +--rw peer-as? inet:as-number
213 | | | +--rw local-as? inet:as-number
214 | | | +--rw auth-password? string
215 | | | +--rw remove-private-as? bgp-types:remove-private-as-option
216 | | | +--rw send-community? bgp-types:community-type
217 | | | +--rw description? string
218 | | | +--rw peer-group? -> /bgp/peer-groups/peer-group/peer-group-name
219 | | | +--rw neighbor-address? inet:ip-address
220 | | +--ro state
221 | | | +--ro peer-as? inet:as-number
222 | | | +--ro local-as? inet:as-number
223 | | | +--ro auth-password? string
224 | | | +--ro remove-private-as? bgp-types:remove-private-as-option
225 | | | +--ro send-community? bgp-types:community-type
226 | | | +--ro description? string
227 | | | +--ro peer-group? -> /bgp/peer-groups/peer-group/peer-group-name
228 | | | +--ro neighbor-address? inet:ip-address
229 | | | +--ro session-state? enumeration
230 | | | +--ro supported-capabilities* identityref
231 | | | +--ro messages
232 | | | | +--ro sent
233 | | | | | +--ro UPDATE? uint64
234 | | | | | +--ro NOTIFICATION? uint64
235 | | | | +--ro received
236 | | | | +--ro UPDATE? uint64
237 | | | | +--ro NOTIFICATION? uint64
238 | | | +--ro queues
239 | | | +--ro input? uint32
240 | | | +--ro output? uint32
241 | | +--rw timers
242 | | | +--rw config
243 | | | | +--rw hold-time? decimal64
244 | | | | +--rw keepalive-interval? decimal64
245 | | | | +--rw minimum-advertisement-interval? decimal64
246 | | | +--ro state
247 | | | +--ro hold-time? decimal64
248 | | | +--ro keepalive-interval? decimal64
249 | | | +--ro minimum-advertisement-interval? decimal64
250 | | | +--ro negotiated-hold-time? decimal64
251 | | +--rw transport
252 | | | +--rw config
253 | | | | +--rw tcp-mss? uint16
254 | | | | +--rw passive-mode? boolean
255 | | | | +--rw local-address? union
256 | | | +--ro state
257 | | | +--ro tcp-mss? uint16
258 | | | +--ro passive-mode? boolean
259 | | | +--ro local-address? union
260 | | | +--ro local-port? inet:port-number
261 | | | +--ro remote-address? inet:ip-address
262 | | | +--ro remote-port? inet:port-number
263 | | +--rw ebgp-multihop
264 | | | +--rw config
265 | | | | +--rw enabled? boolean
266 | | | | +--rw multihop-ttl? uint8
267 | | | +--ro state
268 | | | +--ro enabled? boolean
269 | | | +--ro multihop-ttl? uint8
270 | | +--rw route-reflector
271 | | | +--rw config
272 | | | | +--rw route-reflector-cluster-id? bgp-types:rr-cluster-id-type
273 | | | | +--rw route-reflector-client? boolean
274 | | | +--ro state
275 | | | +--ro route-reflector-cluster-id? bgp-types:rr-cluster-id-type
276 | | | +--ro route-reflector-client? boolean
277 | | +--rw as-path-options
278 | | | +--rw config
279 | | | +--ro state
280 | | +--rw add-paths
281 | | | +--rw config
282 | | | +--ro state
283 | | +--rw afi-safis
284 | | | +--rw afi-safi* [afi-safi-name]
285 | | | +--rw afi-safi-name -> ../config/afi-safi-name
286 | | | +--rw graceful-restart
287 | | | | +--rw config
288 | | | | +--ro state
289 | | | +--rw config
290 | | | | +--rw afi-safi-name? identityref
291 | | | | +--rw enabled? boolean
292 | | | +--ro state
293 | | | | +--ro afi-safi-name? identityref
294 | | | | +--ro enabled? boolean
295 | | | | +--ro active? boolean
296 | | | | +--ro prefixes
297 | | | | +--ro received? uint32
298 | | | | +--ro sent? uint32
299 | | | +--rw ipv4-unicast
300 | | | | +--rw prefix-limit
301 | | | | | +--rw config
302 | | | | | | +--rw max-prefixes? uint32
303 | | | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
304 | | | | | | +--rw restart-timer? decimal64
305 | | | | | +--ro state
306 | | | | | +--ro max-prefixes? uint32
307 | | | | | +--ro shutdown-threshold-pct? bgp-types:percentage
308 | | | | | +--ro restart-timer? decimal64
309 | | | | +--rw config
310 | | | | | +--rw send-default-route? boolean
311 | | | | +--ro state
312 | | | | +--ro send-default-route? boolean
313 | | | +--rw ipv6-unicast
314 | | | | +--rw prefix-limit
315 | | | | | +--rw config
316 | | | | | | +--rw max-prefixes? uint32
317 | | | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
318 | | | | | | +--rw restart-timer? decimal64
319 | | | | | +--ro state
320 | | | | | +--ro max-prefixes? uint32
321 | | | | | +--ro shutdown-threshold-pct? bgp-types:percentage
322 | | | | | +--ro restart-timer? decimal64
323 | | | | +--rw config
324 | | | | | +--rw send-default-route? boolean
325 | | | | +--ro state
326 | | | | +--ro send-default-route? boolean
327 | | | +--rw ipv4-labelled-unicast
328 | | | | +--rw prefix-limit
329 | | | | +--rw config
330 | | | | | +--rw max-prefixes? uint32
331 | | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
332 | | | | | +--rw restart-timer? decimal64
333 | | | | +--ro state
334 | | | | +--ro max-prefixes? uint32
335 | | | | +--ro shutdown-threshold-pct? bgp-types:percentage
336 | | | | +--ro restart-timer? decimal64
337 | | | +--rw ipv6-labelled-unicast
338 | | | | +--rw prefix-limit
339 | | | | +--rw config
340 | | | | | +--rw max-prefixes? uint32
341 | | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
342 | | | | | +--rw restart-timer? decimal64
343 | | | | +--ro state
344 | | | | +--ro max-prefixes? uint32
345 | | | | +--ro shutdown-threshold-pct? bgp-types:percentage
346 | | | | +--ro restart-timer? decimal64
347 | | | +--rw l3vpn-ipv4-unicast
348 | | | | +--rw prefix-limit
349 | | | | +--rw config
350 | | | | | +--rw max-prefixes? uint32
351 | | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
352 | | | | | +--rw restart-timer? decimal64
353 | | | | +--ro state
354 | | | | +--ro max-prefixes? uint32
355 | | | | +--ro shutdown-threshold-pct? bgp-types:percentage
356 | | | | +--ro restart-timer? decimal64
357 | | | +--rw l3vpn-ipv6-unicast
358 | | | | +--rw prefix-limit
359 | | | | +--rw config
360 | | | | | +--rw max-prefixes? uint32
361 | | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
362 | | | | | +--rw restart-timer? decimal64
363 | | | | +--ro state
364 | | | | +--ro max-prefixes? uint32
365 | | | | +--ro shutdown-threshold-pct? bgp-types:percentage
366 | | | | +--ro restart-timer? decimal64
367 | | | +--rw l3vpn-ipv4-multicast
368 | | | | +--rw prefix-limit
369 | | | | +--rw config
370 | | | | | +--rw max-prefixes? uint32
371 | | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
372 | | | | | +--rw restart-timer? decimal64
373 | | | | +--ro state
374 | | | | +--ro max-prefixes? uint32
375 | | | | +--ro shutdown-threshold-pct? bgp-types:percentage
376 | | | | +--ro restart-timer? decimal64
377 | | | +--rw l3vpn-ipv6-multicast
378 | | | | +--rw prefix-limit
379 | | | | +--rw config
380 | | | | | +--rw max-prefixes? uint32
381 | | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
382 | | | | | +--rw restart-timer? decimal64
383 | | | | +--ro state
384 | | | | +--ro max-prefixes? uint32
385 | | | | +--ro shutdown-threshold-pct? bgp-types:percentage
386 | | | | +--ro restart-timer? decimal64
387 | | | +--rw l2vpn-vpls
388 | | | | +--rw prefix-limit
389 | | | | +--rw config
390 | | | | | +--rw max-prefixes? uint32
391 | | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
392 | | | | | +--rw restart-timer? decimal64
393 | | | | +--ro state
394 | | | | +--ro max-prefixes? uint32
395 | | | | +--ro shutdown-threshold-pct? bgp-types:percentage
396 | | | | +--ro restart-timer? decimal64
397 | | | +--rw l2vpn-evpn
398 | | | | +--rw prefix-limit
399 | | | | +--rw config
400 | | | | | +--rw max-prefixes? uint32
401 | | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
402 | | | | | +--rw restart-timer? decimal64
403 | | | | +--ro state
404 | | | | +--ro max-prefixes? uint32
405 | | | | +--ro shutdown-threshold-pct? bgp-types:percentage
406 | | | | +--ro restart-timer? decimal64
407 | | | +--rw use-multiple-paths
408 | | | +--rw config
409 | | | | +--rw enabled? boolean
410 | | | +--rw state
411 | | | +--rw enabled? boolean
412 | | +--rw graceful-restart
413 | | +--rw config
414 | | | +--rw enabled? boolean
415 | | | +--rw restart-time? uint16
416 | | | +--rw stale-routes-time? decimal64
417 | | +--ro state
418 | | +--ro enabled? boolean
419 | | +--ro restart-time? uint16
420 | | +--ro stale-routes-time? decimal64
421 | | +--ro peer-restart-time? uint16
422 | +--rw peer-groups
423 | +--rw peer-group* [peer-group-name]
424 | +--rw peer-group-name -> ../config/peer-group-name
425 | +--rw config
426 | | +--rw peer-as? inet:as-number
427 | | +--rw local-as? inet:as-number
428 | | +--rw auth-password? string
429 | | +--rw remove-private-as? bgp-types:remove-private-as-option
430 | | +--rw send-community? bgp-types:community-type
431 | | +--rw description? string
432 | | +--rw peer-group-name? string
433 | +--ro state
434 | | +--ro peer-as? inet:as-number
435 | | +--ro local-as? inet:as-number
436 | | +--ro auth-password? string
437 | | +--ro remove-private-as? bgp-types:remove-private-as-option
438 | | +--ro send-community? bgp-types:community-type
439 | | +--ro description? string
440 | | +--ro peer-group-name? string
441 | +--rw timers
442 | | +--rw config
443 | | | +--rw hold-time? decimal64
444 | | | +--rw keepalive-interval? decimal64
445 | | | +--rw minimum-advertisement-interval? decimal64
446 | | +--ro state
447 | | +--ro hold-time? decimal64
448 | | +--ro keepalive-interval? decimal64
449 | | +--ro minimum-advertisement-interval? decimal64
450 | +--rw transport
451 | | +--rw config
452 | | | +--rw tcp-mss? uint16
453 | | | +--rw passive-mode? boolean
454 | | | +--rw local-address? union
455 | | +--ro state
456 | | +--ro tcp-mss? uint16
457 | | +--ro passive-mode? boolean
458 | | +--ro local-address? union
459 | +--rw error-handling
460 | | +--rw config
461 | | +--ro state
462 | +--rw logging-options
463 | | +--rw config
464 | | +--ro state
465 | +--rw ebgp-multihop
466 | | +--rw config
467 | | | +--rw enabled? boolean
468 | | | +--rw multihop-ttl? uint8
469 | | +--ro state
470 | | +--ro enabled? boolean
471 | | +--ro multihop-ttl? uint8
472 | +--rw route-reflector
473 | | +--rw config
474 | | | +--rw route-reflector-cluster-id? bgp-types:rr-cluster-id-type
475 | | | +--rw route-reflector-client? boolean
476 | | +--ro state
477 | | +--ro route-reflector-cluster-id? bgp-types:rr-cluster-id-type
478 | | +--ro route-reflector-client? boolean
479 | +--rw as-path-options
480 | | +--rw config
481 | | +--ro state
482 | +--rw add-paths
483 | | +--rw config
484 | | +--ro state
485 | +--rw afi-safis
486 | | +--rw afi-safi* [afi-safi-name]
487 | | +--rw afi-safi-name -> ../config/afi-safi-name
488 | | +--rw graceful-restart
489 | | | +--rw config
490 | | | +--ro state
491 | | +--rw config
492 | | | +--rw afi-safi-name? identityref
493 | | | +--rw enabled? boolean
494 | | +--ro state
495 | | | +--ro afi-safi-name? identityref
496 | | | +--ro enabled? boolean
497 | | +--rw apply-policy
498 | | | +--rw config
499 | | | | +--rw import-policy* -> /rpol:routing-policy/policy-definitions/policy-definition/name
500 | | | | +--rw export-policy* -> /rpol:routing-policy/policy-definitions/policy-definition/name
501 | | | +--ro state
502 | | | +--ro import-policy* -> /rpol:routing-policy/policy-definitions/policy-definition/name
503 | | | +--ro export-policy* -> /rpol:routing-policy/policy-definitions/policy-definition/name
504 | | +--rw ipv4-unicast
505 | | | +--rw prefix-limit
506 | | | | +--rw config
507 | | | | | +--rw max-prefixes? uint32
508 | | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
509 | | | | | +--rw restart-timer? decimal64
510 | | | | +--ro state
511 | | | | +--ro max-prefixes? uint32
512 | | | | +--ro shutdown-threshold-pct? bgp-types:percentage
513 | | | | +--ro restart-timer? decimal64
514 | | | +--rw config
515 | | | | +--rw send-default-route? boolean
516 | | | +--ro state
517 | | | +--ro send-default-route? boolean
518 | | +--rw ipv6-unicast
519 | | | +--rw prefix-limit
520 | | | | +--rw config
521 | | | | | +--rw max-prefixes? uint32
522 | | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
523 | | | | | +--rw restart-timer? decimal64
524 | | | | +--ro state
525 | | | | +--ro max-prefixes? uint32
526 | | | | +--ro shutdown-threshold-pct? bgp-types:percentage
527 | | | | +--ro restart-timer? decimal64
528 | | | +--rw config
529 | | | | +--rw send-default-route? boolean
530 | | | +--ro state
531 | | | +--ro send-default-route? boolean
532 | | +--rw ipv4-labelled-unicast
533 | | | +--rw prefix-limit
534 | | | +--rw config
535 | | | | +--rw max-prefixes? uint32
536 | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
537 | | | | +--rw restart-timer? decimal64
538 | | | +--ro state
539 | | | +--ro max-prefixes? uint32
540 | | | +--ro shutdown-threshold-pct? bgp-types:percentage
541 | | | +--ro restart-timer? decimal64
542 | | +--rw ipv6-labelled-unicast
543 | | | +--rw prefix-limit
544 | | | +--rw config
545 | | | | +--rw max-prefixes? uint32
546 | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
547 | | | | +--rw restart-timer? decimal64
548 | | | +--ro state
549 | | | +--ro max-prefixes? uint32
550 | | | +--ro shutdown-threshold-pct? bgp-types:percentage
551 | | | +--ro restart-timer? decimal64
552 | | +--rw l3vpn-ipv4-unicast
553 | | | +--rw prefix-limit
554 | | | +--rw config
555 | | | | +--rw max-prefixes? uint32
556 | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
557 | | | | +--rw restart-timer? decimal64
558 | | | +--ro state
559 | | | +--ro max-prefixes? uint32
560 | | | +--ro shutdown-threshold-pct? bgp-types:percentage
561 | | | +--ro restart-timer? decimal64
562 | | +--rw l3vpn-ipv6-unicast
563 | | | +--rw prefix-limit
564 | | | +--rw config
565 | | | | +--rw max-prefixes? uint32
566 | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
567 | | | | +--rw restart-timer? decimal64
568 | | | +--ro state
569 | | | +--ro max-prefixes? uint32
570 | | | +--ro shutdown-threshold-pct? bgp-types:percentage
571 | | | +--ro restart-timer? decimal64
572 | | +--rw l3vpn-ipv4-multicast
573 | | | +--rw prefix-limit
574 | | | +--rw config
575 | | | | +--rw max-prefixes? uint32
576 | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
577 | | | | +--rw restart-timer? decimal64
578 | | | +--ro state
579 | | | +--ro max-prefixes? uint32
580 | | | +--ro shutdown-threshold-pct? bgp-types:percentage
581 | | | +--ro restart-timer? decimal64
582 | | +--rw l3vpn-ipv6-multicast
583 | | | +--rw prefix-limit
584 | | | +--rw config
585 | | | | +--rw max-prefixes? uint32
586 | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
587 | | | | +--rw restart-timer? decimal64
588 | | | +--ro state
589 | | | +--ro max-prefixes? uint32
590 | | | +--ro shutdown-threshold-pct? bgp-types:percentage
591 | | | +--ro restart-timer? decimal64
592 | | +--rw l2vpn-vpls
593 | | | +--rw prefix-limit
594 | | | +--rw config
595 | | | | +--rw max-prefixes? uint32
596 | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
597 | | | | +--rw restart-timer? decimal64
598 | | | +--ro state
599 | | | +--ro max-prefixes? uint32
600 | | | +--ro shutdown-threshold-pct? bgp-types:percentage
601 | | | +--ro restart-timer? decimal64
602 | | +--rw l2vpn-evpn
603 | | | +--rw prefix-limit
604 | | | +--rw config
605 | | | | +--rw max-prefixes? uint32
606 | | | | +--rw shutdown-threshold-pct? bgp-types:percentage
607 | | | | +--rw restart-timer? decimal64
608 | | | +--ro state
609 | | | +--ro max-prefixes? uint32
610 | | | +--ro shutdown-threshold-pct? bgp-types:percentage
611 | | | +--ro restart-timer? decimal64
612 | | +--rw use-multiple-paths
613 | | | +--rw config
614 | | | | +--rw enabled? boolean
615 | | | +--rw state
616 | | | +--rw enabled? boolean
617 | | +--rw route-selection-options
618 | | +--rw config
619 | | | +--rw always-compare-med? boolean
620 | | | +--rw ignore-as-path-length? boolean
621 | | | +--rw external-compare-router-id? boolean
622 | | | +--rw enable-aigp? boolean
623 | | +--ro state
624 | | +--ro always-compare-med? boolean
625 | | +--ro ignore-as-path-length? boolean
626 | | +--ro external-compare-router-id? boolean
627 | | +--ro enable-aigp? boolean
628 | +--rw graceful-restart
629 | +--rw config
630 | | +--rw enabled? boolean
631 | | +--rw restart-time? uint16
632 | | +--rw stale-routes-time? decimal64
633 | +--ro state
634 | +--ro enabled? boolean
635 | +--ro restart-time? uint16
636 | +--ro stale-routes-time? decimal64
637 |
--------------------------------------------------------------------------------