diff --git a/EOS-4.21.3F/experimental/eos/models/arista-eos-types.yang b/EOS-4.21.3F/experimental/eos/models/arista-eos-types.yang
new file mode 100644
index 0000000..cc473ca
--- /dev/null
+++ b/EOS-4.21.3F/experimental/eos/models/arista-eos-types.yang
@@ -0,0 +1,39 @@
+module arista-eos-types {
+ yang-version 1;
+ namespace "http://arista.com/yang/experimental/eos/eos-types";
+ prefix eos-types;
+
+ organization
+ "Arista Networks ";
+ description
+ "Common type definitions for Arista YANG models
+
+ Copyright (c) 2016 Arista Networks, Inc. All rights reserved.";
+
+ revision 2016-10-14 {
+ description
+ "Initial revision";
+ }
+
+ typedef float {
+ type decimal64 {
+ fraction-digits 5;
+ }
+ description
+ "float";
+ }
+
+ typedef double {
+ type decimal64 {
+ fraction-digits 5;
+ }
+ description
+ "double";
+ }
+
+ typedef Arnet-IntfId {
+ type string;
+ description
+ "Arista Interface ID";
+ }
+}
diff --git a/EOS-4.21.3F/experimental/eos/models/arista-exp-eos.yang b/EOS-4.21.3F/experimental/eos/models/arista-exp-eos.yang
new file mode 100644
index 0000000..17cc2fb
--- /dev/null
+++ b/EOS-4.21.3F/experimental/eos/models/arista-exp-eos.yang
@@ -0,0 +1,21 @@
+module arista-exp-eos {
+ yang-version 1;
+ namespace "http://arista.com/yang/experimental/eos";
+ prefix eos-exp;
+
+ organization
+ "Arista Networks ";
+ description
+ "arista/eos containers
+
+ Copyright (c) 2016 Arista Networks, Inc. All rights reserved.";
+
+ revision 2016-11-09 {
+ description
+ "Initial release";
+ }
+
+ container arista {
+ container eos;
+ }
+}
diff --git a/EOS-4.21.3F/experimental/eos/models/cert/arista-gnoi-cert.yang b/EOS-4.21.3F/experimental/eos/models/cert/arista-gnoi-cert.yang
new file mode 100644
index 0000000..891399d
--- /dev/null
+++ b/EOS-4.21.3F/experimental/eos/models/cert/arista-gnoi-cert.yang
@@ -0,0 +1,60 @@
+module arista-gnoi-cert {
+ namespace "http://arista.com/yang/cert/gnoi-cert";
+ prefix arista-gnoi-cert;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+
+ organization
+ "Arista Networks, Inc.";
+ contact
+ "Arista Networks, Inc.
+ Product Support";
+ description
+ "This module provides reporting for the gnoi.cert service.
+ Copyright (c) 2018 Arista Networks, Inc. All rights reserved.";
+
+ revision 2018-01-15 {
+ description
+ "Initial definition.";
+ reference "https://github.com/openconfig/gnoi";
+ }
+
+ grouping certificate-config {
+ leaf certificate-id {
+ type string;
+ }
+ }
+
+ grouping certificate-status {
+ leaf pem-certificate {
+ description
+ "Current certificate data in PEM format.";
+ type string;
+ }
+ leaf not-before {
+ type yang:timeticks;
+ }
+ leaf not-after {
+ type yang:timeticks;
+ }
+ }
+
+ container certificates {
+ list certificate {
+ key "certificate-id";
+ leaf certificate-id {
+ type leafref {
+ path "../config/certificate-id";
+ }
+ }
+ container config {
+ uses certificate-config;
+ }
+ container status {
+ uses certificate-status;
+ }
+ }
+ }
+}
diff --git a/EOS-4.21.3F/experimental/eos/models/igmpsnooping/arista-exp-eos-igmpsnooping.yang b/EOS-4.21.3F/experimental/eos/models/igmpsnooping/arista-exp-eos-igmpsnooping.yang
new file mode 100644
index 0000000..a87ef33
--- /dev/null
+++ b/EOS-4.21.3F/experimental/eos/models/igmpsnooping/arista-exp-eos-igmpsnooping.yang
@@ -0,0 +1,87 @@
+module arista-exp-eos-igmpsnooping {
+ yang-version 1;
+ namespace "http://arista.com/yang/experimental/igmpsnooping";
+ prefix igmpsnooping-exp;
+
+ import arista-eos-types {
+ prefix eos-types;
+ }
+ import arista-exp-eos {
+ prefix eos-exp;
+ }
+ import ietf-inet-types {
+ prefix inet;
+ }
+
+ organization
+ "Arista Networks ";
+ description
+ "Models for the IGMP Snooping subsystem of Arista EOS
+
+ Copyright (c) 2017 Arista Networks, Inc. All rights reserved.";
+
+ revision 2017-10-23 {
+ description
+ "Initial revision";
+ }
+
+ augment "/eos-exp:arista/eos-exp:eos" {
+ container bridging {
+ container igmpsnooping {
+ container config {
+ description
+ "IGMP Snooping configuration";
+ uses Bridging-IgmpSnooping-Config;
+ }
+ }
+ }
+ }
+
+ grouping Bridging-IgmpSnooping-Config {
+ list vlanConfig {
+ key "vlanId";
+ description
+ "Per VLAN IGMP Snooping configuration";
+ uses Bridging-IgmpSnooping-VlanConfig;
+ }
+ }
+
+ grouping Bridging-IgmpSnooping-IpGroup {
+ description
+ "IGMP Snooping static IP Group configuration";
+ leaf addr {
+ type inet:ipv4-address;
+ description
+ "Multicast Group IP Address";
+ }
+ list intf {
+ key "index";
+ description
+ "List of interfaces interested in multicast IP Group";
+ leaf index {
+ type eos-types:Arnet-IntfId;
+ description
+ "Interface ID";
+ }
+ leaf value {
+ type boolean;
+ description
+ "True if interface ID is in the list";
+ }
+ }
+ }
+
+ grouping Bridging-IgmpSnooping-VlanConfig {
+ description
+ "Contains list of static IGMP Snooping group configurations";
+ list ipGroup {
+ key "addr";
+ uses Bridging-IgmpSnooping-IpGroup;
+ }
+ leaf vlanId {
+ type uint16;
+ description
+ "VLAN ID";
+ }
+ }
+}
diff --git a/EOS-4.21.3F/experimental/eos/models/multicast/arista-exp-eos-multicast.yang b/EOS-4.21.3F/experimental/eos/models/multicast/arista-exp-eos-multicast.yang
new file mode 100644
index 0000000..c3dbc5b
--- /dev/null
+++ b/EOS-4.21.3F/experimental/eos/models/multicast/arista-exp-eos-multicast.yang
@@ -0,0 +1,123 @@
+module arista-exp-eos-multicast {
+ yang-version 1;
+ namespace "http://arista.com/yang/experimental/multicast";
+ prefix multicast-exp;
+
+ import arista-eos-types {
+ prefix eos-types;
+ }
+ import arista-exp-eos {
+ prefix eos-exp;
+ }
+ import ietf-inet-types {
+ prefix inet;
+ }
+
+ organization
+ "Arista Networks ";
+ description
+ "Models for the static multicast routing subsystem of Arista EOS
+
+ Copyright (c) 2017 Arista Networks, Inc. All rights reserved.";
+
+ revision 2017-10-20 {
+ description
+ "Initial revision";
+ }
+
+ augment "/eos-exp:arista/eos-exp:eos" {
+ container routing {
+ container multicast {
+ container routeconfig {
+ container static {
+ description
+ "IP Static Multicast Routing Config.";
+ uses McastCommon-StaticMrouteConfigColl;
+ }
+ }
+ }
+ }
+ }
+
+ grouping McastCommon-StaticMrouteConfig {
+ list staticMcastRoute {
+ key "key-g key-s";
+ description
+ "Static Multicast Route Key.";
+ leaf key-g {
+ type inet:ip-prefix;
+ description
+ "Multicast Group prefix.";
+ }
+ leaf key-s {
+ type inet:ip-prefix;
+ description
+ "Multicast Source Prefix.";
+ }
+ leaf iif {
+ type eos-types:Arnet-IntfId;
+ description
+ "iif.";
+ }
+ list oifs {
+ key "index";
+ description
+ "list of oifs.";
+ leaf index {
+ type eos-types:Arnet-IntfId;
+ description
+ "interface id.";
+ }
+ leaf value {
+ type boolean;
+ description
+ "true if interface is in oif list.";
+ }
+ }
+ leaf routePriority {
+ type uint8;
+ description
+ "route priority.";
+ }
+ leaf rpaId {
+ type uint16;
+ description
+ "rpa index.";
+ }
+ leaf toCpu {
+ type boolean;
+ description
+ "true if flow needs to be sent to cpu.";
+ }
+ }
+ leaf vrfName {
+ type string;
+ description
+ "vrf name.";
+ }
+ }
+
+ grouping McastCommon-StaticMrouteConfigColl {
+ list intfConfig {
+ key "index";
+ description
+ "list of interfaces on which static multicast routing is enabled.";
+ leaf index {
+ type eos-types:Arnet-IntfId;
+ description
+ "interface id.";
+ }
+ leaf value {
+ type boolean;
+ description
+ "true if static multicast routing is enabled on interface.";
+ }
+ }
+ list vrfConfig {
+ key "vrfName";
+ description
+ "static multicast routes configured per vrf.";
+ uses McastCommon-StaticMrouteConfig;
+ }
+ }
+}
diff --git a/EOS-4.21.3F/experimental/eos/models/qos/arista-exp-eos-qos-acl-config.yang b/EOS-4.21.3F/experimental/eos/models/qos/arista-exp-eos-qos-acl-config.yang
new file mode 100644
index 0000000..030bb29
--- /dev/null
+++ b/EOS-4.21.3F/experimental/eos/models/qos/arista-exp-eos-qos-acl-config.yang
@@ -0,0 +1,1289 @@
+module arista-exp-eos-qos-acl-config {
+ yang-version 1;
+ namespace "http://arista.com/yang/experimental/eos/qos/acl";
+ prefix qos-acl-config-exp;
+
+ import arista-eos-types {
+ prefix eos-types;
+ }
+ import arista-exp-eos {
+ prefix eos-exp;
+ }
+ import arista-exp-eos-qos {
+ prefix qos-exp;
+ }
+
+ organization
+ "Arista Networks ";
+ description
+ "Models for qos subsystem of Arista EOS
+ Copyright (c) 2017 Arista Networks, Inc. All rights reserved.";
+
+ revision 2017-09-26 {
+ description
+ "Initial revision";
+ }
+
+ augment "/eos-exp:arista/eos-exp:eos/qos-exp:qos" {
+ container acl {
+ description
+ "qos acl subsystem config/state";
+ container input {
+ description
+ "config";
+ container cli {
+ description
+ "set from CLI/Openconfig";
+ uses Qos-Input-AclConfig;
+ }
+ }
+ }
+ }
+
+ typedef Acl-Ecn {
+ type enumeration {
+ enum ce {
+ description
+ "Type: Acl::Ecn, Name: ce, Value: 3";
+ }
+ enum dontCare {
+ description
+ "Type: Acl::Ecn, Name: dontCare, Value: 0";
+ }
+ enum ect {
+ description
+ "Type: Acl::Ecn, Name: ect, Value: 4";
+ }
+ enum ectCe {
+ description
+ "Type: Acl::Ecn, Name: ectCe, Value: 1";
+ }
+ enum nonEct {
+ description
+ "Type: Acl::Ecn, Name: nonEct, Value: 2";
+ }
+ }
+ description
+ "Type: Acl::Ecn";
+ }
+
+ grouping Qos-Action {
+ description
+ "Type: Qos::Action";
+ leaf actionType {
+ type Qos-ActionType;
+ description
+ "Path: /actionType, Type: enum Qos::ActionType";
+ }
+ container rate {
+ description
+ "Path: /rate, Type: entity Qos::ActionRate";
+ uses Qos-ActionRate;
+ }
+ leaf value {
+ type uint32;
+ description
+ "Path: /value, Type: U32";
+ }
+ }
+
+ grouping Qos-ActionRate {
+ description
+ "Type: Qos::ActionRate";
+ leaf rateUnit {
+ type Qos-RateUnit;
+ description
+ "Path: /rateUnit, Type: enum Qos::RateUnit";
+ }
+ leaf val {
+ type uint32;
+ description
+ "Path: /val, Type: value Qos::ActionRateType";
+ }
+ }
+
+ typedef Qos-ActionType {
+ type enumeration {
+ enum actionSetBandwidth {
+ description
+ "Type: Qos::ActionType, Name: actionSetBandwidth, Value: 1";
+ }
+ enum actionSetCos {
+ description
+ "Type: Qos::ActionType, Name: actionSetCos, Value: 2";
+ }
+ enum actionSetDrop {
+ description
+ "Type: Qos::ActionType, Name: actionSetDrop, Value: 5";
+ }
+ enum actionSetDropPrecedence {
+ description
+ "Type: Qos::ActionType, Name: actionSetDropPrecedence, Value: 6";
+ }
+ enum actionSetDscp {
+ description
+ "Type: Qos::ActionType, Name: actionSetDscp, Value: 3";
+ }
+ enum actionSetShape {
+ description
+ "Type: Qos::ActionType, Name: actionSetShape, Value: 0";
+ }
+ enum actionSetTc {
+ description
+ "Type: Qos::ActionType, Name: actionSetTc, Value: 4";
+ }
+ }
+ description
+ "Type: Qos::ActionType";
+ }
+
+ typedef Qos-BurstUnit {
+ type enumeration {
+ enum burstUnitBytes {
+ description
+ "Type: Qos::BurstUnit, Name: burstUnitBytes, Value: 0";
+ }
+ enum burstUnitKBytes {
+ description
+ "Type: Qos::BurstUnit, Name: burstUnitKBytes, Value: 1";
+ }
+ enum burstUnitMBytes {
+ description
+ "Type: Qos::BurstUnit, Name: burstUnitMBytes, Value: 2";
+ }
+ enum burstUnitPackets {
+ description
+ "Type: Qos::BurstUnit, Name: burstUnitPackets, Value: 3";
+ }
+ }
+ description
+ "Type: Qos::BurstUnit";
+ }
+
+ grouping Qos-ClassAction {
+ description
+ "Type: Qos::ClassAction";
+ leaf count {
+ type boolean;
+ description
+ "Path: /count, Type: bool";
+ }
+ leaf name {
+ type string;
+ description
+ "Path: /name, Type: Tac::Name";
+ }
+ container policer {
+ description
+ "Path: /policer, Type: entity Qos::PolicerConfig";
+ uses Qos-PolicerConfig;
+ }
+ list policyAction {
+ key "actionType";
+ description
+ "Path: /policyAction, Type: ['actionType' enum Qos::ActionType]entity Qos::Action";
+ uses Qos-Action;
+ }
+ }
+
+ grouping Qos-ClassMapConfig {
+ description
+ "Type: Qos::ClassMapConfig";
+ leaf cpStaticType {
+ type Qos-ClassMapCpStaticType;
+ description
+ "Path: /cpStaticType, Type: enum Qos::ClassMapCpStaticType";
+ }
+ leaf cpType {
+ type Qos-ClassMapCpType;
+ description
+ "Path: /cpType, Type: enum Qos::ClassMapCpType";
+ }
+ leaf dynamic {
+ type boolean;
+ description
+ "Path: /dynamic, Type: bool";
+ }
+ list match {
+ key "option";
+ description
+ "Path: /match, Type: ['option' enum Qos::ClassMapMatchOption]entity Qos::ClassMapMatch";
+ uses Qos-ClassMapMatch;
+ }
+ leaf matchCondition {
+ type Qos-ClassMapMatchCondition;
+ description
+ "Path: /matchCondition, Type: enum Qos::ClassMapMatchCondition";
+ }
+ leaf name {
+ type string;
+ description
+ "Path: /name, Type: Tac::Name";
+ }
+ leaf type {
+ type Qos-MapType;
+ description
+ "Path: /type, Type: enum Qos::MapType";
+ }
+ leaf uniqueId {
+ type eos-types:double;
+ description
+ "Path: /uniqueId, Type: value Qos::UniqueId";
+ }
+ leaf version {
+ type uint32;
+ description
+ "Path: /version, Type: U32";
+ }
+ }
+
+ typedef Qos-ClassMapCpStaticType {
+ type enumeration {
+ enum cmapCpStaticAclLog {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticAclLog, Value: 20";
+ }
+ enum cmapCpStaticArp {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticArp, Value: 4";
+ }
+ enum cmapCpStaticArpInspect {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticArpInspect, Value: 57";
+ }
+ enum cmapCpStaticArpResolver {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticArpResolver, Value: 17";
+ }
+ enum cmapCpStaticBfd {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticBfd, Value: 37";
+ }
+ enum cmapCpStaticBgp {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticBgp, Value: 35";
+ }
+ enum cmapCpStaticBpdu {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticBpdu, Value: 1";
+ }
+ enum cmapCpStaticCfm {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticCfm, Value: 55";
+ }
+ enum cmapCpStaticCfmSnoop {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticCfmSnoop, Value: 56";
+ }
+ enum cmapCpStaticCvx {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticCvx, Value: 49";
+ }
+ enum cmapCpStaticCvxHeartbeat {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticCvxHeartbeat, Value: 50";
+ }
+ enum cmapCpStaticDefault {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticDefault, Value: 19";
+ }
+ enum cmapCpStaticDot1xMab {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticDot1xMab, Value: 54";
+ }
+ enum cmapCpStaticDrop {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticDrop, Value: 18";
+ }
+ enum cmapCpStaticEgressAclLog {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticEgressAclLog, Value: 45";
+ }
+ enum cmapCpStaticGlean {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticGlean, Value: 13";
+ }
+ enum cmapCpStaticIgmp {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticIgmp, Value: 10";
+ }
+ enum cmapCpStaticInvalid {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticInvalid, Value: 0";
+ }
+ enum cmapCpStaticIpBroadcast {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticIpBroadcast, Value: 23";
+ }
+ enum cmapCpStaticIpMc {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticIpMc, Value: 22";
+ }
+ enum cmapCpStaticIpUnicast {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticIpUnicast, Value: 21";
+ }
+ enum cmapCpStaticIpmcMiss {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticIpmcMiss, Value: 8";
+ }
+ enum cmapCpStaticIpmcRsvd {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticIpmcRsvd, Value: 7";
+ }
+ enum cmapCpStaticIpv6Nd {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticIpv6Nd, Value: 24";
+ }
+ enum cmapCpStaticL2Broadcast {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticL2Broadcast, Value: 27";
+ }
+ enum cmapCpStaticL2Rsvd {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticL2Rsvd, Value: 29";
+ }
+ enum cmapCpStaticL2Unicast {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticL2Unicast, Value: 28";
+ }
+ enum cmapCpStaticL3DestMiss {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticL3DestMiss, Value: 9";
+ }
+ enum cmapCpStaticL3LpmOverflow {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticL3LpmOverflow, Value: 32";
+ }
+ enum cmapCpStaticL3SlowPath {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticL3SlowPath, Value: 14";
+ }
+ enum cmapCpStaticL3Ttl0 {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticL3Ttl0, Value: 16";
+ }
+ enum cmapCpStaticL3Ttl1 {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticL3Ttl1, Value: 15";
+ }
+ enum cmapCpStaticLacp {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticLacp, Value: 2";
+ }
+ enum cmapCpStaticLinkLocal {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticLinkLocal, Value: 33";
+ }
+ enum cmapCpStaticLldp {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticLldp, Value: 3";
+ }
+ enum cmapCpStaticMacLearn {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticMacLearn, Value: 53";
+ }
+ enum cmapCpStaticMax {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticMax, Value: 58";
+ }
+ enum cmapCpStaticMcastSnoop {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticMcastSnoop, Value: 34";
+ }
+ enum cmapCpStaticMirroring {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticMirroring, Value: 51";
+ }
+ enum cmapCpStaticMlag {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticMlag, Value: 36";
+ }
+ enum cmapCpStaticMplsLabelMiss {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticMplsLabelMiss, Value: 47";
+ }
+ enum cmapCpStaticMplsTtl01 {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticMplsTtl01, Value: 46";
+ }
+ enum cmapCpStaticMtu {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticMtu, Value: 44";
+ }
+ enum cmapCpStaticMvrp {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticMvrp, Value: 42";
+ }
+ enum cmapCpStaticOspfIsis {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticOspfIsis, Value: 31";
+ }
+ enum cmapCpStaticPim {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticPim, Value: 48";
+ }
+ enum cmapCpStaticPimPtp {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticPimPtp, Value: 30";
+ }
+ enum cmapCpStaticPtp {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticPtp, Value: 41";
+ }
+ enum cmapCpStaticPtpSnoop {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticPtpSnoop, Value: 52";
+ }
+ enum cmapCpStaticSelfIp {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticSelfIp, Value: 6";
+ }
+ enum cmapCpStaticSelfIpTc6To7 {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticSelfIpTc6To7, Value: 5";
+ }
+ enum cmapCpStaticSflow {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticSflow, Value: 26";
+ }
+ enum cmapCpStaticTc3To5 {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticTc3To5, Value: 11";
+ }
+ enum cmapCpStaticTc6To7 {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticTc6To7, Value: 12";
+ }
+ enum cmapCpStaticUnicastArp {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticUnicastArp, Value: 25";
+ }
+ enum cmapCpStaticUrm {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticUrm, Value: 38";
+ }
+ enum cmapCpStaticVrrp {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticVrrp, Value: 43";
+ }
+ enum cmapCpStaticVxlanEncap {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticVxlanEncap, Value: 39";
+ }
+ enum cmapCpStaticVxlanVtepLearn {
+ description
+ "Type: Qos::ClassMapCpStaticType, Name: cmapCpStaticVxlanVtepLearn, Value: 40";
+ }
+ }
+ description
+ "Type: Qos::ClassMapCpStaticType";
+ }
+
+ typedef Qos-ClassMapCpType {
+ type enumeration {
+ enum cmapCpDynamic {
+ description
+ "Type: Qos::ClassMapCpType, Name: cmapCpDynamic, Value: 1";
+ }
+ enum cmapCpNone {
+ description
+ "Type: Qos::ClassMapCpType, Name: cmapCpNone, Value: 2";
+ }
+ enum cmapCpStatic {
+ description
+ "Type: Qos::ClassMapCpType, Name: cmapCpStatic, Value: 0";
+ }
+ }
+ description
+ "Type: Qos::ClassMapCpType";
+ }
+
+ grouping Qos-ClassMapMatch {
+ description
+ "Type: Qos::ClassMapMatch";
+ leaf builtInClassMatchValue {
+ type Qos-ClassMapMatchBuiltIn;
+ description
+ "Path: /builtInClassMatchValue, Type: enum Qos::ClassMapMatchBuiltIn";
+ }
+ container dscpEcnValue {
+ description
+ "Path: /dscpEcnValue, Type: entity Qos::ClassMapMatchDscpEcn";
+ uses Qos-ClassMapMatchDscpEcn;
+ }
+ list intColl {
+ key "index";
+ description
+ "Path: /intColl, Type: [U32]U32";
+ leaf index {
+ type uint32;
+ description
+ "Path: /intColl/, Type: U32";
+ }
+ leaf value {
+ type uint32;
+ description
+ "Path: /intColl/, Type: U32";
+ }
+ }
+ leaf intValue {
+ type uint32;
+ description
+ "Path: /intValue, Type: U32";
+ }
+ container macValue {
+ description
+ "Path: /macValue, Type: entity Qos::ClassMapMatchMac";
+ uses Qos-ClassMapMatchMac;
+ }
+ container mplsTrafficClassVal {
+ description
+ "Path: /mplsTrafficClassVal, Type: entity Qos::ClassMapMatchMplsTrafficClass";
+ uses Qos-ClassMapMatchMplsTrafficClass;
+ }
+ leaf option {
+ type Qos-ClassMapMatchOption;
+ description
+ "Path: /option, Type: enum Qos::ClassMapMatchOption";
+ }
+ leaf strValue {
+ type string;
+ description
+ "Path: /strValue, Type: Tac::String";
+ }
+ container vlanValue {
+ description
+ "Path: /vlanValue, Type: entity Qos::ClassMapMatchVlan";
+ uses Qos-ClassMapMatchVlan;
+ }
+ }
+
+ typedef Qos-ClassMapMatchBuiltIn {
+ type enumeration {
+ enum matchArp {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchArp, Value: 35";
+ }
+ enum matchArpNeeded {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchArpNeeded, Value: 15";
+ }
+ enum matchBfd {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchBfd, Value: 20";
+ }
+ enum matchBpdu {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchBpdu, Value: 6";
+ }
+ enum matchDhcp {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchDhcp, Value: 29";
+ }
+ enum matchIgmp {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchIgmp, Value: 34";
+ }
+ enum matchInvalid {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchInvalid, Value: 0";
+ }
+ enum matchIpBroadcast {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchIpBroadcast, Value: 39";
+ }
+ enum matchIpv6nd {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchIpv6nd, Value: 24";
+ }
+ enum matchIsis {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchIsis, Value: 25";
+ }
+ enum matchLacp {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchLacp, Value: 5";
+ }
+ enum matchLayer2Broadcast {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchLayer2Broadcast, Value: 40";
+ }
+ enum matchLayer2Control {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchLayer2Control, Value: 2";
+ }
+ enum matchLayer3Control {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchLayer3Control, Value: 21";
+ }
+ enum matchLayer3SlowPath {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchLayer3SlowPath, Value: 36";
+ }
+ enum matchLinkLocalMulticast {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchLinkLocalMulticast, Value: 30";
+ }
+ enum matchLldp {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchLldp, Value: 4";
+ }
+ enum matchMacSourceMiss {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchMacSourceMiss, Value: 38";
+ }
+ enum matchMlagControl {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchMlagControl, Value: 1";
+ }
+ enum matchMlagControlHeartbeat {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchMlagControlHeartbeat, Value: 3";
+ }
+ enum matchMplsRouteMiss {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchMplsRouteMiss, Value: 31";
+ }
+ enum matchMstp {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchMstp, Value: 8";
+ }
+ enum matchMulticastRouteMiss {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchMulticastRouteMiss, Value: 17";
+ }
+ enum matchMvrp {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchMvrp, Value: 37";
+ }
+ enum matchNatMiss {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchNatMiss, Value: 32";
+ }
+ enum matchOspf {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchOspf, Value: 26";
+ }
+ enum matchPim {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchPim, Value: 28";
+ }
+ enum matchPtp {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchPtp, Value: 11";
+ }
+ enum matchPvst {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchPvst, Value: 7";
+ }
+ enum matchRoutedIpOptions {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchRoutedIpOptions, Value: 19";
+ }
+ enum matchSelfBgp {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchSelfBgp, Value: 22";
+ }
+ enum matchSelfIpAll {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchSelfIpAll, Value: 12";
+ }
+ enum matchSelfIpHighPriority {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchSelfIpHighPriority, Value: 13";
+ }
+ enum matchSelfIpLowPriority {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchSelfIpLowPriority, Value: 14";
+ }
+ enum matchTtlException {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchTtlException, Value: 23";
+ }
+ enum matchUnicastRouteMiss {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchUnicastRouteMiss, Value: 16";
+ }
+ enum matchUnicastRouteOverflow {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchUnicastRouteOverflow, Value: 18";
+ }
+ enum matchUnicastRpfFailure {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchUnicastRpfFailure, Value: 33";
+ }
+ enum matchVrrp {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchVrrp, Value: 27";
+ }
+ enum matchVxlanEncapsulation {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchVxlanEncapsulation, Value: 9";
+ }
+ enum matchVxlanVtepLearn {
+ description
+ "Type: Qos::ClassMapMatchBuiltIn, Name: matchVxlanVtepLearn, Value: 10";
+ }
+ }
+ description
+ "Type: Qos::ClassMapMatchBuiltIn";
+ }
+
+ typedef Qos-ClassMapMatchCondition {
+ type enumeration {
+ enum matchConditionAll {
+ description
+ "Type: Qos::ClassMapMatchCondition, Name: matchConditionAll, Value: 1";
+ }
+ enum matchConditionAny {
+ description
+ "Type: Qos::ClassMapMatchCondition, Name: matchConditionAny, Value: 0";
+ }
+ }
+ description
+ "Type: Qos::ClassMapMatchCondition";
+ }
+
+ grouping Qos-ClassMapMatchDscpEcn {
+ description
+ "Type: Qos::ClassMapMatchDscpEcn";
+ leaf dscp {
+ type uint8;
+ description
+ "Path: /dscp, Type: value Qos::DscpVal";
+ }
+ list dscpColl {
+ key "index-max index-min";
+ description
+ "Path: /dscpColl, Type: [value Qos::DscpRange]bool";
+ leaf index-max {
+ type uint8;
+ description
+ "Path: /dscpColl//max, Type: value Qos::DscpVal";
+ }
+ leaf index-min {
+ type uint8;
+ description
+ "Path: /dscpColl//min, Type: value Qos::DscpVal";
+ }
+ leaf value {
+ type boolean;
+ description
+ "Path: /dscpColl/, Type: bool";
+ }
+ }
+ leaf dscpNameValid {
+ type boolean;
+ description
+ "Path: /dscpNameValid, Type: bool";
+ }
+ leaf ecn {
+ type Acl-Ecn;
+ description
+ "Path: /ecn, Type: enum Acl::Ecn";
+ }
+ leaf tosId {
+ type uint8;
+ description
+ "Path: /tosId, Type: U8";
+ }
+ leaf tosMask {
+ type uint8;
+ description
+ "Path: /tosMask, Type: U8";
+ }
+ }
+
+ grouping Qos-ClassMapMatchMac {
+ description
+ "Type: Qos::ClassMapMatchMac";
+ leaf aclName {
+ type string;
+ description
+ "Path: /aclName, Type: Tac::String";
+ }
+ leaf etherType {
+ type uint16;
+ description
+ "Path: /etherType, Type: U16";
+ }
+ }
+
+ grouping Qos-ClassMapMatchMplsTrafficClass {
+ description
+ "Type: Qos::ClassMapMatchMplsTrafficClass";
+ leaf isValid {
+ type boolean;
+ description
+ "Path: /isValid, Type: bool";
+ }
+ list mplsTrafficClassColl {
+ key "index-max index-min";
+ description
+ "Path: /mplsTrafficClassColl, Type: [value Qos::MplsTrafficClassRange]bool";
+ leaf index-max {
+ type uint8;
+ description
+ "Path: /mplsTrafficClassColl//max, Type: value Qos::MplsTrafficClassVal";
+ }
+ leaf index-min {
+ type uint8;
+ description
+ "Path: /mplsTrafficClassColl//min, Type: value Qos::MplsTrafficClassVal";
+ }
+ leaf value {
+ type boolean;
+ description
+ "Path: /mplsTrafficClassColl/, Type: bool";
+ }
+ }
+ }
+
+ typedef Qos-ClassMapMatchOption {
+ type enumeration {
+ enum matchBuiltIn {
+ description
+ "Type: Qos::ClassMapMatchOption, Name: matchBuiltIn, Value: 7";
+ }
+ enum matchDscpEcn {
+ description
+ "Type: Qos::ClassMapMatchOption, Name: matchDscpEcn, Value: 4";
+ }
+ enum matchIpAccessGroup {
+ description
+ "Type: Qos::ClassMapMatchOption, Name: matchIpAccessGroup, Value: 1";
+ }
+ enum matchIpv6AccessGroup {
+ description
+ "Type: Qos::ClassMapMatchOption, Name: matchIpv6AccessGroup, Value: 2";
+ }
+ enum matchMacAccessGroup {
+ description
+ "Type: Qos::ClassMapMatchOption, Name: matchMacAccessGroup, Value: 6";
+ }
+ enum matchMplsTrafficClass {
+ description
+ "Type: Qos::ClassMapMatchOption, Name: matchMplsTrafficClass, Value: 5";
+ }
+ enum matchVlan {
+ description
+ "Type: Qos::ClassMapMatchOption, Name: matchVlan, Value: 3";
+ }
+ }
+ description
+ "Type: Qos::ClassMapMatchOption";
+ }
+
+ grouping Qos-ClassMapMatchVlan {
+ description
+ "Type: Qos::ClassMapMatchVlan";
+ leaf maskValid {
+ type boolean;
+ description
+ "Path: /maskValid, Type: bool";
+ }
+ leaf vlan {
+ type uint16;
+ description
+ "Path: /vlan, Type: U16";
+ }
+ list vlanColl {
+ key "index-max index-min";
+ description
+ "Path: /vlanColl, Type: [value Qos::VlanRange]bool";
+ leaf index-max {
+ type uint16;
+ description
+ "Path: /vlanColl//max, Type: value Bridging::VlanId";
+ }
+ leaf index-min {
+ type uint16;
+ description
+ "Path: /vlanColl//min, Type: value Bridging::VlanId";
+ }
+ leaf value {
+ type boolean;
+ description
+ "Path: /vlanColl/, Type: bool";
+ }
+ }
+ leaf vlanMask {
+ type uint16 {
+ range "0..4095";
+ }
+ description
+ "Path: /vlanMask, Type: U16";
+ }
+ }
+
+ grouping Qos-ClassPriority {
+ description
+ "Type: Qos::ClassPriority";
+ leaf cmapName {
+ type string;
+ description
+ "Path: /cmapName, Type: Tac::String";
+ }
+ leaf index {
+ type uint32;
+ description
+ "Path: /index, Type: U32";
+ }
+ }
+
+ grouping Qos-Input-AclConfig {
+ description
+ "Type: Qos::Input::AclConfig";
+ list cmapType {
+ key "type";
+ description
+ "Path: /cmapType, Type: ['type' enum Qos::MapType]entity Qos::Input::ClassMapTypeConfig";
+ uses Qos-Input-ClassMapTypeConfig;
+ }
+ leaf configPriority {
+ type uint32;
+ description
+ "Path: /configPriority, Type: U32";
+ }
+ list namedPolicer {
+ key "name";
+ description
+ "Path: /namedPolicer, Type: ['name' Tac::Name]entity Qos::NamedPolicerConfig";
+ uses Qos-NamedPolicerConfig;
+ }
+ list pmapType {
+ key "type";
+ description
+ "Path: /pmapType, Type: ['type' enum Qos::MapType]entity Qos::Input::PolicyMapTypeConfig";
+ uses Qos-Input-PolicyMapTypeConfig;
+ }
+ leaf routedPortSubIntfQosAclSharing {
+ type boolean;
+ description
+ "Path: /routedPortSubIntfQosAclSharing, Type: bool";
+ }
+ leaf sviPolicyQosSharing {
+ type boolean;
+ description
+ "Path: /sviPolicyQosSharing, Type: bool";
+ }
+ leaf usingQosRoutedPortSubIntfAclSharingCli {
+ type boolean;
+ description
+ "Path: /usingQosRoutedPortSubIntfAclSharingCli, Type: bool";
+ }
+ }
+
+ grouping Qos-Input-ClassMapTypeConfig {
+ description
+ "Type: Qos::Input::ClassMapTypeConfig";
+ list cmap {
+ key "name";
+ description
+ "Path: /cmap, Type: ['name' Tac::Name]entity Qos::ClassMapConfig";
+ uses Qos-ClassMapConfig;
+ }
+ leaf type {
+ type Qos-MapType;
+ description
+ "Path: /type, Type: enum Qos::MapType";
+ }
+ }
+
+ grouping Qos-Input-PolicyMapTypeConfig {
+ description
+ "Type: Qos::Input::PolicyMapTypeConfig";
+ list pmap {
+ key "name";
+ description
+ "Path: /pmap, Type: ['name' Tac::Name]entity Qos::PolicyMapConfig";
+ uses Qos-PolicyMapConfig;
+ }
+ leaf type {
+ type Qos-MapType;
+ description
+ "Path: /type, Type: enum Qos::MapType";
+ }
+ }
+
+ typedef Qos-MapType {
+ type enumeration {
+ enum mapControlPlane {
+ description
+ "Type: Qos::MapType, Name: mapControlPlane, Value: 0";
+ }
+ enum mapPdp {
+ description
+ "Type: Qos::MapType, Name: mapPdp, Value: 2";
+ }
+ enum mapQos {
+ description
+ "Type: Qos::MapType, Name: mapQos, Value: 1";
+ }
+ }
+ description
+ "Type: Qos::MapType";
+ }
+
+ grouping Qos-NamedPolicerConfig {
+ description
+ "Type: Qos::NamedPolicerConfig";
+ leaf bc {
+ type uint32;
+ description
+ "Path: /bc, Type: U32";
+ }
+ leaf bcUnit {
+ type Qos-BurstUnit;
+ description
+ "Path: /bcUnit, Type: enum Qos::BurstUnit";
+ }
+ leaf be {
+ type uint32;
+ description
+ "Path: /be, Type: U32";
+ }
+ leaf beUnit {
+ type Qos-BurstUnit;
+ description
+ "Path: /beUnit, Type: enum Qos::BurstUnit";
+ }
+ leaf cir {
+ type uint64;
+ description
+ "Path: /cir, Type: U64";
+ }
+ leaf cirUnit {
+ type Qos-RateUnit;
+ description
+ "Path: /cirUnit, Type: enum Qos::RateUnit";
+ }
+ leaf cmdVersion {
+ type uint32;
+ description
+ "Path: /cmdVersion, Type: U32";
+ }
+ list greenActions {
+ key "actionType";
+ description
+ "Path: /greenActions, Type: ['actionType' enum Qos::ActionType]entity Qos::Action";
+ uses Qos-Action;
+ }
+ leaf name {
+ type string;
+ description
+ "Path: /name, Type: Tac::Name";
+ }
+ leaf named {
+ type boolean;
+ description
+ "Path: /named, Type: bool";
+ }
+ leaf paramChangeVersion {
+ type uint32;
+ description
+ "Path: /paramChangeVersion, Type: U32";
+ }
+ leaf pir {
+ type uint64;
+ description
+ "Path: /pir, Type: U64";
+ }
+ leaf pirUnit {
+ type Qos-RateUnit;
+ description
+ "Path: /pirUnit, Type: enum Qos::RateUnit";
+ }
+ list redActions {
+ key "actionType";
+ description
+ "Path: /redActions, Type: ['actionType' enum Qos::ActionType]entity Qos::Action";
+ uses Qos-Action;
+ }
+ leaf shared {
+ type boolean;
+ description
+ "Path: /shared, Type: bool";
+ }
+ leaf uniqueId {
+ type eos-types:double;
+ description
+ "Path: /uniqueId, Type: value Qos::UniqueId";
+ }
+ leaf version {
+ type uint32;
+ description
+ "Path: /version, Type: U32";
+ }
+ list yellowActions {
+ key "actionType";
+ description
+ "Path: /yellowActions, Type: ['actionType' enum Qos::ActionType]entity Qos::Action";
+ uses Qos-Action;
+ }
+ }
+
+ grouping Qos-PolicerConfig {
+ description
+ "Type: Qos::PolicerConfig";
+ leaf bc {
+ type uint32;
+ description
+ "Path: /bc, Type: U32";
+ }
+ leaf bcUnit {
+ type Qos-BurstUnit;
+ description
+ "Path: /bcUnit, Type: enum Qos::BurstUnit";
+ }
+ leaf be {
+ type uint32;
+ description
+ "Path: /be, Type: U32";
+ }
+ leaf beUnit {
+ type Qos-BurstUnit;
+ description
+ "Path: /beUnit, Type: enum Qos::BurstUnit";
+ }
+ leaf cir {
+ type uint64;
+ description
+ "Path: /cir, Type: U64";
+ }
+ leaf cirUnit {
+ type Qos-RateUnit;
+ description
+ "Path: /cirUnit, Type: enum Qos::RateUnit";
+ }
+ leaf cmdVersion {
+ type uint32;
+ description
+ "Path: /cmdVersion, Type: U32";
+ }
+ list greenActions {
+ key "actionType";
+ description
+ "Path: /greenActions, Type: ['actionType' enum Qos::ActionType]entity Qos::Action";
+ uses Qos-Action;
+ }
+ leaf named {
+ type boolean;
+ description
+ "Path: /named, Type: bool";
+ }
+ leaf pir {
+ type uint64;
+ description
+ "Path: /pir, Type: U64";
+ }
+ leaf pirUnit {
+ type Qos-RateUnit;
+ description
+ "Path: /pirUnit, Type: enum Qos::RateUnit";
+ }
+ list redActions {
+ key "actionType";
+ description
+ "Path: /redActions, Type: ['actionType' enum Qos::ActionType]entity Qos::Action";
+ uses Qos-Action;
+ }
+ list yellowActions {
+ key "actionType";
+ description
+ "Path: /yellowActions, Type: ['actionType' enum Qos::ActionType]entity Qos::Action";
+ uses Qos-Action;
+ }
+ }
+
+ grouping Qos-PolicyMapConfig {
+ description
+ "Type: Qos::PolicyMapConfig";
+ list classAction {
+ key "name";
+ description
+ "Path: /classAction, Type: ['name' Tac::Name]entity Qos::ClassAction";
+ uses Qos-ClassAction;
+ }
+ container classActionDefault {
+ description
+ "Path: /classActionDefault, Type: entity Qos::ClassAction";
+ uses Qos-ClassAction;
+ }
+ container classDefault {
+ description
+ "Path: /classDefault, Type: entity Qos::ClassMapConfig";
+ uses Qos-ClassMapConfig;
+ }
+ list classPrio {
+ key "index";
+ description
+ "Path: /classPrio, Type: ['index' U32]entity Qos::ClassPriority";
+ uses Qos-ClassPriority;
+ }
+ list coppStaticClassPrio {
+ key "index";
+ description
+ "Path: /coppStaticClassPrio, Type: ['index' U32]entity Qos::ClassPriority";
+ uses Qos-ClassPriority;
+ }
+ leaf dynamic {
+ type boolean;
+ description
+ "Path: /dynamic, Type: bool";
+ }
+ leaf name {
+ type string;
+ description
+ "Path: /name, Type: Tac::Name";
+ }
+ leaf shared {
+ type boolean;
+ description
+ "Path: /shared, Type: bool";
+ }
+ leaf type {
+ type Qos-MapType;
+ description
+ "Path: /type, Type: enum Qos::MapType";
+ }
+ leaf uniqueId {
+ type eos-types:double;
+ description
+ "Path: /uniqueId, Type: value Qos::UniqueId";
+ }
+ leaf version {
+ type uint32;
+ description
+ "Path: /version, Type: U32";
+ }
+ }
+
+ typedef Qos-RateUnit {
+ type enumeration {
+ enum rateUnitInvalid {
+ description
+ "Type: Qos::RateUnit, Name: rateUnitInvalid, Value: 4";
+ }
+ enum rateUnitKbps {
+ description
+ "Type: Qos::RateUnit, Name: rateUnitKbps, Value: 2";
+ }
+ enum rateUnitMbps {
+ description
+ "Type: Qos::RateUnit, Name: rateUnitMbps, Value: 3";
+ }
+ enum rateUnitPps {
+ description
+ "Type: Qos::RateUnit, Name: rateUnitPps, Value: 0";
+ }
+ enum rateUnitbps {
+ description
+ "Type: Qos::RateUnit, Name: rateUnitbps, Value: 1";
+ }
+ }
+ description
+ "Type: Qos::RateUnit";
+ }
+}
diff --git a/EOS-4.21.3F/experimental/eos/models/qos/arista-exp-eos-qos-config.yang b/EOS-4.21.3F/experimental/eos/models/qos/arista-exp-eos-qos-config.yang
new file mode 100644
index 0000000..dfc352a
--- /dev/null
+++ b/EOS-4.21.3F/experimental/eos/models/qos/arista-exp-eos-qos-config.yang
@@ -0,0 +1,737 @@
+module arista-exp-eos-qos-config {
+ yang-version 1;
+ namespace "http://arista.com/yang/experimental/eos/qos/config";
+ prefix qos-config-exp;
+
+ import arista-eos-types {
+ prefix eos-types;
+ }
+ import arista-exp-eos {
+ prefix eos-exp;
+ }
+ import arista-exp-eos-qos {
+ prefix qos-exp;
+ }
+
+ organization
+ "Arista Networks ";
+ description
+ "Models for qos config subsystem of Arista EOS
+ Copyright (c) 2017 Arista Networks, Inc. All rights reserved.";
+
+ revision 2017-09-26 {
+ description
+ "Initial revision";
+ }
+
+ augment "/eos-exp:arista/eos-exp:eos/qos-exp:qos" {
+ container input {
+ description
+ "Path: /Sysdb/qos/input, Type: directory Tac::Dir";
+ container config {
+ description
+ "Path: /Sysdb/qos/input/config, Type: directory Tac::Dir";
+ container cli {
+ description
+ "Path: /Sysdb/qos/input/config/cli, Type: entity Qos::Input::Config";
+ uses Qos-Input-Config;
+ }
+ }
+ }
+ }
+
+ grouping Pfc-PortConfig {
+ description
+ "Type: Pfc::PortConfig";
+ leaf enabled {
+ type boolean;
+ description
+ "Path: /enabled, Type: bool";
+ }
+ container portTimerConfig {
+ description
+ "Path: /portTimerConfig, Type: value Pfc::PortTimerConfig";
+ uses Pfc-PortTimerConfig;
+ }
+ leaf portWatchdogVersion {
+ type uint32;
+ description
+ "Path: /portWatchdogVersion, Type: U32";
+ }
+ leaf priorities {
+ type uint8;
+ description
+ "Path: /priorities, Type: U8";
+ }
+ leaf watchdogEnabled {
+ type boolean;
+ description
+ "Path: /watchdogEnabled, Type: bool";
+ }
+ leaf watchdogPortAction {
+ type Pfc-WatchdogAction;
+ description
+ "Path: /watchdogPortAction, Type: enum Pfc::WatchdogAction";
+ }
+ }
+
+ grouping Pfc-PortTimerConfig {
+ description
+ "Type: Pfc::PortTimerConfig";
+ leaf portWatchdogOperPollingInterval {
+ type eos-types:double;
+ description
+ "Path: /portWatchdogOperPollingInterval, Type: double";
+ }
+ leaf portWatchdogPollingInterval {
+ type eos-types:double;
+ description
+ "Path: /portWatchdogPollingInterval, Type: double";
+ }
+ container portWatchdogRecoveryCfg {
+ description
+ "Path: /portWatchdogRecoveryCfg, Type: value Pfc::WatchdogRecoveryConfig";
+ uses Pfc-WatchdogRecoveryConfig;
+ }
+ leaf portWatchdogTimeout {
+ type eos-types:double;
+ description
+ "Path: /portWatchdogTimeout, Type: double";
+ }
+ leaf usePerPortTimerValues {
+ type boolean;
+ description
+ "Path: /usePerPortTimerValues, Type: bool";
+ }
+ }
+
+ typedef Pfc-WatchdogAction {
+ type enumeration {
+ enum drop {
+ description
+ "Type: Pfc::WatchdogAction, Name: drop, Value: 2";
+ }
+ enum errdisable {
+ description
+ "Type: Pfc::WatchdogAction, Name: errdisable, Value: 1";
+ }
+ enum invalid {
+ description
+ "Type: Pfc::WatchdogAction, Name: invalid, Value: 0";
+ }
+ enum notifyOnly {
+ description
+ "Type: Pfc::WatchdogAction, Name: notifyOnly, Value: 3";
+ }
+ }
+ description
+ "Type: Pfc::WatchdogAction";
+ }
+
+ grouping Pfc-WatchdogRecoveryConfig {
+ description
+ "Type: Pfc::WatchdogRecoveryConfig";
+ leaf forcedRecovery {
+ type boolean;
+ description
+ "Path: /forcedRecovery, Type: bool";
+ }
+ leaf recoveryTime {
+ type eos-types:double;
+ description
+ "Path: /recoveryTime, Type: double";
+ }
+ }
+
+ typedef Qos-Direction {
+ type enumeration {
+ enum input {
+ description
+ "Type: Qos::Direction, Name: input, Value: 0";
+ }
+ enum output {
+ description
+ "Type: Qos::Direction, Name: output, Value: 1";
+ }
+ }
+ description
+ "Type: Qos::Direction";
+ }
+
+ grouping Qos-EcnDelayThreshold {
+ description
+ "Type: Qos::EcnDelayThreshold";
+ leaf threshold {
+ type uint32;
+ description
+ "Path: /threshold, Type: value Qos::EcnDelayThresholdValue";
+ }
+ leaf unit {
+ type Qos-EcnDelayThresholdUnit;
+ description
+ "Path: /unit, Type: enum Qos::EcnDelayThresholdUnit";
+ }
+ }
+
+ typedef Qos-EcnDelayThresholdUnit {
+ type enumeration {
+ enum ecnDelayThresholdInvalidUnit {
+ description
+ "Type: Qos::EcnDelayThresholdUnit, Name: ecnDelayThresholdInvalidUnit, Value: 1";
+ }
+ enum ecnDelayThresholdNs {
+ description
+ "Type: Qos::EcnDelayThresholdUnit, Name: ecnDelayThresholdNs, Value: 0";
+ }
+ }
+ description
+ "Type: Qos::EcnDelayThresholdUnit";
+ }
+
+ grouping Qos-EcnWredConfig {
+ description
+ "Type: Qos::EcnWredConfig";
+ leaf maxDroprate {
+ type uint8;
+ description
+ "Path: /maxDroprate, Type: value Qos::Percent";
+ }
+ leaf maxThd {
+ type uint32;
+ description
+ "Path: /maxThd, Type: value Qos::QueueThreshold";
+ }
+ leaf minThd {
+ type uint32;
+ description
+ "Path: /minThd, Type: value Qos::QueueThreshold";
+ }
+ leaf unit {
+ type Qos-QueueThresholdUnit;
+ description
+ "Path: /unit, Type: enum Qos::QueueThresholdUnit";
+ }
+ leaf weight {
+ type uint32;
+ description
+ "Path: /weight, Type: value Qos::Weight";
+ }
+ }
+
+ grouping Qos-GuaranteedBw {
+ description
+ "Type: Qos::GuaranteedBw";
+ leaf bw {
+ type uint32;
+ description
+ "Path: /bw, Type: value Qos::GuaranteedBwVal";
+ }
+ leaf unit {
+ type Qos-GuaranteedBwUnit;
+ description
+ "Path: /unit, Type: enum Qos::GuaranteedBwUnit";
+ }
+ }
+
+ typedef Qos-GuaranteedBwUnit {
+ type enumeration {
+ enum guaranteedBwKbps {
+ description
+ "Type: Qos::GuaranteedBwUnit, Name: guaranteedBwKbps, Value: 0";
+ }
+ enum guaranteedBwPercent {
+ description
+ "Type: Qos::GuaranteedBwUnit, Name: guaranteedBwPercent, Value: 2";
+ }
+ enum guaranteedBwPps {
+ description
+ "Type: Qos::GuaranteedBwUnit, Name: guaranteedBwPps, Value: 1";
+ }
+ }
+ description
+ "Type: Qos::GuaranteedBwUnit";
+ }
+
+ grouping Qos-Input-Config {
+ description
+ "Type: Qos::Input::Config";
+ leaf agentName {
+ type string;
+ description
+ "Path: /agentName, Type: Tac::String";
+ }
+ leaf configPriority {
+ type uint32;
+ description
+ "Path: /configPriority, Type: U32";
+ }
+ leaf cosRewriteEnabled {
+ type Qos-RewriteEnableMode;
+ description
+ "Path: /cosRewriteEnabled, Type: enum Qos::RewriteEnableMode";
+ }
+ list cosToTcMap {
+ key "index";
+ description
+ "Path: /cosToTcMap, Type: [value Qos::Cos]value Qos::TrafficClass";
+ leaf index {
+ type uint8;
+ description
+ "Path: /cosToTcMap/, Type: value Qos::Cos";
+ }
+ leaf value {
+ type uint8;
+ description
+ "Path: /cosToTcMap/, Type: value Qos::TrafficClass";
+ }
+ }
+ leaf dscpRewriteEnabled {
+ type boolean;
+ description
+ "Path: /dscpRewriteEnabled, Type: bool";
+ }
+ list dscpToTcMap {
+ key "index";
+ description
+ "Path: /dscpToTcMap, Type: [value Qos::Dscp]value Qos::TrafficClass";
+ leaf index {
+ type uint8;
+ description
+ "Path: /dscpToTcMap/, Type: value Qos::Dscp";
+ }
+ leaf value {
+ type uint8;
+ description
+ "Path: /dscpToTcMap/, Type: value Qos::TrafficClass";
+ }
+ }
+ leaf ecnAllowNonEct {
+ type boolean;
+ description
+ "Path: /ecnAllowNonEct, Type: bool";
+ }
+ container ecnDelayThreshold {
+ description
+ "Path: /ecnDelayThreshold, Type: value Qos::EcnDelayThreshold";
+ uses Qos-EcnDelayThreshold;
+ }
+ container globalEcnConfig {
+ description
+ "Path: /globalEcnConfig, Type: entity Qos::EcnWredConfig";
+ uses Qos-EcnWredConfig;
+ }
+ leaf hwConfigVerificationEnabled {
+ type boolean;
+ description
+ "Path: /hwConfigVerificationEnabled, Type: bool";
+ }
+ list hwMonitoredPri {
+ key "index";
+ description
+ "Path: /hwMonitoredPri, Type: [U8]bool";
+ leaf index {
+ type uint8;
+ description
+ "Path: /hwMonitoredPri/, Type: U8";
+ }
+ leaf value {
+ type boolean;
+ description
+ "Path: /hwMonitoredPri/, Type: bool";
+ }
+ }
+ list intfConfig {
+ key "intfId";
+ description
+ "Path: /intfConfig, Type: ['intfId' value Arnet::IntfId]entity Qos::IntfConfig";
+ uses Qos-IntfConfig;
+ }
+ leaf intfConfigPriority {
+ type uint32;
+ description
+ "Path: /intfConfigPriority, Type: U32";
+ }
+ leaf pfcGlobalEnabled {
+ type boolean;
+ description
+ "Path: /pfcGlobalEnabled, Type: bool";
+ }
+ list servicePolicyConfig {
+ key "key-direction key-pmapName key-type";
+ description
+ "Path: /servicePolicyConfig, Type: ['key' value Qos::ServicePolicyKey]entity Qos::ServicePolicyConfig";
+ leaf key-direction {
+ type Qos-Direction;
+ description
+ "Path: /direction, Type: enum Qos::Direction";
+ }
+ leaf key-pmapName {
+ type string;
+ description
+ "Path: /pmapName, Type: Tac::Name";
+ }
+ leaf key-type {
+ type Qos-MapType;
+ description
+ "Path: /type, Type: enum Qos::MapType";
+ }
+ leaf clearCountersTime {
+ type eos-types:double;
+ description
+ "Path: /clearCountersTime, Type: double";
+ }
+ list intfIds {
+ key "index";
+ description
+ "Path: /intfIds, Type: [value Arnet::IntfId]bool";
+ leaf index {
+ type eos-types:Arnet-IntfId;
+ description
+ "Path: /intfIds/, Type: value Arnet::IntfId";
+ }
+ leaf value {
+ type boolean;
+ description
+ "Path: /intfIds/, Type: bool";
+ }
+ }
+ }
+ list tcToCosMap {
+ key "index";
+ description
+ "Path: /tcToCosMap, Type: [value Qos::TrafficClass]value Qos::Cos";
+ leaf index {
+ type uint8;
+ description
+ "Path: /tcToCosMap/, Type: value Qos::TrafficClass";
+ }
+ leaf value {
+ type uint8;
+ description
+ "Path: /tcToCosMap/, Type: value Qos::Cos";
+ }
+ }
+ list tcToDscpMap {
+ key "index";
+ description
+ "Path: /tcToDscpMap, Type: [value Qos::TrafficClass]value Qos::Dscp";
+ leaf index {
+ type uint8;
+ description
+ "Path: /tcToDscpMap/, Type: value Qos::TrafficClass";
+ }
+ leaf value {
+ type uint8;
+ description
+ "Path: /tcToDscpMap/, Type: value Qos::Dscp";
+ }
+ }
+ list tcToMcTxQueueMap {
+ key "index";
+ description
+ "Path: /tcToMcTxQueueMap, Type: [value Qos::TrafficClass]value Qos::TxQueueId";
+ leaf index {
+ type uint8;
+ description
+ "Path: /tcToMcTxQueueMap/, Type: value Qos::TrafficClass";
+ }
+ leaf value {
+ type uint8;
+ description
+ "Path: /tcToMcTxQueueMap/, Type: value Qos::TxQueueId";
+ }
+ }
+ list tcToTxQueueMap {
+ key "index";
+ description
+ "Path: /tcToTxQueueMap, Type: [value Qos::TrafficClass]value Qos::TxQueueId";
+ leaf index {
+ type uint8;
+ description
+ "Path: /tcToTxQueueMap/, Type: value Qos::TrafficClass";
+ }
+ leaf value {
+ type uint8;
+ description
+ "Path: /tcToTxQueueMap/, Type: value Qos::TxQueueId";
+ }
+ }
+ leaf watchdogAction {
+ type Pfc-WatchdogAction;
+ description
+ "Path: /watchdogAction, Type: enum Pfc::WatchdogAction";
+ }
+ leaf watchdogNonDisruptivePriorities {
+ type uint8;
+ description
+ "Path: /watchdogNonDisruptivePriorities, Type: U8";
+ }
+ leaf watchdogPollingInterval {
+ type eos-types:double;
+ description
+ "Path: /watchdogPollingInterval, Type: double";
+ }
+ container watchdogRecoveryCfg {
+ description
+ "Path: /watchdogRecoveryCfg, Type: value Pfc::WatchdogRecoveryConfig";
+ uses Pfc-WatchdogRecoveryConfig;
+ }
+ leaf watchdogTimeout {
+ type eos-types:double;
+ description
+ "Path: /watchdogTimeout, Type: double";
+ }
+ }
+
+ grouping Qos-IntfConfig {
+ description
+ "Type: Qos::IntfConfig";
+ leaf defaultCos {
+ type uint8;
+ description
+ "Path: /defaultCos, Type: value Qos::Cos";
+ }
+ leaf defaultDscp {
+ type uint8;
+ description
+ "Path: /defaultDscp, Type: value Qos::Dscp";
+ }
+ leaf fabricPfcDlb {
+ type uint8;
+ description
+ "Path: /fabricPfcDlb, Type: U8";
+ }
+ leaf intfId {
+ type eos-types:Arnet-IntfId;
+ description
+ "Path: /intfId, Type: value Arnet::IntfId";
+ }
+ container pfcPortConfig {
+ description
+ "Path: /pfcPortConfig, Type: entity Pfc::PortConfig";
+ uses Pfc-PortConfig;
+ }
+ container shapeRate {
+ description
+ "Path: /shapeRate, Type: value Qos::ShapeRate";
+ uses Qos-ShapeRate;
+ }
+ leaf trustMode {
+ type Qos-TrustMode;
+ description
+ "Path: /trustMode, Type: enum Qos::TrustMode";
+ }
+ list txQueueConfig {
+ key "txQueue-id txQueue-type";
+ description
+ "Path: /txQueueConfig, Type: ['txQueue' value Qos::TxQueue]entity Qos::TxQueueConfig";
+ leaf txQueue-id {
+ type uint8;
+ description
+ "Path: /id, Type: value Qos::TxQueueId";
+ }
+ leaf txQueue-type {
+ type Qos-QueueType;
+ description
+ "Path: /type, Type: enum Qos::QueueType";
+ }
+ leaf bandwidth {
+ type uint8;
+ description
+ "Path: /bandwidth, Type: value Qos::Percent";
+ }
+ leaf delayEcnEnabled {
+ type boolean;
+ description
+ "Path: /delayEcnEnabled, Type: bool";
+ }
+ container ecnConfig {
+ description
+ "Path: /ecnConfig, Type: entity Qos::EcnWredConfig";
+ uses Qos-EcnWredConfig;
+ }
+ container ecnDelayThreshold {
+ description
+ "Path: /ecnDelayThreshold, Type: value Qos::EcnDelayThreshold";
+ uses Qos-EcnDelayThreshold;
+ }
+ container guaranteedBw {
+ description
+ "Path: /guaranteedBw, Type: value Qos::GuaranteedBw";
+ uses Qos-GuaranteedBw;
+ }
+ container nonEctConfig {
+ description
+ "Path: /nonEctConfig, Type: entity Qos::EcnWredConfig";
+ uses Qos-EcnWredConfig;
+ }
+ leaf priority {
+ type Qos-TxQueuePriority;
+ description
+ "Path: /priority, Type: enum Qos::TxQueuePriority";
+ }
+ container shapeRate {
+ description
+ "Path: /shapeRate, Type: value Qos::ShapeRate";
+ uses Qos-ShapeRate;
+ }
+ container wredConfig {
+ description
+ "Path: /wredConfig, Type: entity Qos::EcnWredConfig";
+ uses Qos-EcnWredConfig;
+ }
+ }
+ }
+
+ typedef Qos-MapType {
+ type enumeration {
+ enum mapControlPlane {
+ description
+ "Type: Qos::MapType, Name: mapControlPlane, Value: 0";
+ }
+ enum mapPdp {
+ description
+ "Type: Qos::MapType, Name: mapPdp, Value: 2";
+ }
+ enum mapQos {
+ description
+ "Type: Qos::MapType, Name: mapQos, Value: 1";
+ }
+ }
+ description
+ "Type: Qos::MapType";
+ }
+
+ typedef Qos-QueueThresholdUnit {
+ type enumeration {
+ enum bytes {
+ description
+ "Type: Qos::QueueThresholdUnit, Name: bytes, Value: 0";
+ }
+ enum kbytes {
+ description
+ "Type: Qos::QueueThresholdUnit, Name: kbytes, Value: 1";
+ }
+ enum mbytes {
+ description
+ "Type: Qos::QueueThresholdUnit, Name: mbytes, Value: 2";
+ }
+ enum segments {
+ description
+ "Type: Qos::QueueThresholdUnit, Name: segments, Value: 3";
+ }
+ }
+ description
+ "Type: Qos::QueueThresholdUnit";
+ }
+
+ typedef Qos-QueueType {
+ type enumeration {
+ enum mcq {
+ description
+ "Type: Qos::QueueType, Name: mcq, Value: 1";
+ }
+ enum ucq {
+ description
+ "Type: Qos::QueueType, Name: ucq, Value: 0";
+ }
+ enum unknown {
+ description
+ "Type: Qos::QueueType, Name: unknown, Value: 2";
+ }
+ }
+ description
+ "Type: Qos::QueueType";
+ }
+
+ typedef Qos-RewriteEnableMode {
+ type enumeration {
+ enum rewriteDisabled {
+ description
+ "Type: Qos::RewriteEnableMode, Name: rewriteDisabled, Value: 2";
+ }
+ enum rewriteEnabled {
+ description
+ "Type: Qos::RewriteEnableMode, Name: rewriteEnabled, Value: 1";
+ }
+ enum rewriteInvalid {
+ description
+ "Type: Qos::RewriteEnableMode, Name: rewriteInvalid, Value: 0";
+ }
+ }
+ description
+ "Type: Qos::RewriteEnableMode";
+ }
+
+ grouping Qos-ShapeRate {
+ description
+ "Type: Qos::ShapeRate";
+ leaf rate {
+ type uint32;
+ description
+ "Path: /rate, Type: value Qos::ShapeRateVal";
+ }
+ leaf unit {
+ type Qos-ShapeRateUnit;
+ description
+ "Path: /unit, Type: enum Qos::ShapeRateUnit";
+ }
+ }
+
+ typedef Qos-ShapeRateUnit {
+ type enumeration {
+ enum shapeRateKbps {
+ description
+ "Type: Qos::ShapeRateUnit, Name: shapeRateKbps, Value: 0";
+ }
+ enum shapeRatePps {
+ description
+ "Type: Qos::ShapeRateUnit, Name: shapeRatePps, Value: 1";
+ }
+ }
+ description
+ "Type: Qos::ShapeRateUnit";
+ }
+
+ typedef Qos-TrustMode {
+ type enumeration {
+ enum cos {
+ description
+ "Type: Qos::TrustMode, Name: cos, Value: 0";
+ }
+ enum dscp {
+ description
+ "Type: Qos::TrustMode, Name: dscp, Value: 1";
+ }
+ enum invalid {
+ description
+ "Type: Qos::TrustMode, Name: invalid, Value: 3";
+ }
+ enum untrusted {
+ description
+ "Type: Qos::TrustMode, Name: untrusted, Value: 2";
+ }
+ }
+ description
+ "Type: Qos::TrustMode";
+ }
+
+ typedef Qos-TxQueuePriority {
+ type enumeration {
+ enum priorityInvalid {
+ description
+ "Type: Qos::TxQueuePriority, Name: priorityInvalid, Value: 2";
+ }
+ enum priorityRoundRobin {
+ description
+ "Type: Qos::TxQueuePriority, Name: priorityRoundRobin, Value: 0";
+ }
+ enum priorityStrict {
+ description
+ "Type: Qos::TxQueuePriority, Name: priorityStrict, Value: 1";
+ }
+ }
+ description
+ "Type: Qos::TxQueuePriority";
+ }
+}
diff --git a/EOS-4.21.3F/experimental/eos/models/qos/arista-exp-eos-qos.yang b/EOS-4.21.3F/experimental/eos/models/qos/arista-exp-eos-qos.yang
new file mode 100644
index 0000000..71e5d4d
--- /dev/null
+++ b/EOS-4.21.3F/experimental/eos/models/qos/arista-exp-eos-qos.yang
@@ -0,0 +1,25 @@
+module arista-exp-eos-qos {
+ yang-version 1;
+ namespace "http://arista.com/yang/experimental/eos/qos";
+ prefix qos-exp;
+
+ import arista-exp-eos {
+ prefix eos-exp;
+ }
+
+ organization
+ "Arista Networks ";
+ description
+ "Container for qos features.
+
+ Copyright (c) 2017 Arista Networks, Inc. All rights reserved.";
+
+ revision 2017-09-26 {
+ description
+ "Initial revision";
+ }
+
+ augment "/eos-exp:arista/eos-exp:eos" {
+ container qos;
+ }
+}
diff --git a/EOS-4.21.3F/experimental/eos/models/rpc/arista-rpc-netconf.yang b/EOS-4.21.3F/experimental/eos/models/rpc/arista-rpc-netconf.yang
new file mode 100644
index 0000000..ab528d9
--- /dev/null
+++ b/EOS-4.21.3F/experimental/eos/models/rpc/arista-rpc-netconf.yang
@@ -0,0 +1,50 @@
+module arista-rpc-netconf {
+ namespace "http://arista.com/yang/rpc/netconf";
+ prefix arista-rpc-netconf;
+
+ import ietf-netconf {
+ prefix nc;
+ }
+
+ organization
+ "Arista Networks, Inc.";
+ contact
+ "Arista Networks, Inc.
+ Product Support";
+ description
+ "This module contains NETCONF RPC extensions in Arista EOS.
+ Copyright (c) 2018 Arista Networks, Inc. All rights reserved.";
+
+ revision 2018-01-04 {
+ description
+ "Initial RPC extension definitions.";
+ reference "RFC6241: Network Configuration Protocol (NETCONF)";
+ }
+
+ typedef eos-cli-config-command {
+ type string;
+ description
+ "An EOS CLI configuration command string.";
+ }
+
+ grouping apply-cli-parameters {
+ description
+ "CLI configuration input parameters.";
+ container commands {
+ description
+ "CLI configuration commands.";
+ leaf-list command {
+ type eos-cli-config-command;
+ ordered-by user;
+ description
+ "CLI configuration commands to apply with config data.";
+ }
+ }
+ }
+
+ augment "/nc:edit-config/nc:input" {
+ description
+ "Adds CLI parameters for mixed config/CLI command input.";
+ uses apply-cli-parameters;
+ }
+}
diff --git a/EOS-4.21.3F/experimental/eos/models/vlan/vlan-translation.yang b/EOS-4.21.3F/experimental/eos/models/vlan/vlan-translation.yang
new file mode 100644
index 0000000..8e6d7f4
--- /dev/null
+++ b/EOS-4.21.3F/experimental/eos/models/vlan/vlan-translation.yang
@@ -0,0 +1,186 @@
+module vlan-translation {
+ yang-version 1;
+ namespace "http://arista.com/yang/vlan-translation";
+ prefix ar-vlan-translation;
+
+ import openconfig-vlan-types {
+ prefix oc-vlan-types;
+ }
+ import openconfig-vlan {
+ prefix oc-vlan;
+ }
+ import openconfig-interfaces {
+ prefix oc-if;
+ }
+ import openconfig-if-ethernet {
+ prefix oc-eth;
+ }
+ import openconfig-if-aggregate {
+ prefix oc-lag;
+ }
+ import iana-if-type {
+ prefix ift;
+ }
+
+ organization
+ "Arista Networks";
+ contact
+ "Arista Networks, Inc.
+ Product Support";
+ description
+ "This module defines VLAN translation configuration,
+ associated with interfaces
+ Copyright (c) 2016 Arista Networks, Inc. All rights reserved.";
+
+ revision 2017-11-29 {
+ description
+ "Initial revision.";
+ reference "1.0.0";
+ }
+
+ grouping vlan-tag-required {
+ description
+ "configuration for dropping untagged frames on dot1q tunnel ports";
+ leaf vlan-tag-required {
+ type boolean;
+ description
+ "if this flag is set, then on a dot1q tunnel port, untagged frames and
+ priority tagged frames( Dot1Q tagged frames with vlan id 0 ) will be dropped";
+ }
+ }
+
+ grouping vlan-translation-intf-config {
+ description
+ "Per interface VLAN translation configuration";
+ leaf ingress-mapping-required {
+ type boolean;
+ description
+ "if this flag is set, then on ingress any vlan tagged packet that does not have
+ a corresponding VLAN mapping, will be dropped";
+ }
+ }
+
+ grouping translation-key {
+ description
+ "key for VLAN translation";
+ leaf translation-key {
+ type union {
+ type oc-vlan-types:vlan-id;
+ type oc-vlan-types:qinq-id;
+ }
+ description
+ "the vlan-translation-key";
+ }
+ }
+
+ grouping vlan-translation-config {
+ description
+ "VLAN translation config grouping";
+ uses translation-key;
+ leaf bridging-vlan {
+ type oc-vlan-types:vlan-id;
+ description
+ "The VLAN in which packets matching the VLAN
+ translation key are bridged";
+ }
+ leaf inner-vlan-tag {
+ type oc-vlan-types:vlan-id;
+ description
+ "The inner VLAN tag to be pushed on the
+ packets";
+ }
+ leaf tunnel {
+ type boolean;
+ description
+ "Selective QinQ";
+ }
+ }
+
+ grouping vlan-translation {
+ description
+ "Configuration and State parameters for VLAN Translations";
+ container config {
+ description
+ "Configuration parameters for VLAN Translations";
+ uses vlan-translation-config;
+ }
+ container state {
+ config false;
+ description
+ "State variables for VLAN Translations";
+ uses vlan-translation-config;
+ }
+ }
+
+ grouping vlan-translation-top {
+ description
+ "Top-level grouping for VLAN Translations configurations";
+ container vlan-translation {
+ description
+ "Container for VLAN Translation configuration
+ and state variables";
+ container config {
+ description
+ "Interface configuration parameters for VLAN Translation";
+ uses vlan-translation-intf-config;
+ }
+ container state {
+ description
+ "Interface state variables for VLAN Translation";
+ uses vlan-translation-intf-config;
+ }
+ list ingress {
+ key "translation-key";
+ uses translation-key;
+ uses vlan-translation;
+ description
+ "Ingress VLAN Translation configuration";
+ }
+ list egress {
+ key "translation-key";
+ uses translation-key;
+ uses vlan-translation;
+ description
+ "Egress VLAN Translation configuration";
+ }
+ }
+ }
+
+ augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/oc-vlan:switched-vlan" {
+ when "oc-if:type = 'ift:ethernetCsmacd'" {
+ description
+ "Active when the interface is Ethernet";
+ }
+ description
+ "Adds VLAN translation settings to individual Ethernet
+ interfaces";
+ uses vlan-translation-top;
+ }
+ augment "/oc-if:interfaces/oc-if:interface/oc-lag:aggregation/oc-vlan:switched-vlan" {
+ when "oc-if:type = 'ift:ieee8023adLag'" {
+ description
+ "Active when the interface is a LAG";
+ }
+ description
+ "Adds VLAN translation settings to a LAG interface";
+ uses vlan-translation-top;
+ }
+ augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/oc-vlan:switched-vlan/oc-vlan:config" {
+ when "oc-if:type = 'ift:ethernetCsmacd'" {
+ description
+ "Active when the interface is Ethernet";
+ }
+ description
+ "Adds setting to drop untagged and priority frames on an Ethernet dot1q tunnel interface";
+ uses vlan-tag-required;
+ }
+ augment "/oc-if:interfaces/oc-if:interface/oc-lag:aggregation/oc-vlan:switched-vlan/oc-vlan:config" {
+ when "oc-if:type = 'ift:ieee8023adLag'" {
+ description
+ "Active when the interface is a LAG";
+ }
+ description
+ "Adds setting to drop untagged and priority frames on a LAG dot1q tunnel interface";
+ uses vlan-tag-required;
+ }
+}
diff --git a/EOS-4.21.3F/experimental/eos/models/vxlan/arista-exp-eos-vxlan-config.yang b/EOS-4.21.3F/experimental/eos/models/vxlan/arista-exp-eos-vxlan-config.yang
new file mode 100644
index 0000000..476ea4e
--- /dev/null
+++ b/EOS-4.21.3F/experimental/eos/models/vxlan/arista-exp-eos-vxlan-config.yang
@@ -0,0 +1,416 @@
+module arista-exp-eos-vxlan-config {
+ yang-version 1;
+ namespace "http://arista.com/yang/experimental/eos/vxlan/config";
+ prefix vxlan-config-exp;
+
+ import ietf-yang-types {
+ prefix yang;
+ }
+ import ietf-inet-types {
+ prefix inet;
+ }
+ import arista-eos-types {
+ prefix eos-types;
+ }
+
+ organization
+ "Arista Networks ";
+ contact
+ "Arista Networks, Inc.
+ Product Support";
+ description
+ "This module contains VXLAN configuration models in Arista EOS.
+
+ Copyright (c) 2018 Arista Networks, Inc. All rights reserved.";
+
+ revision 2018-08-01 {
+ description
+ "Initial revision";
+ reference "0.1.0";
+ }
+
+ typedef allow-learn-mode {
+ type enumeration {
+ enum LEARN_FROM_DEFAULT {
+ description
+ "Type: Vxlan::AllowLearnMode, Name: learnFromDefault, Value: 0";
+ }
+ enum LEARN_FROM_ANY {
+ description
+ "Type: Vxlan::AllowLearnMode, Name: learnFromAny, Value: 1";
+ }
+ enum LEARN_FROM_FLOOD_LIST {
+ description
+ "Type: Vxlan::AllowLearnMode, Name: learnFromFloodList, Value: 2";
+ }
+ enum LEARN_FROM_LIST {
+ description
+ "Type: Vxlan::AllowLearnMode, Name: learnFromList, Value: 3";
+ }
+ }
+ description
+ "Type: Vxlan::AllowLearnMode";
+ }
+
+ grouping learn-from-mode-list {
+ description
+ "MAC learning configuration model";
+ leaf learn-from {
+ type allow-learn-mode;
+ description
+ "Path: /learnFrom, Type: enum Vxlan::AllowLearnMode";
+ }
+ list learn-prefix-list {
+ when "../learn-from = 'LEARN_FROM_LIST'";
+ key "prefix";
+ description
+ "Path: /learnPrefixList, Type: [value Vxlan::VtepPrefix]bool";
+ leaf prefix {
+ type inet:ip-prefix;
+ description
+ "Path: /learnPrefixList/, Type: value Vxlan::VtepPrefix";
+ }
+ }
+ }
+
+ grouping learn-restrict {
+ description
+ "Type: Vxlan::LearnRestrict";
+ leaf vlan-id {
+ type uint16;
+ description
+ "Path: /vlanId, Type: value Bridging::VlanId";
+ }
+ uses learn-from-mode-list;
+ }
+
+ grouping vtep-list {
+ description
+ "Type: Vxlan::VtepList";
+ list remote-vtep-addr {
+ key "vtep-ip";
+ description
+ "Path: /remoteVtepAddr, Type: [value Arnet::IpAddr]bool";
+ leaf vtep-ip {
+ type inet:ipv4-address;
+ description
+ "Path: /remoteVtepAddr/, Type: value Arnet::IpAddr";
+ }
+ }
+ leaf vlan-id {
+ type uint16;
+ description
+ "Path: /vlanId, Type: value Bridging::VlanId";
+ }
+ }
+
+ grouping vxlan-config {
+ description
+ "Type: Vxlan::VxlanConfig";
+ list flood-vtep-list {
+ key "vtep-ip";
+ description
+ "Path: /floodVtepList, Type: [value Arnet::IpAddr]bool";
+ leaf vtep-ip {
+ type inet:ipv4-address;
+ description
+ "Path: /floodVtepList/, Type: value Arnet::IpAddr";
+ }
+ }
+ uses learn-from-mode-list;
+ list vlan-to-learn-restrict {
+ key "vlan-id";
+ description
+ "Path: /vlanToLearnRestrict, Type: ['vlanId' value Bridging::VlanId]entity Vxlan::LearnRestrict";
+ uses learn-restrict;
+ }
+ list vlan-to-vtep-list {
+ key "vlan-id";
+ description
+ "Path: /vlanToVtepList, Type: ['vlanId' value Bridging::VlanId]entity Vxlan::VtepList";
+ uses vtep-list;
+ }
+ list vni-ip-access-group {
+ key "vni";
+ description
+ "Path: /vniIpAccessGroup, Type: [value Vxlan::Vni]Tac::String";
+ leaf vni {
+ type uint32;
+ description
+ "Path: /vniIpAccessGroup/, Type: value Vxlan::Vni";
+ }
+ leaf value {
+ type string;
+ description
+ "Path: /vniIpAccessGroup/, Type: Tac::String";
+ }
+ }
+ }
+
+ typedef intf-enabled-state {
+ type enumeration {
+ enum ENABLED {
+ description
+ "Type: Interface::IntfEnabledState, Name: enabled, Value: 1";
+ }
+ enum SHUTDOWN {
+ description
+ "Type: Interface::IntfEnabledState, Name: shutdown, Value: 2";
+ }
+ enum UNKNOWN_ENABLED_STATE {
+ description
+ "Type: Interface::IntfEnabledState, Name: unknownEnabledState, Value: 0";
+ }
+ }
+ description
+ "Type: Interface::IntfEnabledState";
+ }
+
+ typedef intf-logging-mode {
+ type enumeration {
+ enum OFF {
+ description
+ "Type: Interface::IntfLoggingMode, Name: off, Value: 1";
+ }
+ enum ON {
+ description
+ "Type: Interface::IntfLoggingMode, Name: on, Value: 0";
+ }
+ enum USE_GLOBAL {
+ description
+ "Type: Interface::IntfLoggingMode, Name: useGlobal, Value: 2";
+ }
+ }
+ description
+ "Type: Interface::IntfLoggingMode";
+ }
+
+ grouping load-interval {
+ description
+ "Type: Interface::LoadInterval";
+ leaf use-default {
+ type boolean;
+ description
+ "Path: /useDefault, Type: bool";
+ }
+ leaf val {
+ type eos-types:double;
+ description
+ "Path: /val, Type: double";
+ }
+ }
+
+ typedef mlag-shared-router-mac-config-mode {
+ type enumeration {
+ enum AUTO_GENERATED {
+ description
+ "Type: Vxlan::MlagSharedRouterMacConfigMode, Name: autoGenerated, Value: 1";
+ }
+ enum DISABLED {
+ description
+ "Type: Vxlan::MlagSharedRouterMacConfigMode, Name: disabled, Value: 0";
+ }
+ enum EXPLICIT_CONFIG {
+ description
+ "Type: Vxlan::MlagSharedRouterMacConfigMode, Name: explicitConfig, Value: 2";
+ }
+ }
+ description
+ "Type: Vxlan::MlagSharedRouterMacConfigMode";
+ }
+
+ grouping vti-config {
+ description
+ "Type: Vxlan::VtiConfig";
+ leaf addr {
+ type yang:mac-address;
+ description
+ "Path: /addr, Type: value Arnet::EthAddr";
+ }
+ leaf admin-enabled-state-local {
+ type intf-enabled-state;
+ description
+ "Path: /adminEnabledStateLocal, Type: enum Interface::IntfEnabledState";
+ }
+ leaf arp-local-address {
+ type boolean;
+ description
+ "Path: /arpLocalAddress, Type: bool";
+ }
+ leaf arp-publish-remote-mac {
+ type boolean;
+ description
+ "Path: /arpPublishRemoteMac, Type: bool";
+ }
+ leaf arp-reply-relay {
+ type boolean;
+ description
+ "Path: /arpReplyRelay, Type: bool";
+ }
+ leaf controller-client-mode {
+ type boolean;
+ description
+ "Path: /controllerClientMode, Type: bool";
+ }
+ leaf description {
+ type string;
+ description
+ "Path: /description, Type: Tac::String";
+ }
+ leaf enabled-state-local {
+ type intf-enabled-state;
+ description
+ "Path: /enabledStateLocal, Type: enum Interface::IntfEnabledState";
+ }
+ leaf enabled-state-reason {
+ type string;
+ description
+ "Path: /enabledStateReason, Type: Tac::String";
+ }
+ leaf flood-mcast-grp {
+ type inet:ipv4-address;
+ description
+ "Path: /floodMcastGrp, Type: value Arnet::IpAddr";
+ }
+ leaf l2-mtu {
+ type uint32;
+ description
+ "Path: /l2Mtu, Type: U32";
+ }
+ leaf link-down-debounce-period {
+ type uint32;
+ description
+ "Path: /linkDownDebouncePeriod, Type: U32";
+ }
+ leaf link-status-logging {
+ type intf-logging-mode;
+ description
+ "Path: /linkStatusLogging, Type: enum Interface::IntfLoggingMode";
+ }
+ leaf link-up-debounce-period {
+ type uint32;
+ description
+ "Path: /linkUpDebouncePeriod, Type: U32";
+ }
+ container load-interval {
+ description
+ "Path: /loadInterval, Type: value Interface::LoadInterval";
+ uses load-interval;
+ }
+ list mcast-grp-decap {
+ key "mcast-grp";
+ description
+ "Path: /mcastGrpDecap, Type: [value Arnet::IpAddr]bool";
+ leaf mcast-grp {
+ type inet:ipv4-address;
+ description
+ "Path: /mcastGrpDecap/, Type: value Arnet::IpAddr";
+ }
+ }
+ leaf mlag-shared-router-mac-addr {
+ type yang:mac-address;
+ description
+ "Path: /mlagSharedRouterMacAddr, Type: value Arnet::EthAddr";
+ }
+ leaf mlag-shared-router-mac-config {
+ type mlag-shared-router-mac-config-mode;
+ description
+ "Path: /mlagSharedRouterMacConfig, Type: enum Vxlan::MlagSharedRouterMacConfigMode";
+ }
+ leaf mtu {
+ type uint32;
+ description
+ "Path: /mtu, Type: U32";
+ }
+ list requestor {
+ key "requestor";
+ description
+ "Path: /requestor, Type: [Tac::String]bool";
+ leaf requestor {
+ type string;
+ description
+ "Path: /requestor/, Type: Tac::String";
+ }
+ }
+ leaf src-ip-intf {
+ type eos-types:Arnet-IntfId;
+ description
+ "Path: /srcIpIntf, Type: value Arnet::IntfId";
+ }
+ leaf ttl {
+ type uint8;
+ description
+ "Path: /ttl, Type: U8";
+ }
+ leaf udp-port {
+ type uint16;
+ description
+ "Path: /udpPort, Type: U16";
+ }
+ leaf vcc-data-path-learning {
+ type boolean;
+ description
+ "Path: /vccDataPathLearning, Type: bool";
+ }
+ list vlan-to-group {
+ key "vlan";
+ description
+ "Path: /vlanToGroup, Type: [value Bridging::VlanId]value Arnet::IpAddr";
+ leaf vlan {
+ type uint16;
+ description
+ "Path: /vlanToGroup/, Type: value Bridging::VlanId";
+ }
+ leaf flood-mcast-grp {
+ type inet:ipv4-address;
+ description
+ "Path: /vlanToGroup/, Type: value Arnet::IpAddr";
+ }
+ }
+ list vlan-to-vni-map {
+ key "vlan";
+ description
+ "Path: