// ===================================================================
// Title:       Network Buffers 2.7
// Filename:    Network27_Buffers.mof
// Version:     2.7.0
// Status:      Final
// Date:        March 31, 2003
// ===================================================================
// Copyright 1998-2003 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.
// ===================================================================
// Description: The Network Model extends the management concepts to
//              represent protocol interfaces and network/protocol 
//              services.  This file defines the classes to manage  
//              network buffers. 
//
//              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.7
// CR790 - Add classes to support MPLS
// CR982 - MPLS classes remain as Experimental for CIM V2.8
// ===================================================================
 
#pragma Locale ("en_US")


// ===================================================================
// BufferPool
// ===================================================================
   [Version ("2.6.0"), Description (
      "This class represents the use of buffers by a Queuing"
      "Service. The existence and management of individual buffers "
      "will be modeled in a future release. At the current level "
      "of abstraction, modeling the existence of the BufferPool "
      "is necessary.  Long term, it is not sufficient. \n"
      "\n"
      "In implementations where there are multiple "
      "buffer sizes, an instance of BufferPool should be "
      "defined for each set of buffers with identical or similar "
      "sizes. These instances of buffer pools can then be grouped "
      "together using the CollectedBuffersPool association. \n"
      "\n"
      "Note that this class is derived from CollectionOfMSEs, "
      "and not from Forwarding or ConditioningService. BufferPool "
      "is only a collection of storage, and is NOT a Service.") ]
class CIM_BufferPool : CIM_CollectionOfMSEs {

        [Key, Override ("CollectionID"), MaxLen (256), 
         Description (
         "This property is defined in the CollectionOfMSEs class, "
         "but is overridden here to serve as part of the " 
         "(composite) key that identifies the BufferPool instance.") ]
    string CollectionID;

        [Key, MaxLen (256), Description (
         "CreationClassName indicates the name of the class or the "
         "subclass used in the creation of an instance. When used "
         "with the other key properties of this class, this property "
         "allows all instances of this class and its subclasses to "
         "be uniquely identified.") ]
    string CreationClassName;

        [MaxLen (256), Description (
         "The Name property defines the label by which the object "
         "is known.") ] 
    string Name;

        [Description (
         "This property is a 16-bit unsigned integer, and defines "
         "the number of bytes in each buffer."),
         Units ("Bytes") ]
    uint16 BufferSize;

        [Description (
         "This property is a 32-bit unsigned integer, and defines "
         "the total number of buffers in the Pool.") ]
    uint32 TotalBuffers;

        [Description (
         "This property is a 32-bit unsigned integer, and defines "
         "the number of buffers in the Pool that are currently "
         "not allocated to any instance of a QueuingService. "
         "Buffers allocated to a QueuingService could either be "
         "in use (containing packet data), or allocated to a Queue "
         "pending the arrival of new packet data.") ]
    uint32 AvailableBuffers;

        [Description (
         "This property is a 32-bit unsigned integer, and defines "
         "the number of buffers in the Pool that have been "
         "simultaneously allocated to multiple instances of "
         "QueuingService.") ]
    uint32 SharedBuffers;
};


// ==================================================================
// CollectedBufferPool
// ==================================================================
   [Association, Aggregation, Version ("2.6.0"), 
    Description (
      "CIM_CollectedBufferPool is an aggregation association "
      "representing that a Pool may itself be contained "
      "in a 'higher level' Pool.") ]
class CIM_CollectedBufferPool : CIM_MemberOfCollection {

        [Override("Collection"), Aggregate, 
         Description ("The 'higher level' or parent Pool.") ]
    CIM_BufferPool REF Collection;

        [Override("Member"),
         Description ("The 'collected' Pool.") ]
    CIM_BufferPool REF Member;
};


// ===================================================================
// end of file
// ===================================================================
