dell-base-switch-element

This model contains a collection of YANG definitions for managing the global configuration and operational data for the NPU. Co...

  • Version: 2018-11-12

    dell-base-switch-element@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.