// ===================================================================
// Title:  Network Link Aggregation Model
// $State: Exp $
// $Date: 2004/08/15 05:55:38 $
// $Source: /cvsroot/wbemservices/open/mof/dmtf/2.9/Network_8023LAG.mof,v $
// $Revision: 1.1 $
// ===================================================================
//#pragma inLine ("Includes/copyright.inc")
// Copyright 1998-2004 Distributed Management Task Force, Inc. (DMTF).
// All rights reserved.
// DMTF is a not-for-profit association of industry members dedicated
// to promoting enterprise and systems management and interoperability.
// DMTF specifications and documents may be reproduced for uses
// consistent with this purpose by members and non-members,
// provided that correct attribution is given.
// As DMTF specifications may be revised from time to time,
// the particular version and release date should always be noted.
// 
// Implementation of certain elements of this standard or proposed
// standard may be subject to third party patent rights, including
// provisional patent rights (herein "patent rights"). DMTF makes
// no representations to users of the standard as to the existence
// of such rights, and is not responsible to recognize, disclose, or
// identify any or all such third party patent right, owners or
// claimants, nor for any incomplete or inaccurate identification or
// disclosure of such rights, owners or claimants. DMTF shall have no
// liability to any party, in any manner or circumstance, under any
// legal theory whatsoever, for failure to recognize, disclose, or
// identify any such third party patent rights, or for such party's
// reliance on the standard or incorporation thereof in its product,
// protocols or testing procedures. DMTF shall have no liability to
// any party implementing such standard, whether such implementation
// is foreseeable or not, nor to any patent owner or claimant, and shall
// have no liability or responsibility for costs or losses incurred if
// a standard is withdrawn or modified after publication, and shall be
// indemnified and held harmless by any party implementing the
// standard from any and all claims of infringement by a patent owner
// for such implementations.
// 
// For information about patents held by third-parties which have
// notified the DMTF that, in their opinion, such patent may relate to
// or impact implementations of DMTF standards, visit
// http://www.dmtf.org/about/policies/disclosures.php.
//#pragma inLine
// ===================================================================
// Description: The Network Model extends the management concepts to
//              represent protocol interfaces and network/protocol
//              services.  This file provides the definitions for
//              Link Aggregation based on the IEEE 802.3ad
//              specification.
//              The IEEE specification should be consulted to understand
//              the proper use and value assignment of the
//              link aggregation properties.
// 
//              The object classes below are listed in an order that
//              avoids forward references. Required objects, defined
//              by other working groups, are omitted.
// ==================================================================
// Change Log for v2.9 Preliminary -
//  CR1345 - Created this file.
//  CR1465 - Remove extra spaces at the end of string literals in 
// "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortActorAdminState " }
// "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortPartnerAdminPort " }
// ==================================================================
//
//
// ==================================================================
// LinkAggregator8023ad
// ==================================================================
   [Experimental, Version ( "2.8.1000" ), Description (
       "The LinkAggregator8023ad class represents an instance of an "
       "802.3ad aggregator in a system. The word actor is used in "
       "property names to refer to the local entity of an aggregation.")]
class CIM_LinkAggregator8023ad : CIM_ProtocolEndpoint {

      [Write, Description (
          "A 6-octet MAC address value used as a unique identifier for "
          "the System that contains this Aggregator. NOTE: From the "
          "perspective of the Link Aggregation mechanisms described in "
          "Clause 43 (IEEE 802.3ad), only a single combination of "
          "Actor's System ID and System Priority are considered, and "
          "no distinction is made between the values of these "
          "parameters for an Aggregator and the port(s) that are "
          "associated with it; i.e., the protocol is described in "
          "terms of the operation of aggregation within a single "
          "System. However, the managed objects provided for the "
          "Aggregator and the port both allow management of these "
          "parameters. The result of this is to permit a single piece "
          "of equipment to be configured by management to contain more "
          "than one System from the point of view of the operation of "
          "Link Aggregation. This may be of particular use in the "
          "configuration of equipment that has limited aggregation "
          "capability. Note that the MAC address is formatted as "
          "twelve hexadecimal digits (e.g., \"010203040506\"), with "
          "each pair representing one of the six octets of the MAC "
          "address in \"canonical\" bit order according to RFC 2469."), 
       MaxLen ( 12 ), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggActorSystemID" }, 
       ModelCorrespondence { 
          "CIM_LinkAggregator8023ad.ActorSystemPriority" }]
   string ActorSystemID;

