Commits (4)
syntax = "proto3";
package an_epon_pm_onu_local_info;
message EponPmOnuLocalInfos {
message EponPmOnuLocalInfo {
///The name of ONU.
string name = 1;
//The optical power received by the OLT transceiver.The unit is 0.01dBm.
int32 olt_rx_power = 2;
//The ONU online time.The unit is second.
uint32 online_duration = 3;
//The last offline time of ONU.It is timestamp format.
uint32 last_down_time = 4;
//The reason for last offline of ONU.
uint32 last_down_cause = 5;
//The ONU status.(1-online,2-offline,255-invalid).
uint32 onu_status = 6;
}
repeated EponPmOnuLocalInfo epon_pm_onu_local_info = 1;
}
syntax = "proto3";
package an_gpon_pm_onu_line_quality;
message GponPmOnuLineQualitys {
message GponPmOnuLineQuality {
//The name of ONU.
string name = 1;
//The number of Loss of Frame of ONU indication (LOFi, Loss of Frame of ONU indication) alarms of the OLT for the ONU. GPON ONU is valid, XGPON ONU does not support.
uint32 lofi_alarm_count = 2;
//The number of drift window (DOWi, Drift of Window of ONU) alarms after the ONU is started by the OLT. GPON/XGPON ONU valid.
uint32 dowi_alarm_count = 3;
//The number of uplink frame delimitation errors after the ONU goes online. GPON ONU is valid, XGPON ONU does not support.
uint32 upstream_delimiter_error_count = 4;
//After the ONU is started, the number of Bit-interleaved parity errors in the upstream frame. GPON/XGPON ONU is valid.
uint64 upstream_bip_error_count = 5;
//After the ONU is started, the number of Bit-interleaved parity errors in the downstream frame. GPON ONU is valid, XGPON ONU does not support.
uint64 downstream_bip_error_count = 6;
//Number of corrected blocks in upstream FEC (forward error correction) decoding.
uint64 upstream_fec_block = 7;
// Number of uncorrected blocks in upstream FEC (forward error correction) decoding.
uint64 upstream_fec_error_block = 8;
//The total number of corrected blocks in upstream FEC (forward error correction) decoding.
uint64 upstream_fec_total_block = 9;
//Upstream FEC correction bytes. GPON/XGPON ONU is valid.
uint64 upstream_fec_byte = 10;
//Upstream HEC (Header Error Code) error times. GPON/XGPON ONU is valid.
uint64 upstream_hec_error_count = 11;
//Number of upstream GEM frames.
uint64 upstream_gem_count = 12;
//Number of ONU LOSi (loss of signal) alarms.
uint32 losi_alarm_count = 13;
//Number of ONU DGi (Dying Gasp) alarms.
uint32 dgi_alarm_count = 14;
}
repeated GponPmOnuLineQuality gpon_pm_onu_line_quality = 1;
}
syntax = "proto3";
package an_gpon_pm_onu_local_info;
message GponPmOnuLocalInfos {
message GponPmOnuLocalInfo {
//The name of ONU.
string name = 1;
//The optical power received by the OLT transceiver.The unit is 0.01dBm.
int32 olt_rx_power = 2;
//The ONU online time.The unit is second.
uint32 online_duration = 3;
//The last offline time of ONU.It is timestamp format.
uint32 last_down_time = 4;
//The reason for last offline of ONU.
uint32 last_down_cause = 5;
//The ONU status.(1-online,2-offline,255-invalid).
uint32 onu_status = 6;
}
repeated GponPmOnuLocalInfo gpon_pm_onu_local_info = 1;
}
syntax = "proto3";
package an_epon_pm_onu_remote_info;
message EponPmOnuRemoteInfos {
message EponPmOnuRemoteInfo {
//The name of ONU.
string name = 1;
//Memory utilization of ONU.The unit is %.
uint32 mem_occup = 2;
//CPU utilization of ONU.The unit is %.
uint32 cpu_occup = 3;
//CPU temperature of ONU.The unit is ℃.
int32 cpu_temp = 4;
//Number of packets sent by the ONU PON port.
uint64 onu_pon_send_packets = 5;
//Number of packets received by the ONU PON port.
uint64 onu_pon_recv_packets = 6;
//Number of error packets received by the ONU PON port.
uint64 onu_pon_recv_errors_packets = 7;
}
repeated EponPmOnuRemoteInfo epon_pm_onu_remote_info = 1;
}
syntax = "proto3";
package an_gpon_onu_transceivers;
message GponOnuTransceivers {
message GponOnuTransceiver {
//The name of ONU.
string name = 1;
//Received optical power.The unit is 0.01dBm.
int32 optical_unit_rx_power = 2;
//Transmit optical power.The unit is 0.01dBm.
int32 optical_unit_tx_power = 3;
//The current bias of the port.The unit is 0.01mA.
int32 optical_unit_laser_bias_current = 4;
//The current temperature of the optical module.The unit is 0.01℃.
int32 optical_unit_temperature = 5;
//The current voltage of the optical module.The unit is 0.01V.
int32 optical_unit_voltage = 6;
// Optical module type.(0:unknown,1:gpon,2:xg-pon,3:xgs-pon,4:gpon-and-xgpon,5:gpon-and-xgspon,-1:invalid)
int32 module_type = 7;
//Optical module subtype.
string module_sub_type = 8;
}
repeated GponOnuTransceiver gpon_onu_transceiver = 1;
}
syntax = "proto3";
package an_gpon_pm_onu_remote_info;
message GponPmOnuRemoteInfos {
message GponPmOnuRemoteInfo {
//The name of ONU.
string name = 1;
//Number of downstream FEC (forward error correction) corrected bytes.
uint64 ds_fec_corrected_bytes = 2;
//Number of downstream FEC corrected words.
uint64 ds_fec_corrected_words = 3;
//Number of downstream FEC uncorrected words.
uint64 ds_fec_uncorrected_words = 4;
//The total number of downstream received code words.
uint64 ds_total_rx_code_words = 5;
//Downstream FEC correction time.
uint32 ds_fec_seconds = 6;
//Number of GEM HEC errors received by ONU.
uint64 xgpon_gem_hec_error_count = 7;
//Number of discarded XG-PON GEM frames
uint64 xgpon_gem_key_error_count = 8;
//Memory utilization of ONU.The unit is %.
uint32 mem_occup = 9;
//CPU utilization of ONU.The unit is %.
uint32 cpu_occup = 10;
//CPU temperature of ONU.The unit is ℃.
int32 cpu_temp = 11;
//Number of packets sent by the ONU PON port.
uint64 onu_pon_send_packets = 12;
//Number of packets received by the ONU PON port.
uint64 onu_pon_recv_packets = 13;
//Number of error packets received by the ONU PON port.
uint64 onu_pon_recv_errors_packets = 14;
//Number of packets discarded in all TCONT queues of the ONU.
uint64 tcont_queue_dropped_packets = 15;
//Number of packets forwarded in all TCONT queues of the ONU.
uint64 tcont_queue_passing_packets = 16;
}
repeated GponPmOnuRemoteInfo gpon_pm_onu_remote_info = 1;
}
syntax = "proto3";
package an_gpon_olt_transceivers;
message GponOltTransceivers {
message GponOltTransceiver {
//The name of GPON port.
string name = 1;
//Optical module temperature.The uint is 0.01℃.
int32 temperature = 2;
//Type of channel 1. The unit is 0.01V.
int32 supply_voltage = 3;
//Type of channel 1.
int32 channel_1_type = 4;
//Current transmit bias of channel 1.The unit is 0.01mA.
int32 channel_1_tx_bias = 5;
//Transmit power of channel 1.The unit is 0.01dBm.
int32 channel_1_tx_power = 6;
//Optical power at idle time of channel 1.The unit is 0.01dBm.
int32 channel_1_idle_rssi = 7;
//Type of channel 2.
int32 channel_2_type = 8;
//Current transmit bias of channel 2.The unit is 0.01mA.
int32 channel_2_tx_bias = 9;
//Transmit power of channel 2.The unit is 0.01dBm.
int32 channel_2_tx_power = 10;
//Optical power at idle time of channel 2.The unit is 0.01dBm.
int32 channel_2_idle_rssi = 11;
//Optical module type.(0:unknown,1:gpon,2:xg-pon,3:xgs-pon,4:gpon-and-xgpon,5:gpon-and-xgspon,-1:invalid)
int32 module_type = 12;
//Optical module subtype
string module_sub_type = 13;
}
repeated GponOltTransceiver gpon_olt_transceiver = 1;
}
syntax = "proto3";
package an_bb_queue_kpi;
message QueueKpiRecords {
message QueueKpiRecord {
//Port name
string name = 1;
//Channel number of the port
string channel = 2;
//The index of the queue,which range is from 0 to 7.
uint32 index = 3;
//Number of bytes forwarded by the queue.
uint64 pass_bytes = 4;
//Number of packets forwarded by the queue.
uint64 pass_packets = 5;
//Number of packets discarded (red traffic) by the queue.
uint64 drop_packets = 6;
//Number of bytes of green traffic forwarded by the queue.
uint64 pass_green_bytes = 7;
//Number of packets of green traffic forwarded by the queue.
uint64 pass_green_packets = 8;
//Number of packets of green traffic discarded by the queue.
uint64 drop_green_packets = 9;
//Number of bytes of yellow traffic forwarded by the queue.
uint64 pass_yellow_bytes = 10;
//Number of packets of yellow traffic forwarded by the queue.
uint64 pass_yellow_packets = 11;
//Number of packets of yellow traffic discarded by the queue.
uint64 drop_yellow_packets = 12;
}
repeated QueueKpiRecord queue_kpi_record = 1;
}
syntax = "proto3";
package an_bb_service_flow_kpi;
message ServiceFlowKpiRecords {
message ServiceFlowKpiRecord {
//The name of service flow which means a flow identified by a VLAN ID
string name = 1;
//The total number of packets dropped by the queue in the downstream direction.
uint64 downstream_flow_drop_cnt = 2;
//The total number of packets passed through the queue in the downstream direction.
uint64 downstream_flow_pass_cnt = 3;
//The maximum number of packets drop in a second-level queue in the downstream direction.
uint32 downstream_flow_drop_max = 4;
//The minimum number of packets drop in a second-level queue in the downstream direction.
uint32 downstream_flow_drop_min = 5;
//The maximum packet loss rate in seconds in the downstream queue.The unit is 10^-5.
uint32 downstream_flow_drop_rate_max = 6;
//The minimum packet loss rate in seconds in the downstream queue.The unit is 10^-5.
uint32 downstream_flow_drop_rate_min = 7;
//The minimum packet loss rate of the queue in the downstream direction in seconds.
uint32 downstream_flow_drop_seconds_cnt = 8;
//The average rate in the downlink direction.
uint64 downstream_flow_pass_bytes = 9;
//The average rate in the downlink direction.
uint32 downstream_mfr_avg = 10;
//Bytes passed by the queue in the upstream direction.
uint64 upstream_pass_bytes = 11;
//The total number of packets passed by the queue in the upstream direction.
uint64 upstream_pass_cnt = 12;
//The total number of packets dropped by the queue in the upstream direction.
uint64 upstream_drop_cnt = 13;
}
repeated ServiceFlowKpiRecord service_flow_kpi_record = 1;
}
syntax = "proto3";
package an_epon_pm_onu_traffic;
message EponPmOnuTraffics {
message EponPmOnuTraffic {
//The name of ONU.
string name = 1;
//Average transmit rate of the ONU.The unit is kbps.
uint32 tx_rate = 2;
//Average receive rate of the ONU.The unit is kbps.
uint32 rx_rate = 3;
//Peak transmit rate of the ONU in seconds,The unit is kbps
uint32 tx_peak_rate = 4;
//Peak receive rate of the port in seconds.The unit is kbps
uint32 rx_peak_rate = 5;
}
repeated EponPmOnuTraffic epon_pm_onu_traffic = 1;
}
syntax = "proto3";
package an_gpon_pm_onu_traffic;
message GponPmOnuTraffics {
message GponPmOnuTraffic {
//The name of ONU.
string name = 1;
//Average transmit rate of the ONU.The unit is kbps.
uint32 tx_rate = 2;
//Average receive rate of the ONU.The unit is kbps.
uint32 rx_rate = 3;
//Peak transmit rate of the ONU in seconds,The unit is kbps
uint32 tx_peak_rate = 4;
//Peak receive rate of the port in seconds.The unit is kbps
uint32 rx_peak_rate = 5;
}
repeated GponPmOnuTraffic gpon_pm_onu_traffic = 1;
}
\ No newline at end of file
module an-inet-types {
yang-version "1.1";
namespace "urn:an:yang:an-inet-types";
prefix "an-inet";
description
"This module contains a set of Internet address related
types for use in access network modules.
Portions of this code were derived from IETF RFC 6021.
This file is modified from openconfig-telemetry.yang, the original author of openconfig-telemetry.yang is OpenConfig,
OpenConfig holds the copyright of the original work. openconfig-telemetry.yang is licensed under the Apache License 2.0,
For details, please refer to https://www.openconfig.net/ and https://github.com/openconfig/public/blob/master/LICENSE";
revision "2020-09-22";
// IPv4 and IPv6 types.
typedef ipv4-address {
type string {
pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' +
'25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' +
'[0-9]|25[0-5])';
}
description
"An IPv4 address in dotted quad notation using the default
zone.";
}
typedef ipv4-address-zoned {
type string {
pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' +
'25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' +
'[0-9]|25[0-5])(%[a-zA-Z0-9_]+)';
}
description
"An IPv4 address in dotted quad notation. This type allows
specification of a zone index to disambiguate identical
address values. For link-local addresses, the index is
typically the interface index or interface name.";
}
typedef ipv6-address {
type string {
pattern
// Must support compression through different lengths
// therefore this regexp is complex.
'(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' +
'([0-9a-fA-F]{1,4}:){1,7}:|' +
'([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' +
'([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' +
'([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' +
'([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' +
'([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' +
'[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' +
':((:[0-9a-fA-F]{1,4}){1,7}|:)' +
')';
}
description
"An IPv6 address represented as either a full address; shortened
or mixed-shortened formats, using the default zone.";
}
typedef ipv6-address-zoned {
type string {
pattern
// Must support compression through different lengths
// therefore this regexp is complex.
'(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' +
'([0-9a-fA-F]{1,4}:){1,7}:|' +
'([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' +
'([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' +
'([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' +
'([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' +
'([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' +
'[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' +
':((:[0-9a-fA-F]{1,4}){1,7}|:)' +
')(%[a-zA-Z0-9_]+)';
}
description
"An IPv6 address represented as either a full address; shortened
or mixed-shortened formats. This type allows specification of
a zone index to disambiguate identical address values. For
link-local addresses, the index is typically the interface
index or interface name.";
}
typedef ipv4-prefix {
type string {
pattern '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' +
'25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' +
'[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))';
}
description
"An IPv4 prefix represented in dotted quad notation followed by
a slash and a CIDR mask (0 <= mask <= 32).";
}
typedef ipv6-prefix {
type string {
pattern
'(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' +
'([0-9a-fA-F]{1,4}:){1,7}:|' +
'([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' +
'([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' +
'([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' +
'([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' +
'([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' +
'[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' +
':((:[0-9a-fA-F]{1,4}){1,7}|:)' +
')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])';
}
description
"An IPv6 prefix represented in full, shortened, or mixed
shortened format followed by a slash and CIDR mask
(0 <= mask <= 128).";
}
typedef ip-address {
type union {
type ipv4-address;
type ipv6-address;
}
description
"An IPv4 or IPv6 address with no prefix specified.";
}
typedef ip-prefix {
type union {
type ipv4-prefix;
type ipv6-prefix;
}
description
"An IPv4 or IPv6 prefix.";
}
typedef ip-version {
type enumeration {
enum UNKNOWN {
value 0;
description
"An unknown or unspecified version of the Internet
protocol.";
}
enum IPV4 {
value 4;
description
"The IPv4 protocol as defined in RFC 791.";
}
enum IPV6 {
value 6;
description
"The IPv6 protocol as defined in RFC 2460.";
}
}
description
"This value represents the version of the IP protocol.
Note that integer representation of the enumerated values
are not specified, and are not required to follow the
InetVersion textual convention in SMIv2.";
reference
"RFC 791: Internet Protocol
RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
RFC 4001: Textual Conventions for Internet Network Addresses";
}
typedef domain-name {
type string {
length "1..253";
pattern
'((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' +
'([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' +
'|\.';
}
description
"The domain-name type represents a DNS domain name.
Fully quallified left to the models which utilize this type.
Internet domain names are only loosely specified. Section
3.5 of RFC 1034 recommends a syntax (modified in Section
2.1 of RFC 1123). The pattern above is intended to allow
for current practice in domain name use, and some possible
future expansion. It is designed to hold various types of
domain names, including names used for A or AAAA records
(host names) and other records, such as SRV records. Note
that Internet host names have a stricter syntax (described
in RFC 952) than the DNS recommendations in RFCs 1034 and
1123, and that systems that want to store host names in
schema nodes using the domain-name type are recommended to
adhere to this stricter standard to ensure interoperability.
The encoding of DNS names in the DNS protocol is limited
to 255 characters. Since the encoding consists of labels
prefixed by a length bytes and there is a trailing NULL
byte, only 253 characters can appear in the textual dotted
notation.
Domain-name values use the US-ASCII encoding. Their canonical
format uses lowercase US-ASCII characters. Internationalized
domain names MUST be encoded in punycode as described in RFC
3492";
}
typedef host {
type union {
type ip-address;
type domain-name;
}
description
"The host type represents either an unzoned IP address or a DNS
domain name.";
}
typedef as-number {
type uint32;
description
"A numeric identifier for an autonomous system (AS). An AS is a
single domain, under common administrative control, which forms
a unit of routing policy. Autonomous systems can be assigned a
2-byte identifier, or a 4-byte identifier which may have public
or private scope. Private ASNs are assigned from dedicated
ranges. Public ASNs are assigned from ranges allocated by IANA
to the regional internet registries (RIRs).";
reference
"RFC 1930 Guidelines for creation, selection, and registration
of an Autonomous System (AS)
RFC 4271 A Border Gateway Protocol 4 (BGP-4)";
}
typedef dscp {
type uint8 {
range "0..63";
}
description
"A differentiated services code point (DSCP) marking within the
IP header.";
reference
"RFC 2474 Definition of the Differentiated Services Field
(DS Field) in the IPv4 and IPv6 Headers";
}
typedef ipv6-flow-label {
type uint32 {
range "0..1048575";
}
description
"The IPv6 flow-label is a 20-bit value within the IPv6 header
which is optionally used by the source of the IPv6 packet to
label sets of packets for which special handling may be
required.";
reference
"RFC 2460 Internet Protocol, Version 6 (IPv6) Specification";
}
typedef port-number {
type uint16;
description
"A 16-bit port number used by a transport protocol such as TCP
or UDP.";
reference
"RFC 768 User Datagram Protocol
RFC 793 Transmission Control Protocol";
}
typedef uri {
type string;
description
"An ASCII-encoded Uniform Resource Identifier (URI) as defined
in RFC 3986.";
reference
"RFC 3986 Uniform Resource Identifier (URI): Generic Syntax";
}
typedef url {
type string;
description
"An ASCII-encoded Uniform Resource Locator (URL) as defined
in RFC 3986, section 1.1.3";
reference
"RFC 3986, paragraph 1.1.3";
}
}
module an-telemetry-ext {
// namespace
namespace "urn:an:yang:an-telemetry-ext";
prefix "an-telemetry-ext";
import an-telemetry {
prefix an-telemetry;
}
description "Data model which creates the condition for the telemetry.";
revision 2020-11-05;
grouping telemetry-sensor-path-condition-op-config {
description
"Parameters for a filter criterion.";
leaf op-field{
type string {
length "1..63";
}
description
"Reference field in the filter criterion. Different paths support different reference fields.";
}
leaf op-type{
type enumeration {
enum eq {
value 0;
description
"Equal.";
}
enum gt {
value 1;
description
"Greater than.";
}
enum ge {
value 2;
description
"Greater than or equal.";
}
enum lt {
value 3;
description
"Less than.";
}
enum le {
value 4;
description
"Less than or equal.";
}
}
description
"Reference to the op-type of the filter criterion.";
}
leaf op-value{
type string {
length "1..63";
}
description
"Comparison value of the filter criterion.For the actual value range, see the definition of op-field in the YANG model.";
}
}
grouping telemetry-sensor-path-filter-condition-config {
description
"Parameters for filter criteria.";
container conditions {
description
"Top level container for filter criteria, including the filter information such as op-field, op-type, and op-value.";
list condition {
key "op-field op-type op-value";
max-elements "2";
description
"List of filter criteria.";
leaf "op-field" {
type leafref {
path "../config/op-field";
}
description
"Reference to the op-field of the filter criterion.";
}
leaf "op-type" {
type leafref {
path "../config/op-type";
}
description
"Reference to the op-type of the filter criterion.";
}
leaf "op-value" {
type leafref {
path "../config/op-value";
}
description
"Comparison value of the filter criterion. Op-value must be an integer and the maximum value range is [0, 4294967295]. For the actual value range, see the definition of op-field in the YANG model.";
}
container config {
description
"Configuration parameters for a filter criterion.";
uses telemetry-sensor-path-condition-op-config;
}
container state {
config false;
description
"State information for a filter criterion.";
uses telemetry-sensor-path-condition-op-config;
}
}
}
}
grouping telemetry-sensor-path-filter-attribute-config {
description
"Configuration parameters relating to the configured name of the telemetry sensor path filter.";
leaf name {
type string {
length "1..8";
pattern "[A-Za-z0-9]+";
}
description "Filter name for the telemetry sensor path filter.";
}
leaf condition-relation{
type enumeration {
enum and {
value 1;
description
"The relationship between filter criteria in a filter of a sampling path is and.";
}
enum or {
value 2;
description
"The relationship between filter criteria in a filter of a sampling path is or.";
}
}
default "and";
description
"Relationship between filter criteria in a filter of a sampling path.";
}
}
grouping telemetry-sensor-path-filter-config {
description
"Condition-based filtering's parameter of the sampling path. If the conditions are met, the data is reported.";
container filters {
description
"Top level container for filters. If the filter criteria are met, sampled data is sent to a collector. A filter and heartbeat interval or redundancy suppression cannot be configured at the same time.";
list filter {
key "name";
max-elements "1";
description
"Filter list of a sampling path.";
leaf name {
type leafref {
path "../config/name";
}
description
"Filter name of a sampling path.";
}
container config {
description
"Configuration parameters for a filter in a sampling path.";
uses telemetry-sensor-path-filter-attribute-config;
}
container state {
config false;
description
"State information for a filter in a sampling path.";
uses telemetry-sensor-path-filter-attribute-config;
}
uses telemetry-sensor-path-filter-condition-config;
}
}
}
augment "/an-telemetry:telemetry-system/an-telemetry:sensor-groups/an-telemetry:sensor-group/an-telemetry:sensor-paths/an-telemetry:sensor-path"{
description
"List of paths in the model which together comprise a sensor grouping. Filters for each path to exclude items are also provided.";
uses telemetry-sensor-path-filter-config;
}
}
module an-telemetry-types {
yang-version "1.1";
namespace "urn:an:yang:an-telemetry-types";
prefix "an-telemetry-types";
description
"This module defines type and identities used by the access network
telemetry model.
This file is modified from openconfig-telemetry.yang, the original author of openconfig-telemetry.yang is OpenConfig,
OpenConfig holds the copyright of the original work. openconfig-telemetry.yang is licensed under the Apache License 2.0,
For details, please refer to https://www.openconfig.net/ and https://github.com/openconfig/public/blob/master/LICENSE";
revision "2020-09-22";
identity DATA_ENCODING_METHOD {
description
"Base identity for supported encoding for configuration and
operational state data";
}
identity ENC_XML {
base DATA_ENCODING_METHOD;
description
"XML encoding";
}
identity ENC_JSON_IETF {
base DATA_ENCODING_METHOD;
description
"JSON encoded based on IETF draft standard";
reference
"draft-ietf-netmod-yang-json";
}
identity ENC_PROTO3 {
base DATA_ENCODING_METHOD;
description
"Protocol buffers v3";
reference
"https://developers.google.com/protocol-buffers/docs/overview";
}
identity STREAM_PROTOCOL {
description "Base identity for a telemetry stream protocol";
}
identity STREAM_SSH {
base "STREAM_PROTOCOL";
description
"Telemetry stream is carried over a SSH connection";
}
identity STREAM_GRPC {
base "STREAM_PROTOCOL";
description
"Telemetry stream is carried over via the gRPC framework";
}
identity STREAM_UDP {
base "STREAM_PROTOCOL";
description
"Telemetry stream is carried over via the UDP framework";
}
identity STREAM_JSON_RPC {
base "STREAM_PROTOCOL";
description
"Telemetry stream is carried via the JSON-RPC framework";
}
identity STREAM_THRIFT_RPC {
base "STREAM_PROTOCOL";
description
"Telemetry stream is carried via the Apache Thrift framework";
}
identity STREAM_WEBSOCKET_RPC {
base "STREAM_PROTOCOL";
description
"Telemetry stream is carried by the WebSocket framework";
}
// typedef statements
}
This diff is collapsed.