This model contains a collection of YANG definitions for managing the global configuration and operational data for the NPU. Co...
Version: 2018-11-12
module dell-base-switch-element { yang-version 1; namespace "http://www.dellemc.com/networking/os10/dell-base-switch-element"; prefix base-switch; import dell-base-common { prefix base-cmn; } import ietf-yang-types { prefix yang; } organization "Dell EMC"; contact "http://www.dell.com/support"; description "This model contains a collection of YANG definitions for managing the global configuration and operational data for the NPU. Copyright (c) 2015-2019 by Dell EMC, All rights reserved."; revision "2018-11-12" { description "Added new hashing algorithm enumerations."; reference "Network Platform Abstraction"; } revision "2018-10-12" { description "Added L3 RIF (Router Interface) table size and nexthop size attributes."; reference "Network Platform Abstraction"; } revision "2018-09-19" { description "Added L3 VXLAN (Virtual Extensible LAN) RIOT (Routing In and Out of Tunnel) enable/disable and the maximum number of RIFs and Nexthops when enabled."; reference "Network Platform Abstraction"; } revision "2018-09-06" { description "Added switch level resource utilization statistics and counters"; reference "Network Platform Abstraction"; } revision "2018-09-02" { description "Support for Priority Flow Control (PFC) deadlock detection. PFC deadlock occurrence in a network is inferred through detection of PFC 'storms' at individual devices - namely detection of a large number of PFC frames received in a short 'detection' time interval. As a result of PFC deadlock detection, the system ignores the received PFC pause frames and takes one of two actions: DROP all incoming traffic for a certain 'recovery' time interval or FORWARD all traffic during this recovery time interval"; reference "Network Platform Abstraction"; } revision "2018-08-30" { description "Buffer Statistics Tracking feature support adding to model. BST allows to take snapshot of buffer utilization in system and allows setting thresholds to generate events."; reference "Network Platform Abstraction"; } revision "2018-08-22" { description "Added global flag to enable deep buffer mode "; reference "Network Platform Abstraction"; } revision "2018-08-17" { description "Fixing pyang IETF errors and adding documentation to the model."; reference "Network Platform Abstraction"; } revision "2018-07-02" { description "Add Configuration of IPv6 Extended prefix routes."; reference "Network Platform Abstraction"; } revision "2018-02-20" { description "Add global ECN ECT control flag."; reference "Network Platform Abstraction"; } revision "2014-08-06" { description "Initial revision."; reference "Network Platform Abstraction"; } identity switch-element-base { description "Base identity from which specific routing protocols are derived."; } typedef hash-algorithm { type enumeration { enum "XOR" { value 1; } enum "CRC" { value 2; } enum "RANDOM" { value 3; } enum "XOR1" { value 4; } enum "XOR2" { value 5; } enum "XOR4" { value 6; } enum "XOR8" { value 7; } enum "CRC16cc" { value 8; } enum "CRC32LSB" { value 9; } enum "CRC32MSB" { value 10; } } description "Enumeration of all possible Hashing Algorithms"; } typedef switching-mode { type enumeration { enum "cut-through" { value 1; } enum "store-and-forward" { value 2; } } description "Enumeration of all possible switching modes"; } typedef hash-fields { type enumeration { enum "src-ip" { value 1; } enum "dest-ip" { value 2; } enum "vlan-id" { value 3; } enum "ip-protocol" { value 4; } enum "ethertype" { value 5; } enum "l4-src-port" { value 6; } enum "l4-dest-port" { value 7; } enum "src-mac" { value 8; } enum "dest-mac" { value 9; } enum "in-port" { value 10; } } description "Enumeration of all possible fields to be hashed"; } typedef subsystem { type enumeration { enum "unspecified" { value 1; } enum "switch" { value 2; } enum "port" { value 3; } enum "fdb" { value 4; } enum "vlan" { value 5; } enum "virtual-router" { value 6; } enum "route" { value 7; } enum "next-hop" { value 8; } enum "next-hop-group" { value 9; } enum "router-interface" { value 10; } enum "neighbor" { value 11; } enum "acl" { value 12; } enum "host_interface" { value 13; } enum "mirror" { value 14; } enum "samplepacket" { value 15; } enum "stp" { value 16; } enum "lag" { value 17; } enum "policer" { value 18; } enum "wred" { value 19; } enum "qos-maps" { value 20; } enum "qos-queue" { value 21; } enum "scheduler" { value 22; } enum "scheduler-group" { value 23; } enum "all" { value 24; } } description "IDs of all the possible subsystems in the switch"; } typedef log-level { type enumeration { enum "debug" { value 1; } enum "info" { value 2; } enum "notice" { value 3; } enum "warning" { value 4; } enum "error" { value 5; } enum "critical" { value 6; } } description "Various log levels that a subsystem allows"; } typedef profile-name { type string { length "1..32"; } description "Type for the user defined profile name."; } typedef uft-mode { type enumeration { enum "default-mode" { value 1; } enum "scaled-l2" { value 2; } enum "scaled-l3-routes" { value 3; } enum "scaled-l3-hosts" { value 4; } } description "Enumeration of all possible values for the Unified Forwarding Table(UFT) mode"; } typedef pfc-dlr-action { type enumeration { enum "DROP" { value 0; description "Drop all packets already enqueued and newly received packets"; } enum "FORWARD" { value 1; description "Forwards packets, ignoring incoming PFC pause frames from neighbor device"; } } description "Enumeration of types of actions that the system performs on recovery from deadlock situation for the configured recovery time interval"; } typedef bst-tracking-mode { type enumeration { enum "peak" { value 1; description "Peak mode provides buffer counter maximum for a given time period and tracks peak usage"; } enum "current" { value 2; description "Current mode provides the instantaneous value of buffer usage"; } } description "Enumeration of all possible values for the BST tracking mode"; } grouping mode-info { description "Attribute for table size in various modes"; leaf l2-mac-table-size { type uint32; description "l2 table size"; } leaf l3-route-table-size { type uint32; description "l3 table size"; } leaf host-table-size { type uint32; description "ARP/NBR table size"; } } // grouping mode-info list switching-entity-env { key "switch-id"; description "List of a set of switching environment attributes for every 'switch-id'."; leaf switch-id { type base-cmn:logical-switch-id; description "Switch Identifier"; } leaf temperature { type int32; description "Current temperature of NPU"; } } // list switching-entity-env container switching-entities { description "switching entity configuration parameters and counters."; leaf switch-count { type uint32; description "The number of virtual switches on the platform"; } list switching-entity { key "switch-id"; description "List of a set of switching attributes that define various operational attributes per switch-id."; leaf switch-id { type base-cmn:logical-switch-id; description "Switch Identifier"; } leaf switch-mode { type switching-mode; description "the default mode for switching packets"; } leaf lag-hash-algorithm { type hash-algorithm; description "The switches hash algorithm setting"; } leaf lag-hash-seed-value { type uint32; description "The switch lag hash seed value"; } leaf-list lag-hash-fields { type hash-fields; description "The switches hash fields used for lags"; } leaf-list npu-identifiers { type base-cmn:npu-id; description "The NPUs associated with the virtual switch"; } leaf operational-status { type base-cmn:oper-status-type; config false; description "operational status of the switch"; } leaf admin-status { type base-cmn:admin-status-type; description "Administrative status of the switch - set by user applications."; } leaf bridge-table-size { type uint32; config false; description "Size of Layer2 FDB"; } leaf max-supported-lags { type uint32; config false; description "The maximum number of lags this device supports"; } leaf ecmp-hash-algorithm { type hash-algorithm; description "The switch ecmp hash algorithm setting"; } leaf ecmp-hash-seed-value { type uint32; description "The switch ecmp hash seed value"; } leaf-list ecmp-hash-fields { type hash-fields; description "The fields used for hasing in the case of ecmp"; } leaf ecmp-group-size { type uint32; description "Maximum number of ECMP groups"; } leaf max-ecmp-entry-per-group { type uint32 { range "2..1024"; } default '64'; description "Configure maximum ECMP entries per group"; } leaf ipv4-route-table-size { type uint32; config false; description "Size of IPv4 Routing table"; } leaf ipv6-route-table-size { type uint32; config false; description "Size of IPv6 Routing table"; } leaf ipv4-host-size { type uint32; config false; description "Size of IPv4 NBR table"; } leaf ipv6-host-size { type uint32; config false; description "Size of IPv6 NBR table"; } leaf rif-table-size { type uint32; config false; description "RIF (Router Interface) table size"; } leaf l3-nexthop-table-size { type uint32; config false; description "L3 nexthop table size"; } leaf num-unicast-queues-per-port { type uint32; description "Number of unicast queues per port"; } leaf num-multicast-queues-per-port { type uint32; description "Number of multicast queues per port"; } leaf num-queues-per-port { type uint32; default '8'; description "Number of queues per port"; } leaf num-queues-cpu-port { type uint32; description "Number of queues for a cpu-port"; } leaf qos-rate-adjust { type uint32; default '0'; description "QoS rate adjustment due to internal overhead bytes"; } leaf ingress-flow-table-size { type uint32; default '4096'; description "Size of the ingress flow-table"; } leaf egress-flow-table-size { type uint32; default '2048'; description "Size of the egress flow-table"; } leaf mac-age-timer { type uint32; description "Timeout period for dynamically leanrt MAC Addresses"; } leaf default-vlan-id { type base-cmn:vlan-id; description "The default vlan-id for this switch"; } leaf disable-default-vlan { type boolean; description "Disable the default vlan for the switch"; } leaf default-mac-address { type base-cmn:mac-address; description "This will be the default MAC address for the switch."; } leaf temperature { type int32; description "Current temperature of NPU"; } leaf acl-table-min-priority { type uint32; config false; description "Lowest ACL table priority supported."; } leaf acl-table-max-priority { type uint32; config false; description "Highest ACL table priority supported."; } leaf acl-entry-min-priority { type uint32; config false; description "Lowest ACL entry priority supported."; } leaf acl-entry-max-priority { type uint32; config false; description "Highest ACL entry priority supported."; } leaf max-mtu { type uint32; config false; description "Maximum MTU supported."; } leaf total-buffer-size { type uint32; config false; description "switch total buffer size in KB."; } leaf ingress-buffer-pool-num { type uint32; config false; description "switch total number of ingress buffer pools"; } leaf egress-buffer-pool-num { type uint32; config false; description "switch total number of egress buffer pools"; } leaf counter-refresh-interval { type uint32; description "Time interval in seconds at which the counters will be read from NPU"; } leaf switch-profile { type profile-name; description "configure switch profile, each profile will have different set of ports with differnt speeds conbination"; } leaf-list supported-profiles { type profile-name; config false; description "list of all supported switch profiles for a given platform"; } leaf default-profile { type profile-name; config false; description "default switch profile"; } leaf uft-mode { type uft-mode; default "default-mode"; description "configured Unified Forwarding Table (UFT) mode"; } list uft-mode-info { key "mode"; config false; description "describes the table size values for the given mode. by default returns all the modes and their respective table size"; leaf mode { type uft-mode; description "Unified Forwarding Table (UFT) mode"; } uses mode-info; } // list uft-mode-info leaf ecn-ect-threshold-enable { type boolean; description "Globally enable/disable ECN ECT thresholds"; } leaf ipv6-extended-prefix-routes { type uint32; default '0'; description "Configure number of extended IPv6 prefix routes with the mask length of /65 to /128 in LPM table"; } leaf max-ipv6-extended-prefix-routes { type uint32; config false; description "Maximum number of extended IPv6 prefix routes with the mask length of /65 to /128 supported in LPM table"; } leaf ipv6-extended-prefix-routes-lpm-block-size { type uint32; config false; description "Configuration of extended IPv6 prefix routes with the mask length of /65 to /128 in LPM table supports in multiples of blocks, This is for each block size."; } leaf bst-enable { type boolean; default "false"; description "Enable/disable Buffer Statistics Tracking feature(BST). When enabled BST allows to take snapshot of buffer utilization in system and allows setting thresholds to generate events"; } leaf bst-tracking-mode { type bst-tracking-mode; description "Configuration of buffer utilization tracking mode when BST enabled."; } leaf deep-buffer-mode-enable { type boolean; default 'false'; description "Enable/disable per switch Deep Buffer Mode"; } leaf vxlan-riot-enable { type boolean; default 'true'; description "Enable/disable VXLAN (Virtual Extensible LAN) RIOT (Routing In and Out of Tunnel), by default, VXLAN RIOT is enabled."; } leaf max-vxlan-overlay-rifs { type uint32; description "Maximum number of VXLAN overlay router interfaces in blocks of 2K when VXLAN RIOT is enabled, the default value varies based on platform capability."; } leaf max-vxlan-overlay-nexthops { type uint32; description "Maximum number of VXLAN overlay nexthops in blocks of 4K when VXLAN RIOT is enabled, the default value varies based on platform capability."; } leaf pfc-dlr-action { type pfc-dlr-action; default 'FORWARD'; description "Action to take on PFC Deadlock Recovery"; } leaf pfc-dld-interval-range-min { type uint32; units "millisecond"; config false; description "Minimum allowable value for PFC Deadlock Detection Interval range in milliseconds"; } leaf pfc-dld-interval-range-max { type uint32; units "millisecond"; config false; description "Maximum allowable value for PFC Deadlock Detection Interval range in milliseconds"; } leaf pfc-dlr-interval-range-min { type uint32; units "millisecond"; config false; description "Minimum allowable value for PFC Deadlock Recovery Interval range in milliseconds"; } leaf pfc-dlr-interval-range-max { type uint32; units "millisecond"; config false; description "Maximum allowable value for PFC Deadlock Recovery Interval range in milliseconds"; } list pfc-dl-cfg-params { key "traffic-class"; leaf traffic-class { type uint32 { range "0..7"; } } leaf dld-interval { type uint32; units "millisecond"; description "PFC Traffic Class Deadlock Detection Interval in milliseconds"; } leaf dlr-interval { type uint32; units "millisecond"; description "PFC Traffic Class Deadlock Recovery Interval in milliseconds"; } } // list pfc-dl-cfg-params } // list switching-entity list switch-stats { key "switch-id"; description "List of switch resource counters per switch-id."; leaf switch-id { type base-cmn:logical-switch-id; description "Switch Identifier"; } leaf available-ipv4-route-entries { type yang:gauge64; config false; description "Number of available IPv4 route entries in IPv4 routing table"; } leaf available-ipv6-route-entries { type yang:gauge64; config false; description "Number of available IPv6 route entries in IPv6 routing table"; } leaf available-ipv4-neighbour-entries { type yang:gauge64; config false; description "Number of available IPv4 neighbour entries in IPv4 neighbour table"; } leaf available-ipv6-neighbour-entries { type yang:gauge64; config false; description "Number of available IPv6 neighbour entries in IPv6 neighbour table"; } leaf available-fdb-entries { type yang:gauge64; config false; description "Number of available FDB entries in switch"; } } // list switch-stats } // container switching-entities rpc diag_shell { description "This RPC implements a diag shell that allows to run debug commands on the switch."; input { leaf command { type string; description "A valid diagnostic shell command."; } } output { leaf result { type string; description "The commmand output as a string. This string will need to be parsed and is not standard."; } } } // rpc diag_shell rpc set_log { description "This RPC implements a method that allows to change the switch subsystem log level"; input { leaf subsystem-id { type subsystem; description "Subsytem id of the switch"; } leaf level { type log-level; description "Log level to be set"; } } } // rpc set_log } // module dell-base-switch-element
© 2023 YumaWorks, Inc. All rights reserved.