      [Write, Description (
          "A 2-octet value indicating the priority value associated "
          "with the Actor's System ID. The system with the lower value "
          "has the higher priority. Guidelines for the use of system "
          "and port priorities is given in IEEE 802.3ad document, "
          "Section 43.6."), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggActorSystemPriority" }, 
       ModelCorrespondence { "CIM_LinkAggregator8023ad.ActorSystemID" }]
   uint16 ActorSystemPriority;


      [Description (
          "This object indicates the time of the most recent change to "
          "this aggregator, its list of aggregated ports, or "
          "configuration of a aggregation port member."), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adTimeOfLastOperChange" }]
   datetime TimeOfLastOperChange;

      [Description (
          "A Boolean value indicating whether the Aggregator "
          "represents an Aggregate (TRUE) or an Individual link "
          "(FALSE)."), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggAggregateOrIndividual" }]
   boolean RepresentsAggregate;

      [Description (
          "A 6-octet value carrying the individual MAC address "
          "assigned to the Aggregator. Note that the MAC address is "
          "formatted as twelve hexadecimal digits (e.g., "
          "\"010203040506\"), with each pair representing one of the "
          "six octets of the MAC address in \"canonical\" bit order "
          "according to RFC 2469."), 
       MaxLen ( 12 ), 
       MappingStrings { "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggMACAddress" 
          }]
   string MACAddress;

      [Description (
          "The current operational value of the 16-bit Key forthe "
          "Aggregator (Actor). The administrative Key value may differ "
          "from the operational Key value for reasons discussed in the "
          "IEEE 802.3ad document, Section 43.6.2. The meaning of "
          "particular Key values is of local significance."), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggActorOperKey" }, 
       ModelCorrespondence { "CIM_LinkAggregator8023ad.ActorAdminKey" }]
   uint16 ActorOperKey;


      [Write, Description (
          "The current administrative value of the 16-bit Key for the "
          "Aggregator (Actor). The administrative Key value may differ "
          "from the operational Key value for reasons discussed in the "
          "IEEE 802.3ad document, Section 43.6.2. The meaning of "
          "particular Key values is of local significance."), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggActorAdminKey" }, 
       ModelCorrespondence { "CIM_LinkAggregator8023ad.ActorOperKey" }]
   uint16 ActorAdminKey;

      [Write, Description (
          "The value of this datetime property (expressed using an "
          "interval format) defines the maximum delay that may be "
          "imposed by the Frame Collector between receiving a frame "
          "from an Aggregator Parser, and either delivering the frame "
          "to its MAC Client or discarding the frame."), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggCollectorMaxDelay" }]
   datetime CollectorMaxDelay;

      [Experimental, Override ( "ProtocolIFType" ), Description (
          "ProtocolIFType's enumeration is limited to 802.3 "
          "LinkAggregation and reserved values for this subclass of "
          "ProtocolEndpoint."), 
       ValueMap { "1", "161", "222..4095", "4096..32767", "32768.." }, 
       Values { "Other", "IEEE8023adLAG", "IANA Reserved",
          "DMTF Reserved", "Vendor Reserved" }]
   uint16 ProtocolIFType = 161;

};


// ==================================================================
// LinkAggregatorPartnerConnection
// ==================================================================
   [Association, Experimental, Version ( "2.8.1000" ), Description (
       "LinkAggregatorPartnerConnection contains the configuration "
       "information for an instance of a Link Aggregator's partner. "
       "The partner is defined as a RemoteServiceAccessPoint and it "
       "represents the actor's view of the connection. This sub-class "
       "of ActiveConnection represents a connection which is "
       "configured to communicate or it is actively communicating. If "
       "there is no known partner, then this association will not be "
       "defined for an instance of LinkAggregator8023ad.")]
class CIM_LinkAggregatorPartnerConnection : CIM_ActiveConnection {

      [Override ( "Antecedent" ), Max ( 1 ), Description (
          "The Link Aggregator on the local system.")]
   CIM_LinkAggregator8023ad REF Antecedent;

      [Override ( "Dependent" ), Max ( 1 ), Description (
          "The remote entity/partner of the referenced "
          "LinkAggregator8023ad.")]
   CIM_RemoteServiceAccessPoint REF Dependent;

      [Description (
          "A 6-octet MAC address value consisting of the unique "
          "identifier for the current protocol Partner of the "
          "referenced Aggregator. If the aggregation is manually "
          "configured, this System ID value will be a value assigned "
          "by the local System. Note that the MAC address is formatted "
          "as twelve hexadecimal digits (e.g., \"010203040506\"), with "
          "each pair representing one of the six octets of the MAC "
          "address in \"canonical\" bit order according to RFC 2469."), 
       MaxLen ( 12 ), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPartnerSystemID" }, 
       ModelCorrespondence { 
          "CIM_LinkAggregatorPartnerConnection.PartnerSystemPriority" }]
   string PartnerSystemID;

      [Description (
          "A 2-octet value that indicates the priority value "
          "associated with the Partner's System ID. If the aggregation "
          "is manually configured, this System Priority value will be "
          "a value assigned by the local System."), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPartnerSystemPriority" }, 
       ModelCorrespondence { 
          "CIM_LinkAggregatorPartnerConnection.PartnerSystemID" }]
   uint16 PartnerSystemPriority;

      [Description (
          "The current operational value of the 16-bit Key for the "
          "Aggregator's current protocol Partner. If the aggregation "
          "is manually configured, this Key value will be a value "
          "assigned by the local System."), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPartnerOperKey" }]
   uint16 PartnerOperKey;

};






// ==================================================================
// LAGPort8023ad
// ==================================================================
   [Experimental, Version ( "2.8.1000" ), Description (
       "LAGPort8023ad contains the configuration information for a "
       "port (LANEndpoint) which is a member of a link aggregation. "
       "This port aspect is associated to LANEndpoint using the "
       "ConcreteIdentity relationship. A port may be attached to an "
       "instance of LinkAggregator8023ad. This is described using the "
       "BindsTo association. The latter is described in the IEEE "
       "802.3ad document, Subclause 30.7.2.1.13, and maps the "
       "information in "
       "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortAttachedAggID.")]
class CIM_LAGPort8023ad : CIM_ProtocolEndpoint {


      [Description (
          "A 6-octet MAC address value that defines the value of the "
          "System ID for the System that contains this Aggregation "
          "Port. For more information, refer to the IEEE 802.3 "
          "document, Subclause 30.7.2.1.3. Note that the MAC address "
          "is formatted as twelve hexadecimal digits (e.g., "
          "\"010203040506\"), with each pair representing one of the "
          "six octets of the MAC address in \"canonical\" bit order "
          "according to RFC 2469."), 
       MaxLen ( 12 ), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortActorSystemID" }, 
       ModelCorrespondence { "CIM_LAGPort8023ad.ActorSystemPriority" }]
   string ActorSystemID;

      [Write, Description (
          "A 2-octet value used to define the priority value "
          "associated with the Actor's System ID. For more "
          "information, refer to the IEEE 802.3 document, Subclause "
          "30.7.2.1.2."), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortActorSystemPriority" 
          }, 
       ModelCorrespondence { "CIM_LAGPort8023ad.ActorSystemID" }]
   uint16 ActorSystemPriority;

      [Description (
          "The port number locally assigned to the Aggregation Port. "
          "The port number is communicated in LACPDUs as the "
          "Actor_Port. For more information, refer to the IEEE 802.3 "
          "document, Subclause 30.7.2.1.14."), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortActorPort" }]
   uint16 ActorPort;

      [Write, Description (
          "The priority value locally assigned to this Aggregation "
          "Port. For more information, refer to the IEEE 802.3 "
          "document, Subclause 30.7.2.1.15."), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortActorPortPriority" }]
   uint16 ActorPortPriority;


      [Description (
          "The current operational value of the 16-bit Key for the "
          "Aggregation Port. The meaning of particular Key values is "
          "of local significance. For more information, refer to the "
          "IEEE 802.3 document, Subclause 30.7.2.1.5."), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortActorOperKey" }]
   uint16 ActorOperKey;



      [Description (
          "An enumerated array corresponding to the currentoperational "
          "values of Actor_State as transmitted by the Actor in "
          "LACPDUs and described in the IEEE 802.3ad document, "
          "Subclause 30.7.2.1.21."), 
       ValueMap { "0", "2", "3", "4", "5", "6", "7", "8", "9" }, 
       Values { "Unknown/Undefined", "LACP_Activity", "LACP_Timeout",
          "Aggregation", "Synchronization", "Collecting",
          "Distributing", "Defaulted", "Expired" }, 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortActorOperState" }, 
       ModelCorrespondence { "CIM_LAGPort8023ad.ActorAdminState" }]
   uint16 ActorOperState[];

      [Write, Description (
          "An enumerated array allowing administrator control of the "
          "Port's state (described in the IEEE 802.3ad document, "
          "Subclause 30.7.2.1.20, and transmitted by the Actor in "
          "LACPDUs)."), 
       ValueMap { "0", "2", "3", "4", "5", "6", "7", "8", "9" }, 
       Values { "Unknown/Undefined", "LACP_Activity", "LACP_Timeout",
          "Aggregation", "Synchronization", "Collecting",
          "Distributing", "Defaulted", "Expired" }, 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortActorAdminState" }, 
       ModelCorrespondence { "CIM_LAGPort8023ad.ActorOperState" }]
   uint16 ActorAdminState[] ;


      [Description (
          "A Boolean value indicating whether the Aggregation Port is "
          "able to Aggregate (`TRUE') or is only able to operate as an "
          "Individual link ('FALSE'). For more information, refer to "
          "the IEEE 802.3 document, Subclause 30.7.2.1.24."), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortAggregateOrIndividual" 
          }]
   boolean RepresentsAggregate;

      [Description (
          "The identifier value of the Aggregator that this "
          "Aggregation Port has currently selected. Zero indicates "
          "that the Aggregation Port has not selected an Aggregator, "
          "either because it is in the process of detaching from an "
          "Aggregator or because there is no suitable Aggregator "
          "available for it to select. For more information, refer to "
          "the IEEE 802.3ad document, Subclause 30.7.2.1.12."), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortSelectedAggID" }]
   uint32 SelectedAggID;


};


// ==================================================================
// LAGPortPartnerSettings
// ==================================================================
   [Experimental, Version ( "2.8.1000" ), Description (
       "LAGPortPartnerSettings contains the configuration information "
       "for a protocol Partner of a LAG port. This allows manually "
       "configured aggregation. The configuration information is "
       "associated with an instance of LAGPort8023ad via "
       "ElementSettingData.")]
class CIM_LAGPortPartnerSettings : CIM_SettingData {

      [Write, Description (
          "A 6-octet MACAddress value representing the administrative "
          "value of the Aggregation Port's protocol Partner's System "
          "ID. The assigned value is used, along with the values of "
          "the other properties of this class, in order to achieve "
          "manually configured aggregation. For more information, "
          "refer to the IEEE 802.3 document, Subclause 30.7.2.1.8. "
          "Note that the MAC address is formatted as twelve "
          "hexadecimal digits (e.g., \"010203040506\"), with each pair "
          "representing one of the six octets of the MAC address in "
          "\"canonical\" bit order according to RFC 2469."), 
       MaxLen ( 12 ), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortPartnerAdminSystemID" 
          }, 
       ModelCorrespondence { 
          "CIM_LAGPortPartnerSettings.PortPartnerAdminSystemPriority",
          "CIM_LAGPortPartnerSettings.PortPartnerAdminKey",
          "CIM_LAGPortPartnerSettings.PortPartnerAdminPort",
          "CIM_LAGPortPartnerSettings.PortPartnerAdminPortPriority",
          "CIM_LAGPortPartnerConnection.PortPartnerOperSystemID" }]
   string PortPartnerAdminSystemID;

      [Write, Description (
          "A 2-octet value used to define the administrative value of "
          "priority associated with the Partner's System ID. The "
          "assigned value is used, along with the values of the other "
          "properties of this class, in order to achieve manually "
          "configured aggregation. For more information, refer to the "
          "IEEE 802.3 document, Subclause 30.7.2.1.6."), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortPartnerAdminSystemPriority" 
          }, 
       ModelCorrespondence { 
          "CIM_LAGPortPartnerSettings.PortPartnerAdminSystemID",
          "CIM_LAGPortPartnerSettings.PortPartnerAdminKey",
          "CIM_LAGPortPartnerSettings.PortPartnerAdminPort",
          "CIM_LAGPortPartnerSettings.PortPartnerAdminPortPriority",
          "CIM_LAGPortPartnerConnection.PortPartnerOperSystemPriority" 
          }]
   uint16 PortPartnerAdminSystemPriority;

      [Write, Description (
          "The current administrative value of the 16-bit Key for the "
          "protocol Partner. The assigned value is used, along with "
          "the values of the other properties of this class, in order "
          "to achieve manually configured aggregation. For more "
          "information, refer to the IEEE 802.3 document, Subclause "
          "30.7.2.1.10."), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortPartnerAdminKey" }, 
       ModelCorrespondence { 
          "CIM_LAGPortPartnerSettings.PortPartnerAdminSystemID",
          "CIM_LAGPortPartnerSettings.PortPartnerAdminSystemPriority",
          "CIM_LAGPortPartnerSettings.PortPartnerAdminPort",
          "CIM_LAGPortPartnerSettings.PortPartnerAdminPortPriority",
          "CIM_LAGPortPartnerConnection.PortPartnerOperKey" }]
   uint16 PortPartnerAdminKey;

      [Write, Description (
          "The current administrative value of the port number for the "
          "protocol Partner. This is a 16-bit value. The assigned "
          "value is used, along with the values of the other "
          "properties of this class, in order to achieve manually "
          "configured aggregation. For more information, refer to the "
          "IEEE 802.3 document, Subclause 30.7.2.1.16."), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortPartnerAdminPort" }, 
       ModelCorrespondence { 
          "CIM_LAGPortPartnerSettings.PortPartnerAdminSystemID",
          "CIM_LAGPortPartnerSettings.PortPartnerAdminSystemPriority",
          "CIM_LAGPortPartnerSettings.PortPartnerAdminKey",
          "CIM_LAGPortPartnerSettings.PortPartnerAdminPortPriority",
          "CIM_LAGPortPartnerConnection.PortPartnerOperPort" }]
   uint16 PortPartnerAdminPort;

      [Write, Description (
          "The current administrative value of the port priority for "
          "the protocol Partner. This is a 16-bit value. The assigned "
          "value is used, along with the values of the other "
          "properties of this class, in order to achieve manually "
          "configured aggregation. For more information, refer to the "
          "IEEE 802.3 document, Subclause 30.7.2.1.18."), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortPartnerAdminPortPriority" 
          }, 
       ModelCorrespondence { 
          "CIM_LAGPortPartnerSettings.PortPartnerAdminSystemID",
          "CIM_LAGPortPartnerSettings.PortPartnerAdminSystemPriority",
          "CIM_LAGPortPartnerSettings.PortPartnerAdminKey",
          "CIM_LAGPortPartnerSettings.PortPartnerAdminPort",
          "CIM_LAGPortPartnerConnection.PortPartnerOperPortPriority" }]
   uint16 PortPartnerAdminPortPriority;

};


// ==================================================================
// LAGPortPartnerConnection
// ==================================================================
   [Association, Experimental, Version ( "2.8.1000" ), Description (
       "LAGPortPartnerConnection contains the configuration "
       "information for an instance of a LAGPort8023ad's partner. The "
       "partner is defined as a RemoteServiceAccessPoint and it "
       "represents the actor's view of the connection. If there is no "
       "known partner, then this association will not be defined for "
       "an instance of LAGPort8023ad.")]
class CIM_LAGPortPartnerConnection : CIM_ActiveConnection {

      [Override ( "Antecedent" ), Max ( 1 ), Description (
          "The 802.3ad port on the local system.")]
   CIM_LAGPort8023ad REF Antecedent;

      [Override ( "Dependent" ), Max ( 1 ), Description (
          "The remote entity/partner of the referenced LAGPort8023ad.")]
   CIM_RemoteServiceAccessPoint REF Dependent;

      [Description (
          "A 6-octet MACAddress value representing the current value "
          "of the Aggregation Port's protocol Partner's System ID. For "
          "more information, refer to the IEEE 802.3ad document, "
          "Subclause 30.7.2.1.9. Note that the MAC address is "
          "formatted as twelve hexadecimal digits (e.g., "
          "\"010203040506\"), with each pair representing one of the "
          "six octets of the MAC address in \"canonical\" bit order "
          "according to RFC 2469."), 
       MaxLen ( 12 ), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortPartnerOperSystemID" 
          }, 
       ModelCorrespondence { 
          "CIM_LAGPortPartnerSettings.PortPartnerAdminSystemID" }]
   string PortPartnerOperSystemID;

      [Description (
          "A 2-octet value indicating the operational value of "
          "priority associated with the Partner's System ID. For more "
          "information, refer to the IEEE 802.3ad document, Subclause "
          "30.7.2.1.7."), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortPartnerOperSystemPriority" 
          }, 
       ModelCorrespondence { 
          "CIM_LAGPortPartnerSettings.PortPartnerAdminSystemPriority" }]
   uint16 PortPartnerOperSystemPriority;

      [Description (
          "The current operational value of the 16-bit Keyfor the "
          "protocol Partner. For more information, refer to the IEEE "
          "802.3ad document, Subclause 30.7.2.1.11."), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortPartnerOperKey" }, 
       ModelCorrespondence { 
          "CIM_LAGPortPartnerSettings.PortPartnerAdminKey" }]
   uint16 PortPartnerOperKey;

      [Description (
          "The operational port number assigned to the Aggregation "
          "Port's protocol Partner. For more information, refer to the "
          "IEEE 802.3ad document, Subclause 30.7.2.1.17."), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortPartnerOperPort" }, 
       ModelCorrespondence { 
          "CIM_LAGPortPartnerSettings.PortPartnerAdminPort" }]
   uint16 PortPartnerOperPort;

      [Description (
          "The priority value assigned to the AggregationPort's "
          "protocol Partner. For more information, refer to the IEEE "
          "802.3ad document, Subclause 30.7.2.1.19."), 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortPartnerOperPortPriority" 
          }, 
       ModelCorrespondence { 
          "CIM_LAGPortPartnerSettings.PortPartnerAdminPortPriority" }]
   uint16 PortPartnerOperPortPriority;


