dell-base-interface-common

This model implements all the interface/port attributes and/or RPCs common to many other models. Copyright (c) 2015-2019 by Del...

  • Version: 2019-03-06

    dell-base-interface-common@2019-03-06


    
      module dell-base-interface-common {
    
        yang-version 1;
    
        namespace
          "http://www.dellemc.com/networking/os10/dell-base-interface-common";
    
        prefix base-if;
    
        import iana-if-type {
          prefix ianaift;
        }
        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 implements all the interface/port attributes and/or RPCs common to many other models.
    
    Copyright (c) 2015-2019 by Dell EMC, All rights reserved.";
    
        revision "2019-03-06" {
          description
            "Add MAC learning mode HW disable only.";
          reference
            "Network Platform Abstraction";
    
        }
    
        revision "2018-12-10" {
          description
            "Added 80GIGE speed for new double density media which use dual 40G banks";
          reference
            "Network Platform Abstraction";
    
        }
    
        revision "2018-09-12" {
          description
            "Adding Virtual Network identity.";
          reference
            "Network Platform Abstraction";
    
        }
    
        revision "2018-08-10" {
          description
            "Fixing pyang IETF errors and adding documentation to the model.";
          reference
            "Network Platform Abstraction";
    
        }
    
        revision "2018-07-03" {
          description
            "Adding unicast, multicast and broadcast flooding enabled attribute to
    remote endpoint to have fine grain control over the type of flooding to
    be enabled on remote endpoint.";
          reference
            "Network Platform Abstraction";
    
        }
    
        revision "2018-05-03" {
          description
            "Adding support to configure MAC learning mode for remote endpoint for VxLAN.";
          reference
            "Network Platform Abstraction";
    
        }
    
        revision "2018-04-09" {
          description
            "Adding supported-profiles grouping for hybrid-group";
          reference
            "Network Platform Abstraction";
    
        }
    
        revision "2018-03-12" {
          description
            "Add statistics grouping for remote endpoint.";
          reference
            "Network Platform Abstraction";
    
        }
    
        revision "2017-10-10" {
          description
            "Add vxlan and vlanSubInterface identity. Add typedef for bridge mode.
    Add grouping for vn-remote-endpoints for VxLAN";
          reference
            "Network Platform Abstraction";
    
        }
    
        revision "2017-10-05" {
          description
            "Add an enumeration for VLAN type INTERNAL.";
          reference
            "Network Platform Abstraction";
    
        }
    
        revision "2017-10-04" {
          description
            "Add MAC learn mode types.";
          reference
            "Network Platform Abstraction";
    
        }
    
        revision "2017-09-27" {
          description
            "Add an enumeration for supported auto-negotiation values.";
          reference
            "Network Platform Abstraction";
    
        }
    
        revision "2015-01-29" {
          description "Initial revision.";
          reference
            "Network Platform Abstraction";
    
        }
    
    
        identity null {
          base ianaift:iana-interface-type;
          description "Null interface type";
        }
    
        identity management {
          base ianaift:iana-interface-type;
          description
            "Management interface type";
        }
    
        identity cpu {
          base ianaift:iana-interface-type;
          description "CPU interface type";
        }
    
        identity vlanSubInterface {
          base ianaift:iana-interface-type;
          description "VLAN sub interface type";
        }
    
        identity vxlan {
          base ianaift:iana-interface-type;
          description "VXLAN interface type";
        }
    
        identity macvlan {
          base ianaift:iana-interface-type;
          description "Macvlan interface type";
        }
    
        identity virtualNetwork {
          base ianaift:iana-interface-type;
          description
            "Virtual Network interface type";
        }
    
        typedef supported-autoneg {
          type enumeration {
            enum "NOT_SUPPORTED" {
              value 1;
              description
                "autoneg not supported.";
            }
            enum "ON_SUPPORTED" {
              value 2;
              description
                "autoneg on supported only.";
            }
            enum "OFF_SUPPORTED" {
              value 3;
              description
                "autoneg off supported only.";
            }
            enum "BOTH_SUPPORTED" {
              value 4;
              description
                "autoneg on and off supported.";
            }
          }
          description
            "Enumeration of supported auto-negotiation values.";
        }
    
        typedef bridge-mode {
          type enumeration {
            enum "1D" {
              value 1;
              description
                "Bridge is VLAN unaware.";
            }
            enum "1Q" {
              value 2;
              description
                "Bridge is VLAN aware.";
            }
          }
          description
            "Enumeration of bridge mode";
        }
    
        typedef speed {
          type enumeration {
            enum "0MBPS" {
              value 0;
              description "0Mbps data rate.";
            }
            enum "10MBPS" {
              value 1;
              description "10Mbps data rate.";
            }
            enum "100MBPS" {
              value 2;
              description "100Mbps data rate.";
            }
            enum "1GIGE" {
              value 3;
              description "1G data rate.";
            }
            enum "10GIGE" {
              value 4;
              description "10G data rate.";
            }
            enum "25GIGE" {
              value 5;
              description "25G data rate.";
            }
            enum "40GIGE" {
              value 6;
              description "40G data rate.";
            }
            enum "100GIGE" {
              value 7;
              description "100G data rate.";
            }
            enum "AUTO" {
              value 8;
              description
                "The speed is dependent on the media type.";
            }
            enum "20GIGE" {
              value 9;
              description "20G data rate.";
            }
            enum "50GIGE" {
              value 10;
              description "50G data rate.";
            }
            enum "200GIGE" {
              value 11;
              description "200G data rate.";
            }
            enum "400GIGE" {
              value 12;
              description "400G data rate.";
            }
            enum "4GFC" {
              value 13;
              description "4G FC data rate.";
            }
            enum "8GFC" {
              value 14;
              description "8G FC data rate.";
            }
            enum "16GFC" {
              value 15;
              description "16G FC data rate.";
            }
            enum "32GFC" {
              value 16;
              description "32G FC data rate.";
            }
            enum "2GFC" {
              value 17;
              description "2G FC data rate.";
            }
            enum "64GFC" {
              value 18;
              description "64G FC data rate.";
            }
            enum "128GFC" {
              value 19;
              description "128G FC data rate.";
            }
            enum "4GIGE" {
              value 20;
              description
                "4G Ethernet data rate.";
            }
            enum "1GFC" {
              value 21;
              description "1G FC data rate.";
            }
            enum "80GIGE" {
              value 22;
              description
                "80G Ethernet data rate.";
            }
          }
          description
            "Enumeration of port speed.";
        }
    
        typedef mode {
          type enumeration {
            enum "MODE_NONE" {
              value 1;
              description "";
            }
            enum "MODE_L2" {
              value 2;
              description
                "The port only supports L2.";
            }
            enum "MODE_L2HYBRID" {
              value 3;
              description
                "The port supports L2 hybrid.";
            }
            enum "MODE_L3" {
              value 4;
              description
                "The port only supports L3.";
            }
            enum "MODE_L2DISABLED" {
              value 5;
              description
                "This port is not in L2 Mode";
            }
          }
          description
            "Enumeration of physical interface mode";
        }
    
        typedef lag-mode-type {
          type enumeration {
            enum "STATIC" {
              value 1;
              description "";
            }
            enum "DYNAMIC" {
              value 2;
              description "";
            }
          }
          description "LAG Mode";
        }
    
        typedef lacp-mode-type {
          type enumeration {
            enum "ACTIVE" {
              value 1;
              description "";
            }
            enum "PASSIVE" {
              value 2;
              description "";
            }
          }
          description "LACP MODE";
        }
    
        typedef vlan-type {
          type enumeration {
            enum "DATA" {
              value 1;
            }
            enum "MANAGEMENT" {
              value 2;
            }
            enum "INTERNAL" {
              value 3;
              description
                "Applications can use this VLAN type to create VLAN used for internal purpose.";
            }
          }
          description
            "VLAN-type type definition";
        }
    
        grouping physical-port-address {
          description
            "Physical Location(Slot-Unit) of the port";
          leaf unit-id {
            type uint32;
            description
              "The unit containing the front panel port";
          }
    
          leaf slot-id {
            type uint32;
            description
              "the slot id of the physical port.";
          }
    
          uses npu-port;
        }  // grouping physical-port-address
    
        grouping npu-port {
          description
            "NAS npu port information.";
          leaf npu-id {
            type base-cmn:npu-id;
            description
              "This denotes the npu Id containing the physical port";
          }
    
          leaf port-id {
            type base-cmn:npu-port-id;
            description
              "This denotes the port Id in the npu";
          }
        }  // grouping npu-port
    
        grouping common {
          description
            "This is the generic port definition.  Can be reused by any generic interface object.";
          leaf switch-id {
            type base-cmn:logical-switch-id;
            description "Logical Switch ID";
          }
    
          uses npu-port;
        }  // grouping common
    
        grouping mac-learn-limit {
          description
            "Group of Mac Learn Limit configuration attributes";
          leaf learn-limit {
            type uint32;
            description
              "Maximum number of MACs allowed to be learned on an interface";
          }
    
          leaf dynamic {
            type boolean;
            default "false";
            description
              "Flag indicating whether the entry created is subject to aging.";
          }
    
          leaf station-move {
            type boolean;
            default "false";
            description
              "Flag indicating whether the station-move is allowed or not";
          }
    
          leaf mac-sticky {
            type boolean;
            default "false";
            description
              "If True then all dynamically learnt addresses will be converted into static MAC address
    and it will not be learnt/moved on other ports. Any newly learnt MAC is also converted
    into sticky MAC address. mac-sticky flag takes precedence over dynamic flag";
          }
    
          leaf mll-violation-actions {
            type enumeration {
              enum "LOG" {
                value 1;
                description
                  "Send the Mac-learn-limit violation notification to syslog";
              }
              enum "SHUTDOWN" {
                value 2;
                description
                  "Shutdown the Interface";
              }
            }
            description
              "Configurable mac learn limit (mll) actions when mac learn limit is violated";
          }
    
          leaf msm-violation {
            type enumeration {
              enum "LOG" {
                value 1;
                description
                  "Send the Mac-station-move-violation notification to syslog";
              }
              enum "OFFENDING_SHUTDOWN" {
                value 2;
                description
                  "Shutdown the offending interface";
              }
              enum "ORIGINAL_SHUTDOWN" {
                value 3;
                description
                  "Shutdown the original interface";
              }
              enum "BOTH_SHUTDOWN" {
                value 4;
                description
                  "Disable both the interfaces";
              }
            }
            description
              "MAC station move (msm) violation actions.";
          }
        }  // grouping mac-learn-limit
    
        typedef phy-mode-type {
          type enumeration {
            enum "ETHERNET" {
              value 1;
            }
            enum "FC" {
              value 2;
            }
          }
          description
            "Enumeration of possible PHY modes of a physical interface";
        }
    
        typedef mac-learn-mode {
          type enumeration {
            enum "DROP" {
              value 1;
              description
                "Drop packets with unkown source MAC address in both OS and HW. Do not learn, Do not forward";
            }
            enum "DISABLE" {
              value 2;
              description
                "Do not learn new source MAC address in both OS and HW. Forward Based on destination MAC";
            }
            enum "HW" {
              value 3;
              description
                "OS and Hardware Learning. Learn source MAC address. Forward based on destination";
            }
            enum "CPU_TRAP" {
              value 4;
              description
                "Trap packets with unknown source MAC address to CPU from HW. Do not learn. Do not forward";
            }
            enum "CPU_LOG" {
              value 5;
              description
                "Trap packets with unknown source MAC address to CPU from HW. Do not learn. Forward based on destination MAC";
            }
            enum "HW_DISABLE_ONLY" {
              value 6;
              description
                "Do not learn new source MAC address only in the HW.";
            }
          }
          description
            "Enumeration of all possible MAC-learning modes that can be configured on the interface.";
        }
    
        grouping supported-profiles {
          description
            "Group of lists describing the profiles supported on the interface.";
          list supported-profiles {
            key "profile-name";
            description
              "Profile modes supported on hybrid group.
    Profile mode is a set of breakout mode and speed to be applied on port.
    Each profile is uniquely identified by the key 'profile-name'.";
            leaf profile-name {
              type string;
              description
                "Name of the profile to be supported on hybrid-group";
            }
    
            leaf profile-description {
              type string;
              description
                "Description of the profile to be supported on hybrid-group";
            }
          }  // list supported-profiles
        }  // grouping supported-profiles
    
        grouping breakout-capabilities {
          description
            "Group of Breakout properties";
          list br-cap {
            key "phy-mode breakout-mode port-speed";
            description
              "List of breakout capabilities with max port speeds.";
            leaf phy-mode {
              type phy-mode-type;
              description
                " Physical layer mode (FC or Ethernet)";
            }
    
            leaf breakout-mode {
              type base-cmn:breakout-type;
              description
                "Breakout mode capability.";
            }
    
            leaf port-speed {
              type speed;
              description "Configured speed.";
            }
    
            leaf skip-ports {
              type uint32;
              description
                "Skip ports between two active port for the breakout mode";
            }
          }  // list br-cap
        }  // grouping breakout-capabilities
    
        grouping stats {
          description
            "Group of counters related to packet flow";
          leaf in-pkts {
            type yang:counter64;
            description
              "Total number of incoming packets";
          }
    
          leaf out-pkts {
            type yang:counter64;
            description
              "Total number of outgoing packets";
          }
    
          leaf in-octets {
            type yang:counter64;
            description
              "Total number of incoming bytes";
          }
    
          leaf out-octets {
            type yang:counter64;
            description
              "Total number of outgoing bytes";
          }
        }  // grouping stats
    
        grouping vn-remote-endpoints {
          description
            "Group of VTEP Remote Endpoint Properties";
          list remote-endpoint {
            key "addr-family addr";
            description
              "List of remote VTEP endpoints, identified by the key-pair 'addr-family addr',
    which are part of this VXLAN.";
            uses base-cmn:ip;
    
            leaf tunnel-id {
              type base-cmn:base-obj-id-type;
              config false;
              description
                "Tunnel Id of the corresponding remote endpoint.";
            }
    
            leaf flooding-enabled {
              type boolean;
              config false;
              status deprecated;
              description
                "The remote endpoint address is part of flooding domain if this flag is set.
    This attribute is deprecated; instead individual flooding attribute for unicast, multicast and
    broadcast are used.";
            }
    
            leaf unicast-flooding-enabled {
              type boolean;
              default "true";
              description
                "The remote endpoint address is part of unicast flooding domain
    if this flag is set to true.";
            }
    
            leaf multicast-flooding-enabled {
              type boolean;
              default "true";
              description
                "The remote endpoint address is part of multicast flooding domain
    if this flag is set to true.";
            }
    
            leaf broadcast-flooding-enabled {
              type boolean;
              default "true";
              description
                "The remote endpoint address is part of broadcast flooding domain
    if this flag is set to true.";
            }
    
            leaf mac-learning-mode {
              type mac-learn-mode;
              description
                "MAC-learning mode for the remote endpoint.";
            }
          }  // list remote-endpoint
        }  // grouping vn-remote-endpoints
      }  // module dell-base-interface-common
    

© 2023 YumaWorks, Inc. All rights reserved.