| module openconfig-rib-bgp { |
| |
| yang-version "1"; |
| |
| // namespace |
| namespace "http://openconfig.net/yang/rib/bgp"; |
| |
| prefix "oc-rib-bgp"; |
| |
| // import some basic types |
| import openconfig-bgp-types { prefix oc-bgpt; } |
| import openconfig-extensions { prefix oc-ext; } |
| |
| // include RIB submodules |
| |
| // structure for LOC-RIB and Adj-RIB tables |
| include openconfig-rib-bgp-tables; |
| |
| // structure of shared attribute groups |
| include openconfig-rib-bgp-shared-attributes; |
| |
| // groupings of attributes in three categories: |
| // - shared across multiple routes |
| // - common to LOC-RIB and Adj-RIB, but not shared across routes |
| // - specific to LOC-RIB or Adj-RIB |
| include openconfig-rib-bgp-attributes; |
| |
| // groupings of annotations for each route or table |
| include openconfig-rib-bgp-table-attributes; |
| |
| // meta |
| organization "OpenConfig working group"; |
| |
| contact |
| "OpenConfig working group |
| www.openconfig.net"; |
| |
| description |
| "Defines a data model for representing BGP routing table (RIB) |
| contents. The model supports 5 logical RIBs per address family: |
| |
| loc-rib: This is the main BGP routing table for the local routing |
| instance, containing best-path selections for each prefix. The |
| loc-rib table may contain multiple routes for a given prefix, |
| with an attribute to indicate which was selected as the best |
| path. Note that multiple paths may be used or advertised even if |
| only one path is marked as best, e.g., when using BGP |
| add-paths. An implementation may choose to mark multiple |
| paths in the RIB as best path by setting the flag to true for |
| multiple entries. |
| |
| adj-rib-in-pre: This is a 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 a given neighbor. |
| |
| adj-rib-in-post: This is a per-neighbor table containing the |
| routes received from the neighbor that are eligible for |
| best-path selection after local input policy rules have been |
| applied. |
| |
| adj-rib-out-pre: This is a per-neighbor table containing routes |
| eligible for sending (advertising) to the neighbor before output |
| policy rules have been applied. |
| |
| adj-rib-out-post: This is a per-neighbor table containing routes |
| eligible for sending (advertising) to the neighbor after output |
| policy rules have been applied."; |
| |
| oc-ext:openconfig-version "0.3.0"; |
| |
| revision "2016-10-17" { |
| description |
| "OpenConfig BGP RIB refactor"; |
| reference "0.3.0"; |
| } |
| |
| revision "2016-04-11" { |
| description |
| "OpenConfig public release"; |
| reference "0.2.0"; |
| } |
| |
| |
| |
| // grouping statements |
| |
| |
| |
| grouping bgp-rib-state { |
| description |
| "Operational state data for the top level BGP RIB"; |
| |
| leaf afi-safi-name { |
| type identityref { |
| base oc-bgpt:AFI_SAFI_TYPE; |
| } |
| description "AFI,SAFI"; |
| } |
| } |
| |
| grouping bgp-rib-top { |
| description |
| "Top-level grouping for the BGP RIB"; |
| |
| container bgp-rib { |
| config false; |
| description |
| "Top level container for BGP RIBs"; |
| |
| uses attribute-sets-top; |
| uses community-sets-top; |
| uses ext-community-sets-top; |
| |
| container afi-safis { |
| config false; |
| description |
| "Enclosing container for address family list"; |
| |
| list afi-safi { |
| key "afi-safi-name"; |
| description |
| "list of afi-safi types"; |
| |
| leaf afi-safi-name { |
| type leafref { |
| path "../state/afi-safi-name"; |
| } |
| description |
| "Reference to the list key"; |
| } |
| |
| container state { |
| config false; |
| description |
| "Operational state data for the BGP list"; |
| |
| uses bgp-rib-state; |
| } |
| |
| container ipv4-unicast { |
| when "../afi-safi-name = 'oc-bgpt:IPV4_UNICAST'" { |
| description |
| "Include this container for IPv4 unicast RIB"; |
| } |
| description |
| "Routing tables for IPv4 unicast -- active when the |
| afi-safi name is ipv4-unicast"; |
| |
| uses ipv4-loc-rib-top; |
| uses ipv4-adj-rib-top; |
| } |
| |
| container ipv6-unicast { |
| when "../afi-safi-name = 'oc-bgpt:IPV6_UNICAST'" { |
| description |
| "Include this container for IPv6 unicast RIB"; |
| } |
| description |
| "Routing tables for IPv6 unicast -- active when the |
| afi-safi name is ipv6-unicast"; |
| |
| uses ipv6-loc-rib-top; |
| uses ipv6-adj-rib-top; |
| } |
| } |
| } |
| } |
| } |
| |
| |
| // data definition statements |
| |
| uses bgp-rib-top; |
| |
| // augment statements |
| |
| |
| // rpc statements |
| |
| // notification statements |
| |
| } |