summaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-bfd.yang
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-bfd.yang')
-rw-r--r--src/plugins/yang/openconfig/openconfig-bfd.yang738
1 files changed, 0 insertions, 738 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-bfd.yang b/src/plugins/yang/openconfig/openconfig-bfd.yang
deleted file mode 100644
index fc573e5..0000000
--- a/src/plugins/yang/openconfig/openconfig-bfd.yang
+++ /dev/null
@@ -1,738 +0,0 @@
-module openconfig-bfd {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/bfd";
-
- prefix "oc-bfd";
-
- // import some basic types
- import openconfig-extensions { prefix "ocext"; }
- import openconfig-types { prefix "oc-types"; }
- import openconfig-interfaces { prefix "oc-if"; }
- import openconfig-inet-types { prefix "oc-inet"; }
- import openconfig-if-types { prefix "oc-ift"; }
- import openconfig-network-instance { prefix "oc-ni"; }
- import openconfig-policy-types { prefix "oc-pol-types"; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "An OpenConfig model of Bi-Directional Forwarding Detection (BFD)
- configuration and operational state.";
-
- ocext:openconfig-version "0.1.0";
-
- revision "2017-11-17" {
- description
- "Update version number for initial sharing.";
- reference "0.1.0";
- }
-
- revision "2017-10-19" {
- description
- "Adopt OpenConfig types models, type corrections";
- reference "0.0.2";
- }
-
- revision "2016-06-24" {
- description
- "Initial revision";
- reference "0.0.1";
- }
-
- typedef bfd-session-state {
- type enumeration {
- enum UP {
- description
- "The BFD session is perceived to be up by the system.";
- }
- enum DOWN {
- description
- "The BFD session is perceived to be down by the system.";
- }
- enum ADMIN_DOWN {
- description
- "The BFD session is administratively disabled.";
- }
- enum INIT {
- description
- "The BFD session is perceived to be initialising by the
- system.";
- }
- }
- description
- "The state of the BFD session according to the system referred
- to by the context of the leaf.";
- reference
- "RFC5880 - Bidirectional Forwarding Detection, Section
- 4.1";
- }
-
- typedef bfd-diagnostic-code {
- type enumeration {
- enum NO_DIAGNOSTIC {
- value 0;
- description
- "No diagnostic code was specified, or the session has not
- changed state.";
- }
- enum DETECTION_TIMEOUT {
- value 1;
- description
- "The control detection time expired: no BFD packet was
- received within the required period.";
- }
- enum ECHO_FAILED {
- value 2;
- description
- "The BFD echo function failed - echo packets have not been
- received for the required period of time.";
- }
- enum FORWARDING_RESET {
- value 3;
- description
- "The forwarding plane in the local system was reset - such
- that the remote system cannot rely on the forwarding state of
- the device specifying this error code.";
- }
- enum PATH_DOWN {
- value 4;
- description
- "Signalling outside of BFD specified that the path underlying
- this session has failed.";
- }
- enum CONCATENATED_PATH_DOWN {
- value 5;
- description
- "When a BFD session runs over a series of path segments, this
- error code indicates that a subsequent path segment (i.e.,
- one in the transmit path between the source and destination
- of the session) has failed.";
- }
- enum ADMIN_DOWN {
- value 6;
- description
- "The BFD session has been administratively disabled by the
- peer.";
- }
- enum REVERSE_CONCATENATED_PATH_DOWN {
- value 7;
- description
- "In the case that a BFD session is running over a series of
- path segments, this error code indicates that a path segment
- on the reverse path (i.e., in the transmit direction from the
- destination to the source of the session) has failed.";
- }
- }
- description
- "Diagnostic codes defined by BFD. These typically indicate the
- reason for a change of session state.";
- reference
- "RFC5880 - Bidirectional Forwarding Detection, Section
- 4.1";
- }
-
-
- grouping bfd-interface-config {
- description
- "Top-level per-interface configuration parameters for BFD.";
-
- leaf id {
- type string;
- description
- "A unique identifier for the interface.";
- }
-
- leaf enabled {
- type boolean;
- description
- "When this leaf is set to true then the BFD session is enabled
- on the specified interface - if it is set to false, it is
- administratively disabled.";
- }
-
- leaf local-address {
- type oc-inet:ip-address;
- description
- "The source IP address to be used for BFD sessions over this
- interface.";
- }
-
- leaf desired-minimum-tx-interval {
- type uint32;
- units microseconds;
- description
- "The minimum interval between transmission of BFD control
- packets that the operator desires. This value is advertised to
- the peer, however the actual interval used is specified by
- taking the maximum of desired-minimum-tx-interval and the
- value of the remote required-minimum-receive interval value.
-
- This value is specified as an integer number of microseconds.";
- }
-
- leaf required-minimum-receive {
- type uint32;
- units microseconds;
- description
- "The minimum interval between received BFD control packets that
- this system should support. This value is advertised to the
- remote peer to indicate the maximum frequency (i.e., minimum
- inter-packet interval) between BFD control packets that is
- acceptable to the local system.";
- }
-
- // rjs: Could have required-minimum-echo-receive here, but this is
- // generally not configurable.
-
- leaf detection-multiplier {
- type uint16 {
- range "1..max";
- }
- description
- "The number of packets that must be missed to declare this
- session as down. The detection interval for the BFD session
- is calculated by multiplying the value of the negotiated
- transmission interval by this value.";
- }
-
- leaf enable-per-member-link {
- type boolean;
- default false;
- description
- "When this leaf is set to true - BFD will be enabled on
- each member interface of the aggregated Ethernet bundle.";
-
- when "/oc-if:interfaces/oc-if:interface" +
- "[name=current()/../../interface-ref/config/interface]/" +
- "oc-if:state/oc-if:type = 'oc-ift:IF_AGGREGATE'" {
- description
- "Include per-member link BFD only when the type of
- interface is a link aggregate.";
- }
- }
- }
-
- grouping bfd-interface-state {
- // placeholder
- description
- "Operational state parameters relating to BFD running on an
- interface.";
- }
-
- grouping bfd-session-state-mode-timers-common {
- description
- "Common operational state parameters that are re-used across
- both asynchronous and echo modes of BFD.";
-
- leaf last-packet-transmitted {
- type uint64;
- description
- "The date and time at which the last BFD packet
- was transmitted for this session, expressed as the number
- of nanoseconds since the Unix Epoch (January 1, 1970,
- 00:00 UTC).";
- }
-
- leaf last-packet-received {
- type uint64;
- description
- "The date and time at which the last BFD packet
- was received for this session, expressed as the number
- of nanoseconds since the Unix Epoch (January 1, 1970,
- 00:00 UTC).";
- }
-
- leaf transmitted-packets {
- // TODO: looks to be unsupported on JUNOS
- type uint64;
- description
- "The number of packets that have been transmitted
- by the local system.";
- }
-
- leaf received-packets {
- // TODO: looks to be unsupported on JUNOS
- type uint64;
- description
- "The number of packets that have been received by the
- local system from the remote neighbour.";
- }
-
- leaf up-transitions {
- // TODO: looks to only be supported in SROS
- type uint64;
- description
- "The number of times that the adjacency with the neighbor
- has transitioned into the up state.";
- }
- }
-
- grouping bfd-session-state-sessiondetails-common {
- description
- "Common session details for a BFD session.";
-
- leaf session-state {
- type bfd-session-state;
- description
- "The state of the BFD session perceived by the local system.";
-
- }
-
- leaf remote-session-state {
- type bfd-session-state;
- description
- "The reported state of the BFD session according to the remote
- system. This state reflects the last state reported in a BFD
- control packet.";
- }
-
- leaf last-failure-time {
- type oc-types:timeticks64;
- description
- "The time of the last transition of the BFD session out of
- the UP state, expressed as the number of nanoseconds since
- the Unix epoch.";
- }
-
- leaf failure-transitions {
- type uint64;
- description
- "The number of times that the BFD session has transitioned
- out of the UP state.";
- }
-
- leaf local-discriminator {
- type string;
- description
- "A unique identifier used by the local system to identify this
- BFD session.";
- }
-
- leaf remote-discriminator {
- type string;
- description
- "A unique identified used by the remote system to identify this
- BFD session.";
- }
-
- leaf local-diagnostic-code {
- type bfd-diagnostic-code;
- description
- "The local BFD diagnostic code indicating the most recent
- reason for failure of this BFD session.";
- }
-
- leaf remote-diagnostic-code {
- type bfd-diagnostic-code;
- description
- "The remote BFD diagnostic code indicating the remote system's
- reason for failure of the BFD session";
- }
-
- leaf remote-minimum-receive-interval {
- type uint32;
- description
- "The value of the minimum receive interval that was specified
- in the most recent BFD control packet received from the peer.";
- }
-
- leaf demand-mode-requested {
- type boolean;
- description
- "This leaf is set to true when the remote system has requested
- demand mode be run for this session.";
- }
-
- leaf remote-authentication-enabled {
- type boolean;
- description
- "This leaf is set to true when the remote system has specified
- that authentication is present for the BFD session.";
- }
-
- leaf remote-control-plane-independent {
- type boolean;
- description
- "This leaf is set to true when the remote system has specified
- that the hardware implementing this BFD session is independent
- of the control plane's liveliness.";
- }
- }
-
-
- grouping bfd-session-state-async-common {
- description
- "Common parameters for asynchronous BFD sessions";
-
- container async {
- description
- "Operational state parameters specifically relating to
- asynchronous mode of BFD.";
-
- uses bfd-session-state-mode-timers-common;
- }
- }
-
- grouping bfd-session-state-echo-common {
- description
- "Common parameters for echo-mode BFD sessions.";
-
- container echo {
- description
- "Operational state parameters specifically relating to the
- echo mode of BFD.";
-
- leaf active {
- type boolean;
- description
- "This leaf is set to true when echo mode is running between
- the local and remote system. When it is set to false, solely
- asynchronous mode is active.";
- }
-
- uses bfd-session-state-mode-timers-common;
- }
- }
-
-
- grouping bfd-session-state-common {
- description
- "Common operational state parameters that may be re-used across
- multiple BFD session contexts.";
-
- leaf local-address {
- type oc-inet:ip-address;
- description
- "The IP address used by the local system for this BFD session.";
- }
-
- leaf remote-address {
- type oc-inet:ip-address;
- description
- "The IP address used by the remote system for this BFD session.";
- }
-
- leaf-list subscribed-protocols {
- type identityref {
- base "oc-pol-types:INSTALL_PROTOCOL_TYPE";
- }
- description
- "Indicates the set of protocols that currently use
- this BFD session for liveliness detection.";
- }
-
- uses bfd-session-state-sessiondetails-common;
- uses bfd-session-state-echo-common;
- uses bfd-session-state-async-common;
- }
-
- grouping bfd-session-microbfd-common {
- description
- "BFD session parameters utilised only for micro-BFD sessions.";
-
- uses bfd-session-state-sessiondetails-common;
- uses bfd-session-state-async-common;
- }
-
- grouping bfd-interface-peer-state {
- description
- "Per-peer, per-interface operational state parameters for BFD.";
-
- uses bfd-session-state-common;
- }
-
- grouping bfd-interface-microbfd-config {
- description
- "Configuration parameters for a microBFD session on an
- interface.";
-
- leaf local-address {
- type oc-inet:ip-address;
- description
- "The local IP address used by the system for the micro-BFD session
- specified.";
- }
-
- leaf remote-address {
- type oc-inet:ip-address;
- description
- "The remote IP destination that should be used by the system for
- the micro-BFD session specified.";
- }
-
- leaf member-interface {
- type leafref {
- path "/oc-if:interfaces/" +
- "oc-if:interface/oc-if:config/oc-if:name";
- }
- // rjs: Note that this does not restrict to only interfaces that
- // are part of the current LAG. An implementation should return
- // NOK if such an interface is specified.
- description
- "Reference to a member link of the aggregate interface being
- described.";
- }
- }
-
- grouping bfd-interface-microbfd-state {
- description
- "Operational state parameters relating to a micro-BFD session on
- an interface.";
-
- uses bfd-session-microbfd-common;
- }
-
- grouping bfd-interface-microbfd-structural {
- description
- "Structural grouping for micro-bfd configuration and state
- parameters.";
-
- container micro-bfd-sessions {
- description
- "Parameters relating to micro-BFD sessions associated
- with the interface.";
-
- list micro-bfd-session {
- description
- "This list contains configuration and state parameters
- relating to micro-BFD session.";
- reference
- "RFC7130 - Bidirectional Forwarding Detection (BFD)
- on Link Aggregation Group (LAG) Interfaces.";
-
- key "member-interface";
-
- leaf member-interface {
- type leafref {
- path "../config/member-interface";
- }
- description
- "A reference to the member interface of the link
- aggregate.";
- }
-
- container config {
- description
- "Configuration parameters for the micro-BFD session.";
- uses bfd-interface-microbfd-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters for the micro-BFD session.";
- uses bfd-interface-microbfd-config;
- uses bfd-interface-microbfd-state;
- }
- }
- when "/oc-if:interfaces/oc-if:interface" +
- "[name=current()/../interface-ref/config/interface]/" +
- "oc-if:state/oc-if:type = 'oc-ift:IF_AGGREGATE'" {
- description
- "Include per-member link BFD only when the type of
- interface is a link aggregate.";
- }
- }
- }
-
- grouping bfd-interface-peer-structural {
- description
- "Structural grouping for BFD peers (in the context of an interface).";
-
- container peers {
- description
- "Parameters relating to the BFD peers which are seen
- over this interface.";
-
- list peer {
- key "local-discriminator";
- config false;
-
- description
- "Parameters relating to the BFD peer specified by the
- remote address.";
-
- leaf local-discriminator {
- type leafref {
- path "../state/local-discriminator";
- }
- description
- "The local discriminator, which is unique for the
- session on the system.";
- }
-
- container state {
- config false;
- description
- "Operational state parameters for the BFD session.";
-
- uses bfd-interface-peer-state;
- }
- }
- }
- }
-
- grouping bfd-top {
- description
- "Structural grouping for Bidirectional Forwarding Detection (BFD).";
-
- container bfd {
- description
- "Configuration and operational state parameters for BFD.";
- reference "RFC5880, RFC5881";
-
- container interfaces {
- description
- "Interfaces on which BFD sessions are to be enabled.";
-
- list interface {
- key "id";
-
- description
- "Per-interface configuration and state parameters for BFD.";
-
- leaf id {
- type leafref {
- path "../config/id";
- }
- description
- "A reference to an identifier for the interface on which
- BFD is enabled.";
- }
-
- container config {
- description
- "Configuration parameters for BFD on the specified
- interface.";
- uses bfd-interface-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters for BFD on the specified
- interface.";
- uses bfd-interface-config;
- uses bfd-interface-state;
- }
-
- uses oc-if:interface-ref;
-
- uses bfd-interface-microbfd-structural;
- uses bfd-interface-peer-structural;
- }
- }
- }
- }
-
- grouping enable-bfd-config {
- description
- "Configuration parameters relating to enabling BFD.";
-
- leaf enabled {
- type boolean;
- description
- "When this leaf is set to true, BFD is used to detect the
- liveliness of the remote peer or next-hop.";
- }
- }
-
- grouping enable-bfd-state {
- description
- "Operational state parameters relating to enabling BFD.";
-
- leaf associated-session {
- // TODO: this is a leafref to something unique, but seems
- // like it might be expensive for the NMS to find out since
- // it will need to cycle through all interfaces looking for
- // the associated local-discriminator.
- type leafref {
- path "/bfd/interfaces/interface/peers/peer/local-discriminator";
- }
- description
- "A reference to the BFD session that is tracking the liveliness
- of the remote entity.";
- }
-
- //
- // A fix to the above is to have the following leaf to show which
- // interface is associated.
- //
- // leaf associated-interface {
- // type leafref {
- // path "/bfd/interfaces/interface/config/id";
- // }
- // }
- }
-
- grouping bfd-enable {
- description
- "Grouping which can be included in a protocol wishing to enable
- BFD.";
-
- container enable-bfd {
- description
- "Enable BFD for liveliness detection to the next-hop or
- neighbour.";
-
- container config {
- description
- "Configuration parameters relating to enabling BFD.";
-
- uses enable-bfd-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to enabing BFD.";
-
- uses enable-bfd-config;
- uses enable-bfd-state;
- }
- }
- }
-
- // rjs - TODO - should these be specified within each model? The
- // answer here is probably yes, since otherwise openconfig
- // network-instance ends up with a circular reference.
- augment "/oc-ni:network-instances/oc-ni:network-instance/" +
- "oc-ni:protocols/oc-ni:protocol/oc-ni:bgp/" +
- "oc-ni:neighbors/oc-ni:neighbor" {
- description
- "Augment the BGP routing protocol to add a link to BFD for
- neighbour detection.";
-
- uses bfd-enable;
- }
-
- augment "/oc-ni:network-instances/oc-ni:network-instance/" +
- "oc-ni:protocols/oc-ni:protocol/oc-ni:bgp/" +
- "oc-ni:peer-groups/oc-ni:peer-group" {
- description
- "Augment the BGP routing protocol to add a link to BFD for
- neighbor detection when specified within a peer-group.";
-
- uses bfd-enable;
- }
-
- augment "/oc-ni:network-instances/oc-ni:network-instance/" +
- "oc-ni:protocols/oc-ni:protocol/oc-ni:static-routes/" +
- "oc-ni:static/oc-ni:next-hops/oc-ni:next-hop" {
- description
- "Augment the static route configuration to allow a next-hop
- to be tracked by BFD.";
-
- uses bfd-enable;
- }
-
- uses bfd-top;
-}