src/sonic-yang-models/yang-models/sonic-flex_counter.yang (255 lines of code) (raw):
module sonic-flex_counter {
yang-version 1.1;
namespace "http://github.com/sonic-net/sonic-flex_counter";
prefix flex_counter;
import ietf-inet-types {
prefix inet;
}
import sonic-types {
prefix stypes;
}
description "FLEX COUNTER YANG Module for SONiC OS";
revision 2020-04-10 {
description "First Revision";
}
container sonic-flex_counter {
container FLEX_COUNTER_TABLE {
/* typedef specific to FLEX_COUNTER_TABLE */
typedef flex_status {
type enumeration {
enum enable;
enum disable;
}
}
typedef flex_delay_status {
type stypes:boolean_type;
}
typedef poll_interval {
type uint32 {
range 100..4294967295;
}
}
description "FLEX_COUNTER_TABLE part of config_db.json";
/* below are in alphabetical order */
container BUFFER_POOL_WATERMARK {
/* BUFFER_POOL_WATERMARK_STAT_COUNTER_FLEX_COUNTER_GROUP */
leaf FLEX_COUNTER_STATUS {
type flex_status;
}
leaf FLEX_COUNTER_DELAY_STATUS {
type flex_delay_status;
}
leaf POLL_INTERVAL {
type poll_interval;
}
}
container DEBUG_COUNTER {
/* DEBUG_COUNTER_FLEX_COUNTER_GROUP */
leaf FLEX_COUNTER_STATUS {
type flex_status;
}
leaf FLEX_COUNTER_DELAY_STATUS {
type flex_delay_status;
}
}
container PFCWD {
/* PFC_WD_FLEX_COUNTER_GROUP */
leaf FLEX_COUNTER_STATUS {
type flex_status;
}
leaf FLEX_COUNTER_DELAY_STATUS {
type flex_delay_status;
}
}
container PG_DROP {
/* PG_DROP_STAT_COUNTER_FLEX_COUNTER_GROUP */
leaf FLEX_COUNTER_STATUS {
type flex_status;
}
leaf FLEX_COUNTER_DELAY_STATUS {
type flex_delay_status;
}
leaf POLL_INTERVAL {
type poll_interval;
}
}
container PG_WATERMARK {
/* PG_WATERMARK_STAT_COUNTER_FLEX_COUNTER_GROUP */
leaf FLEX_COUNTER_STATUS {
type flex_status;
}
leaf FLEX_COUNTER_DELAY_STATUS {
type flex_delay_status;
}
leaf POLL_INTERVAL {
type poll_interval;
}
}
container PORT {
/* PORT_STAT_COUNTER_FLEX_COUNTER_GROUP */
leaf FLEX_COUNTER_STATUS {
type flex_status;
}
leaf FLEX_COUNTER_DELAY_STATUS {
type flex_delay_status;
}
leaf POLL_INTERVAL {
type poll_interval;
}
}
container PORT_RATES {
/* PORT_RATES_COUNTER_FLEX_COUNTER_GROUP */
leaf FLEX_COUNTER_STATUS {
type flex_status;
}
leaf FLEX_COUNTER_DELAY_STATUS {
type flex_delay_status;
}
}
container PORT_BUFFER_DROP {
/* PORT_BUFFER_DROP_COUNTER_FLEX_COUNTER_GROUP */
leaf FLEX_COUNTER_STATUS {
type flex_status;
}
leaf FLEX_COUNTER_DELAY_STATUS {
type flex_delay_status;
}
leaf POLL_INTERVAL {
type poll_interval;
}
}
container QUEUE {
/* QUEUE_STAT_COUNTER_FLEX_COUNTER_GROUP */
leaf FLEX_COUNTER_STATUS {
type flex_status;
}
leaf FLEX_COUNTER_DELAY_STATUS {
type flex_delay_status;
}
leaf POLL_INTERVAL {
type poll_interval;
}
}
container QUEUE_WATERMARK {
/* QUEUE_WATERMARK_STAT_COUNTER_FLEX_COUNTER_GROUP */
leaf FLEX_COUNTER_STATUS {
type flex_status;
}
leaf FLEX_COUNTER_DELAY_STATUS {
type flex_delay_status;
}
leaf POLL_INTERVAL {
type poll_interval;
}
}
container RIF {
/* RIF_STAT_COUNTER_FLEX_COUNTER_GROUP */
leaf FLEX_COUNTER_STATUS {
type flex_status;
}
leaf FLEX_COUNTER_DELAY_STATUS {
type flex_delay_status;
}
leaf POLL_INTERVAL {
type poll_interval;
}
}
container RIF_RATES {
/* RIF_RATE_COUNTER_FLEX_COUNTER_GROUP */
leaf FLEX_COUNTER_STATUS {
type flex_status;
}
leaf FLEX_COUNTER_DELAY_STATUS {
type flex_delay_status;
}
}
container ACL {
/* ACL_STAT_COUNTER_FLEX_COUNTER_GROUP */
leaf FLEX_COUNTER_STATUS {
type flex_status;
}
leaf FLEX_COUNTER_DELAY_STATUS {
type flex_delay_status;
}
leaf POLL_INTERVAL {
type poll_interval;
}
}
container FLOW_CNT_TRAP {
/* HOSTIF_TRAP_COUNTER_FLEX_COUNTER_GROUP */
leaf FLEX_COUNTER_STATUS {
type flex_status;
}
leaf FLEX_COUNTER_DELAY_STATUS {
type flex_delay_status;
}
leaf POLL_INTERVAL {
type poll_interval;
}
}
container FLOW_CNT_ROUTE {
/* ROUTE_FLEX_COUNTER_GROUP */
leaf FLEX_COUNTER_STATUS {
type flex_status;
}
leaf FLEX_COUNTER_DELAY_STATUS {
type flex_delay_status;
}
leaf POLL_INTERVAL {
type poll_interval;
}
}
container TUNNEL {
/* TUNNEL_STAT_COUNTER_FLEX_COUNTER_GROUP */
leaf FLEX_COUNTER_STATUS {
type flex_status;
}
leaf FLEX_COUNTER_DELAY_STATUS {
type flex_delay_status;
}
leaf POLL_INTERVAL {
type poll_interval;
}
}
}
/* end of container FLEX_COUNTER_TABLE */
container FLOW_COUNTER_ROUTE_PATTERN {
description "Flow counter route pattern of config_db.json";
list FLOW_COUNTER_ROUTE_PATTERN_LIST {
key "ip_prefix";
leaf ip_prefix {
type inet:ip-prefix;
}
leaf max_match_count {
type uint32 {
range 1..50;
}
}
}
list FLOW_COUNTER_ROUTE_PATTERN_VRF_LIST {
key "vrf_name ip_prefix";
leaf vrf_name {
/*
We don't use vrf_name reference here because:
1. User is allowed to configure a VRF that does not exist yet here, orchagent is designed to resolve the VRF name once the VRF is created.
2. The field vrf_name accept both VRF name and VNET name.
*/
type string {
length 0..16;
}
}
leaf ip_prefix {
type inet:ip-prefix;
}
leaf max_match_count {
type uint32 {
range 1..50;
}
}
}
}
/* end of container FLOW_COUNTER_ROUTE_PATTERN */
}
/* end of top level container */
}
/* end of module sonic-flex_counter */