aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-bgp-neighbor.yang
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-bgp-neighbor.yang')
-rw-r--r--src/plugins/yang/openconfig/openconfig-bgp-neighbor.yang704
1 files changed, 704 insertions, 0 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-bgp-neighbor.yang b/src/plugins/yang/openconfig/openconfig-bgp-neighbor.yang
new file mode 100644
index 0000000..f7ae33b
--- /dev/null
+++ b/src/plugins/yang/openconfig/openconfig-bgp-neighbor.yang
@@ -0,0 +1,704 @@
+submodule openconfig-bgp-neighbor {
+
+ belongs-to openconfig-bgp {
+ prefix "oc-bgp";
+ }
+
+ import openconfig-extensions { prefix oc-ext; }
+ import openconfig-routing-policy { prefix oc-rpol; }
+ import openconfig-types { prefix oc-types; }
+ import openconfig-bgp-types { prefix oc-bgp-types; }
+ import openconfig-inet-types { prefix oc-inet; }
+ import openconfig-yang-types { prefix oc-yang; }
+
+ // Include the common submodule
+ include openconfig-bgp-common;
+ include openconfig-bgp-common-multiprotocol;
+ include openconfig-bgp-peer-group;
+ include openconfig-bgp-common-structure;
+
+ // meta
+ organization
+ "OpenConfig working group";
+
+ contact
+ "OpenConfig working group
+ netopenconfig@googlegroups.com";
+
+ description
+ "This sub-module contains groupings that are specific to the
+ neighbor context of the OpenConfig BGP module.";
+
+ oc-ext:openconfig-version "5.0.1";
+
+ revision "2018-08-20" {
+ description
+ "Correct description of AFI-SAFI enabled leaf.";
+ reference "5.0.1";
+ }
+
+ revision "2018-04-11" {
+ description
+ "Correct naming of BGP maximum prefix warning percentage leaf.";
+ reference "5.0.0";
+ }
+
+ revision "2018-03-20" {
+ description
+ "Added SR-TE policy SAFI";
+ reference "4.1.0";
+ }
+
+ revision "2017-07-30" {
+ description
+ "Clarification of add-paths send-max leaf";
+ reference "4.0.1";
+ }
+
+ revision "2017-07-10" {
+ description
+ "Add error notifications; moved add-paths config; add AS
+ prepend policy features; removed unneeded config leaves";
+ reference "4.0.0";
+ }
+
+ revision "2017-02-02" {
+ description
+ "Bugfix to remove remaining global-level policy data";
+ reference "3.0.1";
+ }
+
+ revision "2017-01-26" {
+ description
+ "Add dynamic neighbor support, migrate to OpenConfig types";
+ reference "3.0.0";
+ }
+
+ revision "2016-06-21" {
+ description
+ "OpenConfig BGP refactor";
+ reference "2.1.1";
+ }
+
+ grouping bgp-neighbor-config {
+ description
+ "Configuration parameters relating to a base BGP neighbor that
+ are not also applicable to any other context
+ (e.g., peer group)";
+
+ leaf peer-group {
+ type leafref {
+ path "../../../../peer-groups/peer-group/peer-group-name";
+ }
+ description
+ "The peer-group with which this neighbor is associated";
+ }
+
+ leaf neighbor-address {
+ type oc-inet:ip-address;
+ description
+ "Address of the BGP peer, either in IPv4 or IPv6";
+ }
+
+ leaf enabled {
+ type boolean;
+ default true;
+ description
+ "Whether the BGP peer is enabled. In cases where the
+ enabled leaf is set to false, the local system should not
+ initiate connections to the neighbor, and should not
+ respond to TCP connections attempts from the neighbor. If
+ the state of the BGP session is ESTABLISHED at the time
+ that this leaf is set to false, the BGP session should be
+ ceased.";
+ }
+ }
+
+ grouping bgp-neighbor-use-multiple-paths {
+ description
+ "Multipath configuration and state applicable to a BGP
+ neighbor";
+
+ container use-multiple-paths {
+ description
+ "Parameters related to the use of multiple-paths for the same
+ NLRI when they are received only from this neighbor";
+
+ container config {
+ description
+ "Configuration parameters relating to multipath";
+ uses bgp-common-use-multiple-paths-config;
+ }
+ container state {
+ config false;
+ description
+ "State parameters relating to multipath";
+ uses bgp-common-use-multiple-paths-config;
+ }
+
+ container ebgp {
+ description
+ "Multipath configuration for eBGP";
+ container config {
+ description
+ "Configuration parameters relating to eBGP multipath";
+ uses bgp-common-use-multiple-paths-ebgp-as-options-config;
+ }
+ container state {
+ config false;
+ description
+ "State information relating to eBGP multipath";
+ uses bgp-common-use-multiple-paths-ebgp-as-options-config;
+ }
+ }
+ }
+ }
+
+ grouping bgp-neighbor-state {
+ description
+ "Operational state parameters relating only to a BGP neighbor";
+
+ leaf session-state {
+ type enumeration {
+ enum IDLE {
+ description
+ "neighbor is down, and in the Idle state of the
+ FSM";
+ }
+ enum CONNECT {
+ description
+ "neighbor is down, and the session is waiting for
+ the underlying transport session to be established";
+ }
+ enum ACTIVE {
+ description
+ "neighbor is down, and the local system is awaiting
+ a conncetion from the remote peer";
+ }
+ enum OPENSENT {
+ description
+ "neighbor is in the process of being established.
+ The local system has sent an OPEN message";
+ }
+ enum OPENCONFIRM {
+ description
+ "neighbor is in the process of being established.
+ The local system is awaiting a NOTIFICATION or
+ KEEPALIVE message";
+ }
+ enum ESTABLISHED {
+ description
+ "neighbor is up - the BGP session with the peer is
+ established";
+ }
+ }
+ description
+ "Operational state of the BGP peer";
+ }
+
+ leaf last-established {
+ type oc-types:timeticks64;
+ description
+ "This timestamp indicates the time that the
+ BGP session last transitioned in or out of the Established
+ state. The value is the timestamp in seconds relative to
+ the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
+
+ The BGP session uptime can be computed by clients as the
+ difference between this value and the current time in UTC
+ (assuming the session is in the ESTABLISHED state, per the
+ session-state leaf).";
+ }
+
+ leaf established-transitions {
+ type oc-yang:counter64;
+ description
+ "Number of transitions to the Established state for
+ the neighbor session. This value is analogous to the
+ bgpPeerFsmEstablishedTransitions object from the standard
+ BGP-4 MIB";
+ reference
+ "RFC 4273 - Definitions of Managed Objects for BGP-4";
+ }
+
+ leaf-list supported-capabilities {
+ type identityref {
+ base oc-bgp-types:BGP_CAPABILITY;
+ }
+ description
+ "BGP capabilities negotiated as supported with the peer";
+ }
+
+ container messages {
+ description
+ "Counters for BGP messages sent and received from the
+ neighbor";
+ container sent {
+ description
+ "Counters relating to BGP messages sent to the neighbor";
+ uses bgp-neighbor-counters-message-types-state;
+ }
+
+ container received {
+ description
+ "Counters for BGP messages received from the neighbor";
+ uses bgp-neighbor-counters-message-types-state;
+ }
+ }
+
+ container queues {
+ description
+ "Counters related to queued messages associated with the
+ BGP neighbor";
+ uses bgp-neighbor-queue-counters-state;
+ }
+
+ leaf dynamically-configured {
+ type boolean;
+ default false;
+ description
+ "When this leaf is set to true, the peer was configured dynamically
+ due to an inbound connection request from a specified source prefix
+ within a dynamic-neighbor-prefix.";
+ }
+ }
+
+ grouping bgp-neighbor-counters-message-types-state {
+ description
+ "Grouping of BGP message types, included for re-use
+ across counters";
+
+ leaf UPDATE {
+ type uint64;
+ description
+ "Number of BGP UPDATE messages announcing, withdrawing
+ or modifying paths exchanged.";
+ }
+
+ leaf NOTIFICATION {
+ type uint64;
+ description
+ "Number of BGP NOTIFICATION messages indicating an
+ error condition has occurred exchanged.";
+ }
+
+ leaf last-notification-time {
+ type oc-types:timeticks64;
+ description
+ "This timestamp indicates the time that a NOTIFICATION
+ message was sent or received on the peering session
+ (based on whether this leaf is associated with
+ sent or received messages).
+
+ The value is the timestamp in seconds relative to
+ the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
+ }
+
+ leaf last-notification-error-code {
+ type identityref {
+ base oc-bgp-types:BGP_ERROR_CODE;
+ }
+ description
+ "Indicates the last BGP error sent or received on the peering
+ session (based on whether this leaf is associated with
+ sent or received messages).";
+ }
+
+ leaf last-notification-error-subcode {
+ type identityref {
+ base oc-bgp-types:BGP_ERROR_SUBCODE;
+ }
+ description
+ "Indicates the last BGP error subcode sent or received on
+ the peering session (based on whether this leaf is associated
+ with sent or received messages)";
+ }
+ }
+
+ grouping bgp-neighbor-queue-counters-state {
+ description
+ "Counters relating to the message queues associated with the
+ BGP peer";
+
+ leaf input {
+ type uint32;
+ description
+ "The number of messages received from the peer currently
+ queued";
+ }
+
+ leaf output {
+ type uint32;
+ description
+ "The number of messages queued to be sent to the peer";
+ }
+ }
+
+ grouping bgp-neighbor-transport-state {
+ description
+ "Operational state parameters relating to the transport session
+ used for the BGP session";
+
+ leaf local-port {
+ type oc-inet:port-number;
+ description
+ "Local TCP port being used for the TCP session supporting
+ the BGP session";
+ }
+
+ leaf remote-address {
+ type oc-inet:ip-address;
+ description
+ "Remote address to which the BGP session has been
+ established";
+ }
+
+ leaf remote-port {
+ type oc-inet:port-number;
+ description
+ "Remote port being used by the peer for the TCP session
+ supporting the BGP session";
+ }
+ }
+
+ grouping bgp-neighbor-error-handling-state {
+ description
+ "Operational state parameters relating to enhanced error
+ error handling for BGP";
+
+ leaf erroneous-update-messages {
+ type uint32;
+ description
+ "The number of BGP UPDATE messages for which the
+ treat-as-withdraw mechanism has been applied based
+ on erroneous message contents";
+ }
+ }
+
+ grouping bgp-neighbor-timers-state {
+ description
+ "Operational state parameters relating to BGP timers associated
+ with the BGP session";
+
+ leaf negotiated-hold-time {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ description
+ "The negotiated hold-time for the BGP session";
+ }
+ }
+
+ grouping bgp-neighbor-afi-safi-graceful-restart-state {
+ description
+ "Operational state variables relating to the graceful-restart
+ mechanism on a per-AFI-SAFI basis";
+
+ leaf received {
+ type boolean;
+ description
+ "This leaf indicates whether the neighbor advertised the
+ ability to support graceful-restart for this AFI-SAFI";
+ }
+
+ leaf advertised {
+ type boolean;
+ description
+ "This leaf indicates whether the ability to support
+ graceful-restart has been advertised to the peer";
+ }
+ }
+
+ grouping bgp-neighbor-graceful-restart-state {
+ description
+ "Operational state information relevant to graceful restart
+ for BGP";
+
+ leaf peer-restart-time {
+ type uint16 {
+ range 0..4096;
+ }
+ description
+ "The period of time (advertised by the peer) that
+ the peer expects a restart of a BGP session to
+ take";
+ }
+
+ leaf peer-restarting {
+ type boolean;
+ description
+ "This flag indicates whether the remote neighbor is currently
+ in the process of restarting, and hence received routes are
+ currently stale";
+ }
+
+ leaf local-restarting {
+ type boolean;
+ description
+ "This flag indicates whether the local neighbor is currently
+ restarting. The flag is unset after all NLRI have been
+ advertised to the peer, and the End-of-RIB (EOR) marker has
+ been unset";
+ }
+
+ leaf mode {
+ type enumeration {
+ enum HELPER_ONLY {
+ description
+ "The local router is operating in helper-only mode, and
+ hence will not retain forwarding state during a local
+ session restart, but will do so during a restart of the
+ remote peer";
+ }
+ enum BILATERAL {
+ description
+ "The local router is operating in both helper mode, and
+ hence retains forwarding state during a remote restart,
+ and also maintains forwarding state during local session
+ restart";
+ }
+ enum REMOTE_HELPER {
+ description
+ "The local system is able to retain routes during restart
+ but the remote system is only able to act as a helper";
+ }
+ }
+ description
+ "Ths leaf indicates the mode of operation of BGP graceful
+ restart with the peer";
+ }
+ }
+
+ grouping bgp-neighbor-afi-safi-state {
+ description
+ "Operational state parameters relating to an individual AFI,
+ SAFI for a neighbor";
+
+ leaf active {
+ type boolean;
+ description
+ "This value indicates whether a particular AFI-SAFI has
+ been succesfully negotiated with the peer. An AFI-SAFI
+ may be enabled in the current running configuration, but a
+ session restart may be required in order to negotiate the new
+ capability.";
+ }
+
+ container prefixes {
+ description "Prefix counters for the BGP session";
+ leaf received {
+ type uint32;
+ description
+ "The number of prefixes received from the neighbor";
+ }
+
+ leaf sent {
+ type uint32;
+ description
+ "The number of prefixes advertised to the neighbor";
+ }
+
+ leaf installed {
+ type uint32;
+ description
+ "The number of advertised prefixes installed in the
+ Loc-RIB";
+ }
+ }
+ }
+
+ grouping bgp-neighbor-afi-safi-list {
+ description
+ "List of address-families associated with the BGP neighbor";
+
+ list afi-safi {
+ key "afi-safi-name";
+
+ description
+ "AFI,SAFI configuration available for the
+ neighbour or group";
+
+
+ leaf afi-safi-name {
+ type leafref {
+ path "../config/afi-safi-name";
+ }
+ description
+ "Reference to the AFI-SAFI name used as a key
+ for the AFI-SAFI list";
+ }
+
+ container config {
+ description
+ "Configuration parameters for the AFI-SAFI";
+ uses bgp-common-mp-afi-safi-config;
+ }
+ container state {
+ config false;
+ description
+ "State information relating to the AFI-SAFI";
+ uses bgp-common-mp-afi-safi-config;
+ uses bgp-neighbor-afi-safi-state;
+ }
+
+
+ container graceful-restart {
+ description
+ "Parameters relating to BGP graceful-restart";
+ container config {
+ description
+ "Configuration options for BGP graceful-restart";
+ uses bgp-common-mp-afi-safi-graceful-restart-config;
+ }
+ container state {
+ config false;
+ description
+ "State information for BGP graceful-restart";
+ uses bgp-common-mp-afi-safi-graceful-restart-config;
+ uses bgp-neighbor-afi-safi-graceful-restart-state;
+ }
+ }
+
+ uses bgp-common-structure-neighbor-group-add-paths;
+ uses bgp-common-mp-all-afi-safi-list-contents;
+ uses bgp-neighbor-use-multiple-paths;
+ }
+ }
+
+ grouping bgp-neighbor-base {
+ description
+ "Parameters related to a BGP neighbor";
+
+ container config {
+ description
+ "Configuration parameters relating to the BGP neighbor or
+ group";
+ uses bgp-neighbor-config;
+ uses bgp-common-neighbor-group-config;
+ }
+ container state {
+ config false;
+ description
+ "State information relating to the BGP neighbor";
+ uses bgp-neighbor-config;
+ uses bgp-common-neighbor-group-config;
+ uses bgp-neighbor-state;
+ }
+
+ container timers {
+ description
+ "Timers related to a BGP neighbor";
+ container config {
+ description
+ "Configuration parameters relating to timers used for the
+ BGP neighbor";
+ uses bgp-common-neighbor-group-timers-config;
+ }
+ container state {
+ config false;
+ description
+ "State information relating to the timers used for the BGP
+ neighbor";
+ uses bgp-common-neighbor-group-timers-config;
+ uses bgp-neighbor-timers-state;
+ }
+ }
+
+ container transport {
+ description
+ "Transport session parameters for the BGP neighbor";
+ container config {
+ description
+ "Configuration parameters relating to the transport
+ session(s) used for the BGP neighbor";
+ uses bgp-common-neighbor-group-transport-config;
+ }
+ container state {
+ config false;
+ description
+ "State information relating to the transport session(s)
+ used for the BGP neighbor";
+ uses bgp-common-neighbor-group-transport-config;
+ uses bgp-neighbor-transport-state;
+ }
+ }
+
+ container error-handling {
+ description
+ "Error handling parameters used for the BGP neighbor or
+ group";
+ container config {
+ description
+ "Configuration parameters enabling or modifying the
+ behavior or enhanced error handling mechanisms for the BGP
+ neighbor";
+ uses bgp-common-neighbor-group-error-handling-config;
+ }
+ container state {
+ config false;
+ description
+ "State information relating to enhanced error handling
+ mechanisms for the BGP neighbor";
+ uses bgp-common-neighbor-group-error-handling-config;
+ uses bgp-neighbor-error-handling-state;
+ }
+ }
+
+ container graceful-restart {
+ description
+ "Parameters relating the graceful restart mechanism for BGP";
+ container config {
+ description
+ "Configuration parameters relating to graceful-restart";
+ uses bgp-common-graceful-restart-config;
+ }
+ container state {
+ config false;
+ description
+ "State information associated with graceful-restart";
+ uses bgp-common-graceful-restart-config;
+ uses bgp-neighbor-graceful-restart-state;
+ }
+ }
+
+ uses bgp-common-structure-neighbor-group-logging-options;
+ uses bgp-common-structure-neighbor-group-ebgp-multihop;
+ uses bgp-common-structure-neighbor-group-route-reflector;
+ uses bgp-common-structure-neighbor-group-as-path-options;
+ uses bgp-neighbor-use-multiple-paths;
+ uses oc-rpol:apply-policy-group;
+
+ container afi-safis {
+ description
+ "Per-address-family configuration parameters associated with
+ the neighbor";
+ uses bgp-neighbor-afi-safi-list;
+ }
+ }
+
+ grouping bgp-neighbor-list {
+ description
+ "The list of BGP neighbors";
+
+ list neighbor {
+ key "neighbor-address";
+ description
+ "List of BGP neighbors configured on the local system,
+ uniquely identified by peer IPv[46] address";
+
+ leaf neighbor-address {
+ type leafref {
+ path "../config/neighbor-address";
+ }
+ description
+ "Reference to the address of the BGP neighbor used as
+ a key in the neighbor list";
+ }
+
+ uses bgp-neighbor-base;
+ }
+
+ }
+
+
+}