summaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-rib-bgp-tables.yang
diff options
context:
space:
mode:
authorAndrej Kozemcak <andrej.kozemcak@pantheon.tech>2018-12-20 17:49:33 +0100
committerAndrej Kozemcak <andrej.kozemcak@pantheon.tech>2018-12-20 17:51:10 +0100
commit639509ad42f8bd6baf9b6f5b668a9bbfb05108d4 (patch)
tree83de866d2e47bd71dae0c6ff9e03f51c3269413b /src/plugins/yang/openconfig/openconfig-rib-bgp-tables.yang
parentba089324594f450a1b549906ec7fde1ba63a1e89 (diff)
Add Openconfig YANG modules.
Change-Id: I7e98bf1ca7196cff042a35b8bf096d2ea9d80028 Signed-off-by: Andrej Kozemcak <andrej.kozemcak@pantheon.tech>
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-rib-bgp-tables.yang')
-rw-r--r--src/plugins/yang/openconfig/openconfig-rib-bgp-tables.yang883
1 files changed, 883 insertions, 0 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-rib-bgp-tables.yang b/src/plugins/yang/openconfig/openconfig-rib-bgp-tables.yang
new file mode 100644
index 0000000..f7a759d
--- /dev/null
+++ b/src/plugins/yang/openconfig/openconfig-rib-bgp-tables.yang
@@ -0,0 +1,883 @@
+submodule openconfig-rib-bgp-tables {
+
+ belongs-to openconfig-rib-bgp {
+ prefix "oc-rib-bgp";
+ }
+
+
+ // import some basic types
+ import openconfig-inet-types { prefix oc-inet; }
+ import openconfig-extensions { prefix oc-ext; }
+ import openconfig-policy-types { prefix oc-pol-types; }
+
+ include openconfig-rib-bgp-attributes;
+ include openconfig-rib-bgp-shared-attributes;
+ include openconfig-rib-bgp-table-attributes;
+
+ // meta
+ organization "OpenConfig working group";
+
+ contact
+ "OpenConfig working group
+ www.openconfig.net";
+
+ description
+ "This submodule contains structural data definitions for
+ BGP routing tables.";
+
+ oc-ext:openconfig-version "0.3.0";
+
+ revision "2016-10-17" {
+ description
+ "OpenConfig BGP RIB refactor";
+ reference "0.3.0";
+ }
+
+
+ grouping bgp-adj-rib-common-attr-refs {
+ description
+ "Definitions of common references to attribute sets for
+ multiple AFI-SAFIs for Adj-RIB tables";
+
+ leaf attr-index {
+ type leafref {
+ path "../../../../../../../../../../attr-sets/attr-set/" +
+ "state/index";
+ }
+ description
+ "Reference to the common attribute group for the
+ route";
+ }
+
+ leaf community-index {
+ type leafref {
+ path "../../../../../../../../../../communities/community/" +
+ "state/index";
+ }
+ description
+ "Reference to the community attribute for the route";
+ }
+
+ leaf ext-community-index {
+ type leafref {
+ path "../../../../../../../../../../ext-communities/" +
+ "ext-community/state/index";
+ }
+ description
+ "Reference to the extended community attribute for the
+ route";
+ }
+ }
+
+ grouping bgp-loc-rib-common-attr-refs {
+ description
+ "Definitions of common references to attribute sets for
+ multiple AFI-SAFIs for LOC-RIB tables";
+
+ leaf attr-index {
+ type leafref {
+ path "../../../../../../../../attr-sets/attr-set/" +
+ "state/index";
+ }
+ description
+ "Reference to the common attribute group for the
+ route";
+ }
+
+ leaf community-index {
+ type leafref {
+ path "../../../../../../../../communities/community/" +
+ "state/index";
+ }
+ description
+ "Reference to the community attribute for the route";
+ }
+
+ leaf ext-community-index {
+ type leafref {
+ path "../../../../../../../../ext-communities/" +
+ "ext-community/state/index";
+ }
+ description
+ "Reference to the extended community attribute for the
+ route";
+ }
+ }
+
+ grouping bgp-loc-rib-common-keys {
+ description
+ "Common references used in keys for IPv4 and IPv6
+ LOC-RIB entries";
+
+ leaf origin {
+ type union {
+ type oc-inet:ip-address;
+ type identityref {
+ base oc-pol-types:INSTALL_PROTOCOL_TYPE;
+ }
+ }
+ description
+ "Indicates the origin of the route. If the route is learned
+ from a neighbor, this value is the neighbor address. If
+ the route was injected or redistributed from another
+ protocol, the origin indicates the source protocol for the
+ route.";
+ }
+
+ leaf path-id {
+ type uint32;
+ default 0;
+ description
+ "If the route is learned from a neighbor, the path-id
+ corresponds to the path-id for the route in the
+ corresponding adj-rib-in-post table. If the route is
+ injected from another protocol, or the neighbor does not
+ support BGP add-paths, the path-id should be set
+ to zero, also the default value.";
+ }
+ }
+
+ grouping bgp-loc-rib-key-refs {
+ description
+ "Key references to support operational state structure for
+ the BGP LOC-RIB table";
+
+ leaf prefix {
+ type leafref {
+ path "../state/prefix";
+ }
+ description
+ "Reference to the prefix list key";
+ }
+
+ leaf origin {
+ type leafref {
+ path "../state/origin";
+ }
+ description
+ "Reference to the origin list key";
+ }
+
+ leaf path-id {
+ type leafref {
+ path "../state/path-id";
+ }
+ description
+ "Reference to the path-id list key";
+ }
+ }
+
+ grouping ipv4-loc-rib-top {
+ description
+ "Top-level grouping for IPv4 routing tables";
+
+ container loc-rib {
+ config false;
+ description
+ "Container for the IPv4 BGP LOC-RIB data";
+
+ uses bgp-common-table-attrs-top;
+
+ container routes {
+ description
+ "Enclosing container for list of routes in the routing
+ table.";
+
+ list route {
+ key "prefix origin path-id";
+
+ description
+ "List of routes in the table, keyed by the route
+ prefix, the route origin, and path-id. The route
+ origin can be either the neighbor address from which
+ the route was learned, or the source protocol that
+ injected the route. The path-id distinguishes routes
+ for the same prefix received from a neighbor (e.g.,
+ if add-paths is eanbled).";
+
+ uses bgp-loc-rib-key-refs;
+
+ container state {
+ description
+ "Operational state data for route entries in the
+ BGP LOC-RIB";
+
+ leaf prefix {
+ type oc-inet:ipv4-prefix;
+ description
+ "The IPv4 prefix corresponding to the route";
+ }
+
+ uses bgp-loc-rib-common-keys;
+ uses bgp-loc-rib-common-attr-refs;
+ uses bgp-loc-rib-attr-state;
+ uses bgp-common-route-annotations-state;
+ uses bgp-loc-rib-route-annotations-state;
+
+ }
+
+ uses bgp-unknown-attr-top;
+
+ }
+ }
+ }
+ }
+
+ grouping ipv6-loc-rib-top {
+ description
+ "Top-level grouping for IPv6 routing tables";
+
+ container loc-rib {
+ config false;
+ description
+ "Container for the IPv6 BGP LOC-RIB data";
+
+ uses bgp-common-table-attrs-top;
+
+ container routes {
+ description
+ "Enclosing container for list of routes in the routing
+ table.";
+
+ list route {
+ key "prefix origin path-id";
+
+ description
+ "List of routes in the table, keyed by the route
+ prefix, the route origin, and path-id. The route
+ origin can be either the neighbor address from which
+ the route was learned, or the source protocol that
+ injected the route. The path-id distinguishes routes
+ for the same prefix received from a neighbor (e.g.,
+ if add-paths is eanbled).";
+
+ uses bgp-loc-rib-key-refs;
+
+ container state {
+ description
+ "Operational state data for route entries in the
+ BGP LOC-RIB";
+
+ leaf prefix {
+ type oc-inet:ipv6-prefix;
+ description
+ "The IPv6 prefix corresponding to the route";
+ }
+
+ uses bgp-loc-rib-common-keys;
+ uses bgp-loc-rib-common-attr-refs;
+ uses bgp-loc-rib-attr-state;
+ uses bgp-common-route-annotations-state;
+ uses bgp-loc-rib-route-annotations-state;
+
+ }
+
+ uses bgp-unknown-attr-top;
+ }
+ }
+ }
+ }
+
+ grouping bgp-adj-rib-key-refs {
+ description
+ "Key references to support operational state structure for
+ the BGP Adj-RIB tables";
+
+ leaf prefix {
+ type leafref {
+ path "../state/prefix";
+ }
+ description
+ "Reference to the prefix list key";
+ }
+
+ leaf path-id {
+ type leafref {
+ path "../state/path-id";
+ }
+ description
+ "Reference to the path-id list key";
+ }
+ }
+
+ grouping ipv4-adj-rib-common {
+ description
+ "Common structural grouping for each IPv4 adj-RIB table";
+
+ uses bgp-common-table-attrs-top;
+
+ container routes {
+ config false;
+ description
+ "Enclosing container for list of routes in the routing
+ table.";
+
+ list route {
+ key "prefix path-id";
+
+ description
+ "List of routes in the table, keyed by a combination of
+ the route prefix and path-id to distinguish multiple
+ routes received from a neighbor for the same prefix,
+ e.g., when BGP add-paths is enabled.";
+
+ uses bgp-adj-rib-key-refs;
+
+ container state {
+ description
+ "Operational state data for BGP Adj-RIB entries";
+
+ leaf prefix {
+ type oc-inet:ipv4-prefix;
+ description
+ "Prefix for the route";
+ }
+
+ uses bgp-adj-rib-attr-state;
+ uses bgp-adj-rib-common-attr-refs;
+ uses bgp-common-route-annotations-state;
+ }
+
+ uses bgp-unknown-attr-top;
+
+ }
+ }
+ }
+
+ grouping ipv4-adj-rib-in-post {
+ description
+ "Common structural grouping for the IPv4 adj-rib-in
+ post-policy table";
+
+ uses bgp-common-table-attrs-top;
+
+ container routes {
+ config false;
+ description
+ "Enclosing container for list of routes in the routing
+ table.";
+
+ list route {
+ key "prefix path-id";
+
+ description
+ "List of routes in the table, keyed by a combination of
+ the route prefix and path-id to distinguish multiple
+ routes received from a neighbor for the same prefix,
+ e.g., when BGP add-paths is enabled.";
+
+ uses bgp-adj-rib-key-refs;
+
+ container state {
+ description
+ "Operational state data for BGP Adj-RIB entries";
+
+ leaf prefix {
+ type oc-inet:ipv4-prefix;
+ description
+ "Prefix for the route";
+ }
+
+ uses bgp-adj-rib-attr-state;
+ uses bgp-adj-rib-common-attr-refs;
+ uses bgp-common-route-annotations-state;
+ uses bgp-adj-rib-in-post-route-annotations-state;
+ }
+
+ uses bgp-unknown-attr-top;
+ }
+ }
+ }
+
+
+ grouping ipv4-adj-rib-top {
+ description
+ "Top-level grouping for Adj-RIB table";
+
+ container neighbors {
+ config false;
+ description
+ "Enclosing container for neighbor list";
+
+ list neighbor {
+ key "neighbor-address";
+ description
+ "List of neighbors (peers) of the local BGP speaker";
+
+ leaf neighbor-address {
+ type leafref {
+ path "../state/neighbor-address";
+ }
+ description
+ "Reference to the list key";
+ }
+
+ container state {
+ description
+ "Operational state for each neighbor BGP Adj-RIB";
+
+ leaf neighbor-address {
+ type oc-inet:ip-address;
+ description
+ "IP address of the BGP neighbor or peer";
+ }
+ }
+
+ container adj-rib-in-pre {
+ description
+ "Per-neighbor table containing the NLRI updates
+ received from the neighbor before any local input
+ policy rules or filters have been applied. This can
+ be considered the 'raw' updates from the neighbor.";
+
+ uses ipv4-adj-rib-common;
+
+ }
+
+ container adj-rib-in-post {
+ description
+ "Per-neighbor table containing the paths received from
+ the neighbor that are eligible for best-path selection
+ after local input policy rules have been applied.";
+
+ uses ipv4-adj-rib-in-post;
+ }
+
+ container adj-rib-out-pre {
+ description
+ "Per-neighbor table containing paths eligble for
+ sending (advertising) to the neighbor before output
+ policy rules have been applied";
+
+ uses ipv4-adj-rib-common;
+
+ }
+
+ container adj-rib-out-post {
+ description
+ "Per-neighbor table containing paths eligble for
+ sending (advertising) to the neighbor after output
+ policy rules have been applied";
+
+ uses ipv4-adj-rib-common;
+
+ }
+ }
+ }
+ }
+
+ grouping ipv6-adj-rib-common {
+ description
+ "Common structural grouping for each IPv6 adj-RIB table";
+
+ uses bgp-common-table-attrs-state;
+
+ container routes {
+ config false;
+ description
+ "Enclosing container for list of routes in the routing
+ table.";
+
+ list route {
+ key "prefix path-id";
+
+ description
+ "List of routes in the table";
+
+ uses bgp-adj-rib-key-refs;
+
+ container state {
+ description
+ "Operational state data for BGP Adj-RIB entries";
+
+ leaf prefix {
+ type oc-inet:ipv6-prefix;
+ description
+ "Prefix for the route";
+ }
+
+ uses bgp-adj-rib-attr-state;
+ uses bgp-adj-rib-common-attr-refs;
+ uses bgp-common-route-annotations-state;
+ }
+
+ uses bgp-unknown-attr-top;
+ }
+ }
+ }
+
+ grouping ipv6-adj-rib-in-post {
+ description
+ "Common structural grouping for the IPv6 adj-rib-in
+ post-policy table";
+
+ uses bgp-common-table-attrs-state;
+
+ container routes {
+ config false;
+ description
+ "Enclosing container for list of routes in the routing
+ table.";
+
+ list route {
+ key "prefix path-id";
+
+ description
+ "List of routes in the table";
+
+ uses bgp-adj-rib-key-refs;
+
+ container state {
+ description
+ "Operational state data for BGP Adj-RIB entries";
+
+ leaf prefix {
+ type oc-inet:ipv6-prefix;
+ description
+ "Prefix for the route";
+ }
+
+ uses bgp-adj-rib-attr-state;
+ uses bgp-adj-rib-common-attr-refs;
+ uses bgp-common-route-annotations-state;
+ uses bgp-adj-rib-in-post-route-annotations-state;
+ }
+
+ uses bgp-unknown-attr-top;
+ }
+ }
+ }
+
+ grouping ipv6-adj-rib-top {
+ description
+ "Top-level grouping for Adj-RIB table";
+
+ container neighbors {
+ config false;
+ description
+ "Enclosing container for neighbor list";
+
+ list neighbor {
+ key "neighbor-address";
+ description
+ "List of neighbors (peers) of the local BGP speaker";
+
+ leaf neighbor-address {
+ type leafref {
+ path "../state/neighbor-address";
+ }
+ description
+ "Reference to the list key";
+ }
+
+ container state {
+ description
+ "Operational state for each neighbor BGP Adj-RIB";
+
+ leaf neighbor-address {
+ type oc-inet:ip-address;
+ description
+ "IP address of the BGP neighbor or peer";
+ }
+ }
+
+ container adj-rib-in-pre {
+ description
+ "Per-neighbor table containing the NLRI updates
+ received from the neighbor before any local input
+ policy rules or filters have been applied. This can
+ be considered the 'raw' updates from the neighbor.";
+
+ uses ipv6-adj-rib-common;
+
+ }
+
+ container adj-rib-in-post {
+ description
+ "Per-neighbor table containing the paths received from
+ the neighbor that are eligible for best-path selection
+ after local input policy rules have been applied.";
+
+ uses ipv6-adj-rib-in-post;
+ }
+
+ container adj-rib-out-pre {
+ description
+ "Per-neighbor table containing paths eligble for
+ sending (advertising) to the neighbor before output
+ policy rules have been applied";
+
+ uses ipv6-adj-rib-common;
+
+ }
+
+ container adj-rib-out-post {
+ description
+ "Per-neighbor table containing paths eligble for
+ sending (advertising) to the neighbor after output
+ policy rules have been applied";
+
+ uses ipv6-adj-rib-common;
+
+ }
+ }
+ }
+ }
+
+ grouping ipvX-srte-policy-adjrib-top {
+ description
+ "Top-level grouping for the IPv4 and IPv6 AFI, SR-TE Policy SAFI
+ Adj-RIBs.";
+
+ container neighbors {
+ description
+ "Surrounding container for the list of neighbours that are
+ enabled for the IPv4 and IPv6 AFI, SR-TE Policy SAFI address
+ family.";
+
+ list neighbor {
+ key "neighbor-address";
+
+ description
+ "An individual neighbour that is enabled for the SR-TE
+ Policy SAFI.";
+
+ leaf neighbor-address {
+ type leafref {
+ path "../state/neighbor-address";
+ }
+ description
+ "Reference to the address of the neighbour for which the
+ Adj-RIBs specified are maintained.";
+ }
+
+ container state {
+ description
+ "Operational state parameters of the BGP neighbour for
+ which the SR-TE Policy SAFI is enabled.";
+ uses ipvX-srte-policy-adjrib-neighbor-state;
+ }
+
+ container adj-rib-in-pre {
+ description
+ "The Adj-RIB-In for the SR-TE Policy SAFI for the neighbour,
+ prior to any inbound policy constraints or modifications
+ having been applied.";
+ uses ipvX-srte-policy-adjrib-common;
+ }
+
+ container adj-rib-in-post {
+ description
+ "The Adj-RIB-In for the SR-TE Policy SAFI for the neighbour,
+ following any inbound policy constraints or modifications
+ being made.";
+ uses ipvX-srte-policy-adjrib-in-post;
+ }
+
+ container adj-rib-out-pre {
+ description
+ "The Adj-RIB-Out for the SR-TE Policy SAFI for the neighbour,
+ prior to any outgoing policy modifications or constraints
+ having been applied.";
+ uses ipvX-srte-policy-adjrib-common;
+ }
+
+ container adj-rib-out-post {
+ description
+ "The Adj-RIB-Out for the SR-TE Policy SAFI for the neighbour,
+ follow any outbound policy constraints or modifications being
+ made.";
+ uses ipvX-srte-policy-adjrib-common;
+ }
+ }
+ }
+ }
+
+ grouping ipvX-srte-policy-adjrib-neighbor-state {
+ description
+ "Common attributes for each neighbour for which the SR-TE
+ Policy SAFI RIBs are being maintained.";
+
+ leaf neighbor-address {
+ description
+ "The address of the neighbour for which the SR-TE policy
+ SAFI has been negotiated.";
+ type oc-inet:ip-address;
+ }
+ }
+
+ grouping ipvX-srte-policy-adjrib-common {
+ description
+ "Common structure containing the routes that are learnt via
+ the IPv4 or IPv6 SR-TE Policy SAFI.";
+
+ container routes {
+ description
+ "Surrounding container for the list of routes within the
+ SR-TE Policy SAFI.";
+
+ list route {
+ key "path-id endpoint color";
+
+ description
+ "The routes within the SR-TE Policy SAFI Adj-RIB. The
+ routes are keyed on the path-id - set to a non-zero
+ value only if ADD-PATHS is being used; the color; and
+ the endpoint. The colour and endpoint are extracted from
+ the NLRI.";
+
+ uses ipvX-srte-policy-common-keys;
+
+ container state {
+ description
+ "State parameters for entries within the Adj-RIB used
+ to store SR-TE Policy SAFI routes.";
+
+ uses ipvX-srte-policy-common-route-state;
+ uses bgp-adj-rib-common-attr-refs;
+ uses bgp-common-route-annotations-state;
+ }
+
+ uses bgp-unknown-attr-top;
+ }
+ }
+ }
+
+ grouping ipvX-srte-policy-common-route-state {
+ description
+ "Common attributes used SR-TE Policy SAFI routes.";
+
+ leaf path-id {
+ type uint32;
+ default 0;
+ description
+ "Identifier for the path when using BGP ADD-PATHS for the SR-TE
+ policy SAFI.";
+ }
+
+ leaf endpoint {
+ type oc-inet:ip-address;
+ description
+ "A unique identifier for the remote set of nodes. When the address
+ family is IPv4, the value is a 4-octet IPv4 address. When the
+ address family is IPv6, the value is a 16-octet IPv6 address.";
+ }
+
+ leaf color {
+ type uint32;
+ description
+ "A 4-octet value identifying the policy. Combined with the endpoint
+ the endpoint and colour represent the unique policy.";
+ }
+ }
+
+ grouping ipvX-srte-policy-common-keys {
+ description
+ "Common grouping of the keys used for lists of SR-TE policy
+ SAFI routes.";
+
+ leaf path-id {
+ type leafref {
+ path "../state/path-id";
+ }
+ description
+ "Reference to the path identifier for the SR-TE Policy SAFI
+ route. The value is only non-zero if ADD-PATHS is not being
+ used.";
+ }
+
+ leaf endpoint {
+ type leafref {
+ path "../state/endpoint";
+ }
+ description
+ "Reference to the endpoint used for the SR-TE Policy SAFI
+ route within the NLRI.";
+ }
+
+ leaf color {
+ type leafref {
+ path "../state/color";
+ }
+ description
+ "Reference to the colour used for the SR-TE policy SAFI
+ route within the NLRI.";
+ }
+ }
+
+ grouping ipvX-srte-policy-adjrib-in-post {
+ description
+ "Grouping for the post-policy Adj-RIB-In for SR-TE Policy SAFI routes";
+
+ container routes {
+ description
+ "The set of routes that are within the Adj-RIB-Out for the
+ neighbour.";
+
+ list route {
+ key "path-id endpoint color";
+
+ description
+ "The routes that are in the Adj-RIB-In-Post for the specified
+ BGP neighbour within the SR-TE Policy SAFI for the specified
+ address family.";
+
+ uses ipvX-srte-policy-common-keys;
+
+ container state {
+ description
+ "Operational state attributes related to the route within
+ the SR-TE Policy SAFI Adj-RIB-In-Post for the specified
+ neighbour.";
+
+ uses ipvX-srte-policy-common-route-state;
+ uses bgp-adj-rib-common-attr-refs;
+ uses bgp-common-route-annotations-state;
+ uses bgp-adj-rib-in-post-route-annotations-state;
+ }
+
+ uses bgp-unknown-attr-top;
+ }
+ }
+ }
+
+ grouping ipvX-srte-policy-locrib-top {
+ description
+ "Top-level grouping for the Loc-RIB for IPv4 or IPv6 Adj-RIB
+ for SR-TE Policy SAFI.";
+
+ container loc-rib {
+ description
+ "The Loc-RIB for the SR-TE Policy SAFI for IPv4 or IPv6 Unicast
+ AFIs.";
+
+ container routes {
+ description
+ "List of routes within the SR-TE Policy SAFI, for the IPv4 or
+ IPv6 AFI.";
+
+ list route {
+ key "path-id endpoint color";
+
+ description
+ "Route within the specified address family for the SR-TE
+ Policy SAFI.";
+
+ uses ipvX-srte-policy-common-keys;
+
+ container state {
+ description
+ "Operational state attributes for each route within the
+ IPv4 or IPv6 Unicast SR-TE Policy SAFI.";
+
+ uses ipvX-srte-policy-common-route-state;
+ uses bgp-loc-rib-common-attr-refs;
+ uses bgp-common-route-annotations-state;
+ }
+
+ uses bgp-unknown-attr-top;
+ }
+ }
+ }
+ }
+}