      [Write, Description (
          "An enumerated array allowing administrator control of the "
          "Actor_State for the protocol Partner. For more information, "
          "refer to the IEEE 802.3ad document, Subclause 30.7.2.1.22."), 
       ValueMap { "0", "2", "3", "4", "5", "6", "7", "8", "9" }, 
       Values { "Unknown/Undefined", "LACP_Activity", "LACP_Timeout",
          "Aggregation", "Synchronization", "Collecting",
          "Distributing", "Defaulted", "Expired" }, 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortPartnerAdminState" }, 
       ModelCorrespondence { 
          "CIM_LAGPortPartnerConnection.PortPartnerOperState" }]
   uint16 PortPartnerAdminState;


      [Description (
          "An enumerated array defining the Actor_State for the "
          "protocol Partner, from the most recently received LACPDU "
          "transmitted by the partner. For more information, refer to "
          "the IEEE 802.3ad document, Subclause 30.7.2.1.23."), 
       ValueMap { "0", "2", "3", "4", "5", "6", "7", "8", "9" }, 
       Values { "Unknown/Undefined", "LACP_Activity", "LACP_Timeout",
          "Aggregation", "Synchronization", "Collecting",
          "Distributing", "Defaulted", "Expired" }, 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortPartnerOperState" }, 
       ModelCorrespondence { 
          "CIM_LAGPortPartnerConnection.PortPartnerAdminState" }]
   uint16 PortPartnerOperState;

};





