830 lines
17 KiB
YANG
830 lines
17 KiB
YANG
/*
|
|
* Copyright (C) 2018-2019 THL A29 Limited, a Tencent company. All rights reserved.
|
|
*/
|
|
|
|
module openconfig-tencent-platform-chip {
|
|
|
|
yang-version "1";
|
|
|
|
// namespace
|
|
namespace "http://openconfig.net/yang/platform/chip";
|
|
|
|
prefix "oc-tc-platform-chip";
|
|
|
|
// import some basic types
|
|
import openconfig-extensions { prefix oc-ext; }
|
|
import openconfig-yang-types { prefix oc-yang; }
|
|
import openconfig-types { prefix oc-types; }
|
|
import openconfig-platform { prefix oc-platform; }
|
|
import openconfig-platform-types { prefix oc-platform-types; }
|
|
import openconfig-interfaces { prefix oc-if; }
|
|
|
|
// meta
|
|
organization "Tencent DCN working group";
|
|
|
|
contact
|
|
"Tencent TDCP working group";
|
|
|
|
description
|
|
"This module defines a schema for chip components in
|
|
the OpenConfig platform model.";
|
|
|
|
oc-ext:openconfig-version "0.2.0";
|
|
|
|
revision "2019-01-24" {
|
|
description
|
|
"Initial revision";
|
|
reference "0.1.0";
|
|
}
|
|
|
|
|
|
identity CHIP_BUFFER_TYPE {
|
|
description
|
|
"Base identity for buffer types";
|
|
}
|
|
|
|
identity SHARED_BUFFER {
|
|
base CHIP_BUFFER_TYPE;
|
|
description
|
|
"The shared buffer on chip";
|
|
}
|
|
|
|
identity EXCLUSIVE_BUFFER {
|
|
base CHIP_BUFFER_TYPE;
|
|
description
|
|
"The exclusive buffer on chip";
|
|
}
|
|
|
|
identity HEADROOM {
|
|
base CHIP_BUFFER_TYPE;
|
|
description
|
|
"The headroom buffer on chip";
|
|
}
|
|
|
|
// grouping statements
|
|
|
|
grouping chip-config {
|
|
description
|
|
"Configuration data for chip components";
|
|
|
|
}
|
|
|
|
grouping chip-state {
|
|
description
|
|
"Operational state data for chip components";
|
|
leaf error-reason {
|
|
type string;
|
|
description
|
|
"the error reason of chip(for example:ECC,parity error and so on)";
|
|
}
|
|
|
|
}
|
|
|
|
grouping chip-top {
|
|
description
|
|
"Top-level grouping for chip data";
|
|
|
|
container chip {
|
|
description
|
|
"Top-level container for chip data";
|
|
|
|
container config {
|
|
description
|
|
"Configuration data for chip";
|
|
|
|
uses chip-config;
|
|
}
|
|
|
|
container state {
|
|
|
|
config false;
|
|
|
|
description
|
|
"Operational state data for chip";
|
|
|
|
uses chip-config;
|
|
uses chip-state;
|
|
}
|
|
uses chip-buffer-top;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
grouping chip-buffer-config {
|
|
description
|
|
"Configuration data for buffer";
|
|
leaf name {
|
|
|
|
type identityref {
|
|
base CHIP_BUFFER_TYPE;
|
|
}
|
|
description
|
|
"buffer includs shared-buffer, exclusive-buffer and headroom, the name should be one of it";
|
|
}
|
|
|
|
}
|
|
|
|
grouping chip-buffer-state {
|
|
description
|
|
"Operational state data for buffer";
|
|
uses chip-buffer-input-top;
|
|
uses chip-buffer-output-top;
|
|
|
|
leaf congest-discard {
|
|
type boolean;
|
|
description
|
|
"the congest happend(TCB)";
|
|
}
|
|
|
|
}
|
|
|
|
grouping chip-buffer-top {
|
|
description
|
|
"Top-level grouping for chip data";
|
|
|
|
container buffers {
|
|
description
|
|
"Top-level container for buffer data";
|
|
|
|
list buffer {
|
|
key "name";
|
|
|
|
description
|
|
"Top-level container for the buffer associated with this
|
|
chip";
|
|
|
|
leaf name {
|
|
type leafref {
|
|
path "../config/name";
|
|
}
|
|
description
|
|
"Reference to the name of the buffer
|
|
instantiated on the chip.";
|
|
}
|
|
|
|
container config {
|
|
description
|
|
"Configuration data for buffer";
|
|
|
|
uses chip-buffer-config;
|
|
}
|
|
|
|
container state {
|
|
|
|
config false;
|
|
|
|
description
|
|
"Operational state data for buffer";
|
|
|
|
uses chip-buffer-config;
|
|
uses chip-buffer-state;
|
|
}
|
|
uses chip-buffer-input-top;
|
|
uses chip-buffer-output-top;
|
|
uses chip-buffer-interfaces-top;
|
|
uses chip-buffer-slices-top;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
grouping chip-buffer-interfaces-config {
|
|
description
|
|
"Configuration data for interfaces referenced in the chip
|
|
model";
|
|
|
|
leaf interface-id {
|
|
type string;
|
|
description
|
|
"Identifier for the interface.";
|
|
}
|
|
}
|
|
|
|
grouping chip-buffer-interfaces-state {
|
|
description
|
|
"Operational state data for interfaces referenced in the chip
|
|
model";
|
|
leaf current-usage {
|
|
type oc-yang:counter64;
|
|
units bytes;
|
|
description
|
|
"current usage of buffer size";
|
|
}
|
|
|
|
leaf available-usage {
|
|
type oc-yang:counter64;
|
|
units bytes;
|
|
description
|
|
"available-usage of buffer size";
|
|
}
|
|
|
|
leaf current-utilization {
|
|
type oc-types:percentage;
|
|
description
|
|
"current usage of buffer size";
|
|
}
|
|
|
|
leaf historical-peak {
|
|
type oc-yang:counter64;
|
|
units bytes;
|
|
description
|
|
"historical peak of buffer size";
|
|
}
|
|
|
|
leaf historical-peak-time {
|
|
type oc-types:timeticks64;
|
|
description
|
|
"the time of exceeding the historical-peek";
|
|
}
|
|
|
|
leaf alarm-threshold {
|
|
type oc-types:percentage;
|
|
description
|
|
"the threshold of alarm";
|
|
}
|
|
|
|
leaf alarm-count {
|
|
type oc-yang:counter32;
|
|
description
|
|
"the count of alarm";
|
|
}
|
|
|
|
leaf discard-pkt {
|
|
type oc-yang:counter64;
|
|
description
|
|
"the count of packet that dropped since buffer overflow";
|
|
}
|
|
|
|
leaf forward-pkt {
|
|
type oc-yang:counter64;
|
|
description
|
|
"the count of packet that forwarded";
|
|
}
|
|
|
|
leaf forward-traffic {
|
|
type oc-yang:counter64;
|
|
units bytes;
|
|
description
|
|
"the count of packet size that forwarded";
|
|
}
|
|
|
|
// definitions per-interface counters for QoS
|
|
}
|
|
|
|
grouping chip-buffer-interfaces-top {
|
|
description
|
|
"Top-level grouping for interfaces referenced in the buffer
|
|
model";
|
|
|
|
container interfaces {
|
|
description
|
|
"Enclosing container for the list of interface references";
|
|
|
|
list interface {
|
|
key "interface-id";
|
|
description
|
|
"List of interfaces referenced by buffer entities.";
|
|
|
|
leaf interface-id {
|
|
type leafref {
|
|
path "../config/interface-id";
|
|
}
|
|
description
|
|
"Reference to the interface-id list key";
|
|
}
|
|
|
|
container config {
|
|
description
|
|
"Configuration data ";
|
|
|
|
uses chip-buffer-interfaces-config;
|
|
}
|
|
|
|
container state {
|
|
config false;
|
|
description
|
|
"Operational state data ";
|
|
|
|
uses chip-buffer-interfaces-config;
|
|
uses chip-buffer-interfaces-state;
|
|
}
|
|
|
|
uses oc-if:interface-ref;
|
|
uses chip-buffer-input-top;
|
|
uses chip-buffer-output-top;
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
grouping chip-buffer-slices-config {
|
|
description
|
|
"Configuration data for slices referenced in the chip
|
|
model";
|
|
|
|
leaf slice-name {
|
|
type string;
|
|
description
|
|
"Identifier for the slice.";
|
|
}
|
|
}
|
|
|
|
|
|
|
|
grouping chip-buffer-slices-state {
|
|
description
|
|
"Operational state data for slices referenced in the chip
|
|
model";
|
|
leaf current-usage {
|
|
type oc-yang:counter64;
|
|
units bytes;
|
|
description
|
|
"current usage of buffer size";
|
|
}
|
|
|
|
leaf available-usage {
|
|
type oc-yang:counter64;
|
|
units bytes;
|
|
description
|
|
"available-usage of buffer size";
|
|
}
|
|
|
|
leaf current-utilization {
|
|
type oc-types:percentage;
|
|
description
|
|
"current usage of buffer size";
|
|
}
|
|
|
|
leaf historical-peak {
|
|
type oc-yang:counter64;
|
|
units bytes;
|
|
description
|
|
"historical peak of buffer size";
|
|
}
|
|
|
|
leaf historical-peak-time {
|
|
type oc-types:timeticks64;
|
|
description
|
|
"the time of exceeding the historical-peek";
|
|
}
|
|
|
|
leaf alarm-threshold {
|
|
type oc-types:percentage;
|
|
description
|
|
"the threshold of alarm";
|
|
}
|
|
|
|
leaf alarm-count {
|
|
type oc-yang:counter32;
|
|
description
|
|
"the count of alarm";
|
|
}
|
|
|
|
leaf discard-pkt {
|
|
type oc-yang:counter64;
|
|
description
|
|
"the count of packet that dropped since buffer overflow";
|
|
}
|
|
|
|
leaf forward-pkt {
|
|
type oc-yang:counter64;
|
|
description
|
|
"the count of packet that forwarded";
|
|
}
|
|
|
|
leaf forward-traffic {
|
|
type oc-yang:counter64;
|
|
units bytes;
|
|
description
|
|
"the count of packet size that forwarded";
|
|
}
|
|
// definitions per-interface counters for QoS
|
|
}
|
|
|
|
grouping chip-buffer-slices-top {
|
|
description
|
|
"Top-level grouping for slices referenced in the buffer
|
|
model";
|
|
|
|
container slices {
|
|
description
|
|
"Enclosing container for the list of interface references";
|
|
|
|
list slice {
|
|
key "slice-name";
|
|
description
|
|
"List of slices referenced by buffer entities.";
|
|
|
|
leaf slice-name {
|
|
type string;
|
|
description
|
|
"Reference to the slice-name list key";
|
|
}
|
|
|
|
container config {
|
|
description
|
|
"Configuration data ";
|
|
|
|
uses chip-buffer-slices-config;
|
|
}
|
|
|
|
container state {
|
|
config false;
|
|
description
|
|
"Operational state data ";
|
|
|
|
uses chip-buffer-slices-config;
|
|
uses chip-buffer-slices-state;
|
|
}
|
|
|
|
uses oc-if:interface-ref;
|
|
uses chip-buffer-input-top;
|
|
uses chip-buffer-output-top;
|
|
|
|
}
|
|
}
|
|
}
|
|
grouping chip-buffer-queue-config {
|
|
description
|
|
"Configuration data for the queue associated with the
|
|
buffer";
|
|
leaf name {
|
|
|
|
type string;
|
|
description
|
|
"Reference to the queue associated with the buffer.
|
|
A queue may be explicitly configured, or implicitly created
|
|
by the system based on default queues that are instantiated
|
|
by a hardware component, or are assumed to be default on
|
|
the system.";
|
|
}
|
|
|
|
}
|
|
|
|
grouping chip-buffer-queue-state {
|
|
description
|
|
"Operational data for the queue associated with the
|
|
buffer";
|
|
|
|
leaf current-usage {
|
|
type oc-yang:counter64;
|
|
units bytes;
|
|
description
|
|
"current usage of buffer size";
|
|
}
|
|
|
|
leaf available-usage {
|
|
type oc-yang:counter64;
|
|
units bytes;
|
|
description
|
|
"available-usage of buffer size";
|
|
}
|
|
|
|
leaf current-utilization {
|
|
type oc-types:percentage;
|
|
description
|
|
"current usage of buffer size";
|
|
}
|
|
|
|
leaf historical-peak {
|
|
type oc-yang:counter64;
|
|
units bytes;
|
|
description
|
|
"historical peak of buffer size";
|
|
}
|
|
|
|
leaf historical-peak-time {
|
|
type oc-types:timeticks64;
|
|
description
|
|
"the time of exceeding the historical-peek";
|
|
}
|
|
|
|
leaf alarm-threshold {
|
|
type oc-types:percentage;
|
|
description
|
|
"the threshold of alarm";
|
|
}
|
|
|
|
leaf alarm-count {
|
|
type oc-yang:counter32;
|
|
description
|
|
"the count of alarm";
|
|
}
|
|
|
|
leaf discard-pkt {
|
|
type oc-yang:counter64;
|
|
description
|
|
"the count of packet that dropped since buffer overflow";
|
|
}
|
|
|
|
leaf forward-pkt {
|
|
type oc-yang:counter64;
|
|
description
|
|
"the count of packet that forwarded";
|
|
}
|
|
|
|
leaf forward-traffic {
|
|
type oc-yang:counter64;
|
|
units bytes;
|
|
description
|
|
"the count of packet size that forwarded";
|
|
}
|
|
|
|
}
|
|
|
|
grouping chip-buffer-queue-top {
|
|
description
|
|
"Top-level grouping for the queue associated with the
|
|
buffer";
|
|
|
|
container queues {
|
|
description
|
|
"Surrounding container for a list of queues that are
|
|
instantiated on the buffer.";
|
|
|
|
list queue {
|
|
key "name";
|
|
|
|
description
|
|
"Top-level container for the queue associated with this
|
|
buffer";
|
|
|
|
leaf name {
|
|
type leafref {
|
|
path "../config/name";
|
|
}
|
|
description
|
|
"Reference to the name of the queue
|
|
instantiated on the buffer.";
|
|
}
|
|
|
|
container config {
|
|
description
|
|
"Configuration data for the queue associated with the
|
|
buffer";
|
|
|
|
uses chip-buffer-queue-config;
|
|
}
|
|
|
|
container state {
|
|
config false;
|
|
description
|
|
"Operational state data for the queue associated with the
|
|
buffer";
|
|
|
|
uses chip-buffer-queue-config;
|
|
uses chip-buffer-queue-state;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
grouping chip-buffer-output-config {
|
|
description
|
|
"Configuration data for Buffer on the egress chip";
|
|
}
|
|
|
|
grouping chip-buffer-output-state {
|
|
description
|
|
"Operational state data for Buffer on the egress chip";
|
|
|
|
leaf current-usage {
|
|
type oc-yang:counter64;
|
|
units bytes;
|
|
description
|
|
"current usage of buffer size";
|
|
}
|
|
|
|
leaf available-usage {
|
|
type oc-yang:counter64;
|
|
units bytes;
|
|
description
|
|
"available-usage of buffer size";
|
|
}
|
|
|
|
leaf current-utilization {
|
|
type oc-types:percentage;
|
|
description
|
|
"current usage of buffer size";
|
|
}
|
|
|
|
leaf historical-peak {
|
|
type oc-yang:counter64;
|
|
units bytes;
|
|
description
|
|
"historical peak of buffer size";
|
|
}
|
|
|
|
leaf historical-peak-time {
|
|
type oc-types:timeticks64;
|
|
description
|
|
"the time of exceeding the historical-peek";
|
|
}
|
|
|
|
leaf alarm-threshold {
|
|
type oc-types:percentage;
|
|
description
|
|
"the threshold of alarm";
|
|
}
|
|
|
|
leaf alarm-count {
|
|
type oc-yang:counter32;
|
|
description
|
|
"the count of alarm";
|
|
}
|
|
|
|
leaf discard-pkt {
|
|
type oc-yang:counter64;
|
|
description
|
|
"the count of packet that dropped since buffer overflow";
|
|
}
|
|
|
|
leaf discard-traffic {
|
|
type oc-yang:counter64;
|
|
units bytes;
|
|
description
|
|
"the count of packet size that dropped since buffer overflow";
|
|
}
|
|
|
|
leaf forward-pkt {
|
|
type oc-yang:counter64;
|
|
description
|
|
"the count of packet that forwarded";
|
|
}
|
|
|
|
leaf forward-traffic {
|
|
type oc-yang:counter64;
|
|
units bytes;
|
|
description
|
|
"the count of packet size that forwarded";
|
|
}
|
|
|
|
}
|
|
|
|
grouping chip-buffer-output-top {
|
|
description
|
|
"Top-level grouping for Buffer on the egress chip";
|
|
|
|
container output {
|
|
description
|
|
"Top-level container for Buffer data related to the egress
|
|
chip";
|
|
|
|
container config {
|
|
description
|
|
"Configuration data for Buffer on the egress chip";
|
|
|
|
uses chip-buffer-output-config;
|
|
}
|
|
|
|
container state {
|
|
config false;
|
|
description
|
|
"Operational state data for Buffer on the egress chip";
|
|
|
|
uses chip-buffer-output-config;
|
|
uses chip-buffer-output-state;
|
|
}
|
|
uses chip-buffer-queue-top;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
grouping chip-buffer-input-config {
|
|
description
|
|
"Configuration data for Buffer on the ingress chip";
|
|
}
|
|
|
|
grouping chip-buffer-input-state {
|
|
description
|
|
"Operational state data for Buffer on the ingress chip";
|
|
|
|
leaf current-usage {
|
|
type oc-yang:counter64;
|
|
units bytes;
|
|
description
|
|
"current usage of buffer size";
|
|
}
|
|
|
|
leaf available-usage {
|
|
type oc-yang:counter64;
|
|
units bytes;
|
|
description
|
|
"available-usage of buffer size";
|
|
}
|
|
|
|
leaf current-utilization {
|
|
type oc-types:percentage;
|
|
description
|
|
"current usage of buffer size";
|
|
}
|
|
|
|
leaf historical-peak {
|
|
type oc-yang:counter64;
|
|
units bytes;
|
|
description
|
|
"historical peak of buffer size";
|
|
}
|
|
|
|
leaf historical-peak-time {
|
|
type oc-types:timeticks64;
|
|
description
|
|
"the time of exceeding the historical-peek";
|
|
}
|
|
|
|
leaf alarm-threshold {
|
|
type oc-types:percentage;
|
|
description
|
|
"the threshold of alarm";
|
|
}
|
|
|
|
leaf alarm-count {
|
|
type oc-yang:counter32;
|
|
description
|
|
"the count of alarm";
|
|
}
|
|
|
|
leaf discard-pkt {
|
|
type oc-yang:counter64;
|
|
description
|
|
"the count of packet that dropped since buffer overflow";
|
|
}
|
|
|
|
leaf discard-traffic {
|
|
type oc-yang:counter64;
|
|
units bytes;
|
|
description
|
|
"the count of packet size that dropped since buffer overflow";
|
|
}
|
|
|
|
leaf forward-pkt {
|
|
type oc-yang:counter64;
|
|
description
|
|
"the count of packet that forwarded";
|
|
}
|
|
|
|
leaf forward-traffic {
|
|
type oc-yang:counter64;
|
|
units bytes;
|
|
description
|
|
"the count of packet size that forwarded";
|
|
}
|
|
}
|
|
|
|
grouping chip-buffer-input-top {
|
|
description
|
|
"Top-level grouping for Buffer on the ingress chip";
|
|
|
|
container input {
|
|
description
|
|
"Top-level container for Buffer data related to the ingress
|
|
chip";
|
|
|
|
container config {
|
|
description
|
|
"Configuration data for Buffer on the ingress chip";
|
|
|
|
uses chip-buffer-input-config;
|
|
}
|
|
|
|
container state {
|
|
config false;
|
|
description
|
|
"Operational state data for Buffer on the ingress chip";
|
|
|
|
uses chip-buffer-input-config;
|
|
uses chip-buffer-input-state;
|
|
}
|
|
uses chip-buffer-queue-top;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// data definition statements
|
|
|
|
// augment statements
|
|
|
|
augment "/oc-platform:components/oc-platform:component/oc-platform:integrated-circuit" {
|
|
description
|
|
"Adding chip data to physical inventory";
|
|
|
|
uses chip-top {
|
|
when "current()/../oc-platform:state/" +
|
|
"oc-platform:type = 'CHIP'" {
|
|
description
|
|
"Augment is active when component is of type chip";
|
|
}
|
|
}
|
|
}
|
|
|
|
uses chip-top;
|
|
// rpc statements
|
|
|
|
// notification statements
|
|
} |