summaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-telemetry.yang
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-telemetry.yang')
-rw-r--r--src/plugins/yang/openconfig/openconfig-telemetry.yang771
1 files changed, 0 insertions, 771 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-telemetry.yang b/src/plugins/yang/openconfig/openconfig-telemetry.yang
deleted file mode 100644
index de26ec3..0000000
--- a/src/plugins/yang/openconfig/openconfig-telemetry.yang
+++ /dev/null
@@ -1,771 +0,0 @@
-module openconfig-telemetry {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/telemetry";
-
- prefix "oc-telemetry";
-
- // import some basic types
- import openconfig-inet-types { prefix oc-inet; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-telemetry-types { prefix oc-telemetry-types; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group www.openconfig.net";
-
- description
- "Data model which creates the configuration for the telemetry
- systems and functions on the device.";
-
- oc-ext:openconfig-version "0.5.0";
-
- revision "2018-08-17" {
- description
- "Update telemetry model to comply with the OpenConfig
- style for lists and their containers. Remove subscription
- exclusions.";
- reference "0.5.0";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes";
- reference "0.4.1";
- }
-
- revision "2017-02-20" {
- description
- "Fixes for YANG 1.0 compliance, add types module";
- reference "0.4.0";
- }
-
- revision "2016-04-05" {
- description
- "OpenConfig public release";
- reference "0.2.0";
- }
-
- grouping telemetry-top {
- description
- "Top level grouping for telemetry configuration and operational
- state data";
-
- container telemetry-system {
- description
- "Top level configuration and state for the
- device's telemetry system.";
-
- container sensor-groups {
- description
- "Top level container for sensor-groups.";
-
- list sensor-group {
- key "sensor-group-id";
- description
- "List of telemetry sensory groups on the local
- system, where a sensor grouping represents a resuable
- grouping of multiple paths and exclude filters.";
-
- leaf sensor-group-id {
- type leafref {
- path "../config/sensor-group-id";
- }
- description
- "Reference to the name or identifier of the
- sensor grouping";
- }
-
- container config {
- description
- "Configuration parameters relating to the
- telemetry sensor grouping";
- uses telemetry-sensor-group-config;
- }
-
- container state {
- config false;
- description
- "State information relating to the telemetry
- sensor group";
- uses telemetry-sensor-group-config;
- }
-
- container sensor-paths {
- description
- "Top level container to hold a set of sensor
- paths grouped together";
-
- list sensor-path {
- key "path";
- description
- "List of paths in the model which together
- comprise a sensor grouping. Filters for each path
- to exclude items are also provided.";
-
- leaf path {
- type leafref {
- path "../config/path";
- }
- description
- "Reference to the path of interest";
- }
-
- container config {
- description
- "Configuration parameters to configure a set
- of data model paths as a sensor grouping";
- uses telemetry-sensor-path-config;
- }
-
- container state {
- config false;
- description
- "Configuration parameters to configure a set
- of data model paths as a sensor grouping";
- uses telemetry-sensor-path-config;
- }
- }
- }
- }
- }
-
- container destination-groups {
- description
- "Top level container for destination group configuration
- and state.";
-
- list destination-group {
- key "group-id";
- description
- "List of destination-groups. Destination groups allow the
- reuse of common telemetry destinations across the
- telemetry configuration. An operator references a
- set of destinations via the configurable
- destination-group-identifier.
-
- A destination group may contain one or more telemetry
- destinations";
-
- leaf group-id {
- type leafref {
- path "../config/group-id";
- }
- description
- "Unique identifier for the destination group";
- }
-
- container config {
- description
- "Top level config container for destination groups";
- leaf group-id {
- type string;
- description
- "Unique identifier for the destination group";
- }
- }
-
- container state {
- config false;
- description
- "Top level state container for destination groups";
-
- leaf group-id {
- type string;
- description
- "Unique identifier for destination group";
- }
- }
-
- container destinations {
- description
- "The destination container lists the destination
- information such as IP address and port of the
- telemetry messages from the network element.";
- list destination {
- key "destination-address destination-port";
- description
- "List of telemetry stream destinations";
-
- leaf destination-address {
- type leafref {
- path "../config/destination-address";
- }
- description
- "Reference to the destination address of the
- telemetry stream";
- }
-
- leaf destination-port {
- type leafref {
- path "../config/destination-port";
- }
- description
- "Reference to the port number of the stream
- destination";
- }
-
- container config {
- description
- "Configuration parameters relating to
- telemetry destinations";
- uses telemetry-stream-destination-config;
- }
-
- container state {
- config false;
- description
- "State information associated with
- telemetry destinations";
- uses telemetry-stream-destination-config;
- }
- }
- }
- }
- }
-
- container subscriptions {
- description
- "This container holds information for both persistent
- and dynamic telemetry subscriptions.";
-
- container persistent-subscriptions {
- description
- "This container holds information relating to persistent
- telemetry subscriptions. A persistent telemetry
- subscription is configued locally on the device through
- configuration, and is persistent across device restarts or
- other redundancy changes.";
-
- list persistent-subscription {
- key "name";
-
- description
- "List of telemetry subscriptions. A telemetry
- subscription consists of a set of collection
- destinations, stream attributes, and associated paths to
- state information in the model (sensor data)";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to the identifier of the subscription
- itself. The id will be the handle to refer to the
- subscription once created";
- }
-
- container config {
- description
- "Config parameters relating to the telemetry
- subscriptions on the local device";
-
- uses telemetry-subscription-name-config;
- uses telemetry-local-source-address-config;
- uses telemetry-qos-marking-config;
- uses telemetry-stream-protocol-config;
- uses telemetry-stream-encoding-config;
- }
-
- container state {
- config false;
- description
- "State parameters relating to the telemetry
- subscriptions on the local device";
-
- uses telemetry-subscription-name-config;
- uses telemetry-subscription-config;
- uses telemetry-subscription-state;
- uses telemetry-local-source-address-config;
- uses telemetry-qos-marking-config;
- uses telemetry-stream-protocol-config;
- uses telemetry-stream-encoding-config;
- }
-
- container sensor-profiles {
- description
- "A sensor profile is a set of sensor groups or
- individual sensor paths which are associated with a
- telemetry subscription. This is the source of the
- telemetry data for the subscription to send to the
- defined collectors.";
- list sensor-profile {
- key "sensor-group";
- description
- "List of telemetry sensor groups used
- in the subscription";
-
- leaf sensor-group {
- type leafref {
- path "../config/sensor-group";
- }
- description
- "Reference to the telemetry sensor group name";
- }
-
- container config {
- description
- "Configuration parameters related to the sensor
- profile for a subscription";
- uses telemetry-sensor-profile-config;
- }
-
- container state {
- config false;
- description
- "State information relating to the sensor profile
- for a subscription";
- uses telemetry-sensor-profile-config;
- }
- }
- }
-
- container destination-groups {
- description
- "A subscription may specify destination addresses.
- If the subscription supplies destination addresses,
- the network element will be the initiator of the
- telemetry streaming, sending it to the destination(s)
- specified.
-
- If the destination set is omitted, the subscription
- preconfigures certain elements such as paths and
- sample intervals under a specified subscription ID.
- In this case, the network element will NOT initiate an
- outbound connection for telemetry, but will wait for
- an inbound connection from a network management
- system.
-
- It is expected that the network management system
- connecting to the network element will reference
- the preconfigured subscription ID when initiating
- a subscription.";
-
- list destination-group {
- key "group-id";
- description
- "Identifier of the previously defined destination
- group";
-
- leaf group-id {
- type leafref {
- path "../config/group-id";
- }
- description
- "The destination group id references a configured
- group of destinations for the telemetry stream.";
- }
-
- container config {
- description
- "Configuration parameters related to telemetry
- destinations.";
-
- leaf group-id {
- type leafref {
- path "../../../../../../../destination-groups"
- + "/destination-group/group-id";
- }
- description
- "The destination group id references a reusable
- group of destination addresses and ports for
- the telemetry stream.";
- }
- }
-
- container state {
- config false;
- description
- "State information related to telemetry
- destinations";
-
- leaf group-id {
- type leafref {
- path "../../../../../../../destination-groups"
- + "/destination-group/group-id";
- }
- description
- "The destination group id references a reusable
- group of destination addresses and ports for
- the telemetry stream.";
- }
- }
- }
- }
- }
- }
-
- container dynamic-subscriptions {
- description
- "This container holds information relating to dynamic
- telemetry subscriptions. A dynamic subscription is
- typically configured through an RPC channel, and does not
- persist across device restarts, or if the RPC channel is
- reset or otherwise torn down.";
-
-
- list dynamic-subscription {
- key "id";
-
- config false;
- description
- "List representation of telemetry subscriptions that
- are configured via an inline RPC, otherwise known
- as dynamic telemetry subscriptions.";
-
- leaf id {
- type leafref {
- path "../state/id";
- }
-
- description
- "Reference to the identifier of the subscription
- itself. The id will be the handle to refer to the
- subscription once created";
- }
-
- container state {
- config false;
- description
- "State information relating to dynamic telemetry
- subscriptions.";
-
- uses telemetry-subscription-config;
- uses telemetry-stream-destination-config;
- uses telemetry-stream-frequency-config;
- uses telemetry-heartbeat-config;
- uses telemetry-suppress-redundant-config;
- uses telemetry-qos-marking-config;
- uses telemetry-stream-protocol-config;
- uses telemetry-stream-encoding-config;
- }
-
- container sensor-paths {
- description
- "Top level container to hold a set of sensor
- paths grouped together";
-
- list sensor-path {
- key "path";
- description
- "List of paths in the model which together
- comprise a sensor grouping. Filters for each path
- to exclude items are also provided.";
-
- leaf path {
- type leafref {
- path "../state/path";
- }
- description
- "Reference to the path of interest";
- }
-
- container state {
- config false;
- description
- "State information for a dynamic subscription's
- paths of interest";
- uses telemetry-sensor-path-config;
- }
- }
- }
- }
- }
- }
- }
- }
-
- // identity statements
-
- // typedef statements
-
- // grouping statements
-
- grouping telemetry-sensor-path-config {
- description
- "Configuration parameters relating to the
- grouping of data model paths comprising a
- sensor grouping";
- leaf path {
- type string;
- description
- "Path to a section of operational state of interest
- (the sensor).";
- }
-
- leaf exclude-filter {
- type string;
- description
- "Filter to exclude certain values out of the state
- values";
- //May not be necessary. Could remove.
- }
- }
-
- grouping telemetry-heartbeat-config {
- description
- "Configuration parameters relating to the
- heartbeat of the telemetry subscription";
- leaf heartbeat-interval {
- type uint64;
- description
- "Maximum time interval in seconds that may pass
- between updates from a device to a telemetry collector.
- If this interval expires, but there is no updated data to
- send (such as if suppress_updates has been configured), the
- device must send a telemetry message to the collector.";
- }
- }
-
- grouping telemetry-suppress-redundant-config {
- description
- "Configuration parameters relating to suppression of
- redundant upstream updates";
- leaf suppress-redundant {
- type boolean;
- description
- "Boolean flag to control suppression of redundant
- telemetry updates to the collector platform. If this flag is
- set to TRUE, then the collector will only send an update at
- the configured interval if a subscribed data value has
- changed. Otherwise, the device will not send an update to
- the collector until expiration of the heartbeat interval.";
- }
- }
-
- grouping telemetry-sensor-profile-config {
- description
- "Configuration parameters relating to the sensor groups
- used in the sensor profile";
- leaf sensor-group {
- type leafref {
- path "../../../../../../../sensor-groups/sensor-group"
- + "/config/sensor-group-id";
- }
- description
- "Reference to the sensor group which is used in the profile";
- }
- uses telemetry-stream-subscription-config;
- }
-
- grouping telemetry-stream-subscription-config {
- description
- "Configuration used when the sensor is a stream based sensor.";
-
- uses telemetry-stream-frequency-config;
- uses telemetry-heartbeat-config;
- uses telemetry-suppress-redundant-config;
-
- }
-
- grouping telemetry-qos-marking-config {
- description
- "Config parameters relating to the quality of service
- marking on device generated telemetry packets";
-
- leaf originated-qos-marking {
- type oc-inet:dscp;
- description
- "DSCP marking of packets generated by the telemetry
- subsystem on the network device.";
- }
- }
-
-
- grouping telemetry-sensor-group-config {
- description
- "Config parameters related to the sensor groups
- on the device";
- leaf sensor-group-id {
- type string;
- description
- "Name or identifier for the sensor group itself.
- Will be referenced by other configuration specifying a
- sensor group";
- }
- }
-
- grouping telemetry-subscription-config {
- description
- "Configuration parameters relating to the telemetry
- subscription";
-
- leaf id {
- type uint64;
- description
- "System generated identifer of the telemetry
- subscription.";
- }
- }
-
- grouping telemetry-subscription-name-config {
- description
- "Configuration parameters relating to the configured
- name of the telemetry subscription. The name is a user
- configured string value which uniquely identifies the
- subscription in the configuration database.";
-
- leaf name {
- type string;
- description
- "User configured identifier of the telemetry
- subscription. This value is used primarily for
- subscriptions configured locally on the network
- element.";
- }
- }
-
- grouping telemetry-subscription-state {
- description
- "State values for the telemetry subscription";
- //TODO add values
- }
-
- grouping telemetry-stream-protocol-config {
- description
- "Configuration parameters relating to the
- transport protocol carrying telemetry
- data.";
-
- leaf protocol {
- type identityref {
- base oc-telemetry-types:STREAM_PROTOCOL;
- }
- description
- "Selection of the transport protocol for the telemetry
- stream.";
- }
- }
-
- grouping telemetry-stream-encoding-config {
- description
- "Configuration parameters relating to the
- encoding of telemetry data to and from the
- network element. The encoding method controls
- specifically the wire format of the telemetry
- data, and also controls which RPC framework
- may be in use to exchange telemetry data.";
-
- leaf encoding {
- type identityref {
- base oc-telemetry-types:DATA_ENCODING_METHOD;
- }
- description
- "Selection of the specific encoding or RPC framework
- for telemetry messages to and from the network element.";
- }
- }
-
- grouping telemetry-stream-destination-config {
- description
- "Configuration parameters for the stream destinations";
- leaf destination-address {
- type oc-inet:ip-address;
- description
- "IP address of the telemetry stream destination";
- }
- leaf destination-port {
- type uint16;
- description
- "Protocol (udp or tcp) port number for the telemetry
- stream destination";
- }
- }
-
- grouping telemetry-stream-frequency-config {
- description
- "Config parameters for the frequency of updates to
- the collector";
- leaf sample-interval {
- type uint64;
- description
- "Time in milliseconds between the device's sample of a
- telemetry data source. For example, setting this to 100
- would require the local device to collect the telemetry
- data every 100 milliseconds. There can be latency or jitter
- in transmitting the data, but the sample must occur at
- the specified interval.
-
- The timestamp must reflect the actual time when the data
- was sampled, not simply the previous sample timestamp +
- sample-interval.
-
- If sample-interval is set to 0, the telemetry sensor
- becomes event based. The sensor must then emit data upon
- every change of the underlying data source.";
- }
- }
-
- grouping telemetry-sensor-specification {
- description
- "Config related to creating telemetry sensor groups. A sensor
- group is a related set of sensor paths and/or filters to
- exclude items. A group is assigned a reusable identifer, so
- it can be used in multiple telemetry subscriptions.";
- list telemetry-sensor-group {
- key "telemetry-sensor-group-id";
- description
- "List of telemetry sensor groups";
-
- leaf telemetry-sensor-group-id {
- type string;
- description
- "The sensor group identifer is a reusable handle which
- identifies a single sensor group. It is referenced from
- the subscription configuration.";
- }
- uses telemetry-sensor-paths;
- }
- }
-
- grouping telemetry-sensor-paths {
- description
- "This grouping contains these paths to leaves or containers
- in the data model which are the sources of telemetry
- information.";
-
- list telemetry-sensor-paths {
- key "telemetry-sensor-path";
- description
- "A list of sensor paths and exclude filters which comprise
- a sensor grouping";
-
- leaf telemetry-sensor-path {
- type string;
- description
- "The sensor path is a path to a portion of operational
- state of interest in the data model";
- }
- }
- }
-
-
- grouping telemetry-local-source-address-config {
- description
- "Config relating to the local source address for telemetry
- messages";
- // TODO: Make this a reference to an interface.
- leaf local-source-address {
- type oc-inet:ip-address;
- description
- "The IP address which will be the source of packets from
- the device to a telemetry collector destination.";
- }
- }
-
- // data definition statements
-
- uses telemetry-top;
-
- // augment statements
-
- // rpc statements
-
- // notification statements
-
-}