// ==================================================================
// LACPPortStatistics
// ==================================================================
   [Experimental, Version ( "2.8.1000" ), Description (
       "Statistics for Link Aggregation Control Protocol (LACP). These "
       "statistics are for each LAGPort8023ad where LACP is enabled in "
       "a device.")]
class CIM_LACPPortStatistics : CIM_StatisticalData {


      [Description (
          "The number of valid LACPDUs received on this Aggregation "
          "Port."), 
       Counter, 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortStatsLACPDUsRx" }]
   uint32 PortStatsLACPDUsRx;


      [Description (
          "The number of valid Marker PDUs received on this "
          "Aggregation Port."), 
       Counter, 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortStatsMarkerPDUsRx" }]
   uint32 PortStatsMarkerPDUsRx;

      [Description (
          "The number of valid Marker Response PDUs received on this "
          "Aggregation Port."), 
       Counter, 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortStatsMarkerResponsePDUsRx" 
          }]
   uint32 PortStatsMarkerResponsePDUsRx;


      [Description (
          "The number of frames received that either: \n"
          "* carry the Slow Protocols Ethernet Type value (43B.4), but "
          "contain an unknown PDU, or: \n"
          "* are addressed to the Slow Protocols group MAC Address "
          "(43B.3), but do not carry the Slow Protocols Ethernet Type."), 
       Counter, 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortStatsUnknownRx" }]
   uint32 PortStatsUnknownRx;

      [Description (
          "The number of frames received that carry the Slow Protocols "
          "Ethernet Type value (43B.4), but contain a badly formed PDU "
          "or an illegal value of Protocol Subtype (43B.4)."), 
       Counter, 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortStatsIllegalRx" }]
   uint32 PortStatsIllegalRx;

      [Description (
          "The number of LACPDUs transmitted on this Aggregation Port."), 
       Counter, 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortStatsLACPDUsTx" }]
   uint32 PortStatsLACPDUsTx;

      [Description (
          "The number of Marker PDUs transmitted on thisAggregation "
          "Port."), 
       Counter, 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortStatsMarkerPDUsTx" }]
   uint32 PortStatsMarkerPDUsTx;

      [Description (
          "The number of Marker Response PDUs transmitted on this "
          "Aggregation Port."), 
       Counter, 
       MappingStrings { 
          "MIB.IEEE|IEEE8023-LAG-MIB.dot3adAggPortStatsMarkerResponsePDUsTx" 
          }]
   uint32 PortStatsMarkerResponsePDUsTx;

};


// ==================================================================
// LAGControlCapabilities
// ==================================================================
   [Experimental, Version ( "2.8.1000" ), Description (
       "This class establishes the control protocol support of the "
       "system. The Capabilities instance is associated to a network "
       "ComputerSystem via the ElementCapabilities relationship.")]

class CIM_LAGControlCapabilities : CIM_Capabilities {

      [Description (
          "A LAG may be under manual control (i.e., amanagement "
          "station is responsible for the additon and removal of LAG "
          "members) or automatic (i.e., a control protocol is employed "
          "to establish LAG membership."), 
       ValueMap { "2", "3" }, 
       Values { "Manual", "Automatic" }]
   uint16 LAGControlMode = 2;

      [Description (
          "When the LAGMode is automatic, this propertyidentifies the "
          "control protocol in use."), 
       ValueMap { "2", "3", "4..32767", ".." }, 
       Values { "None", "LACP", "DMTF Reserved", "Vendor Reserved" }]
   uint16 LAGControlProtocol;

};

