// Copyright (c) 2005 DMTF.  All rights reserved.
   [Version ( "2.7.0" ), 
    UMLPackagePath ( "CIM::Network::QoS" ), 
    Description ( 
       "DropperService represents the ability to selectively drop "
       "network traffic, and/or to invoke another ConditioningService "
       "(indicated using the NextService association) for further "
       "processing of traffic that is not dropped. It is the base "
       "class for different types of droppers. Droppers are "
       "distinguished by the algorithm that they use to drop traffic. \n"
       "\n"
       "The NextService association has special semantics for "
       "droppers, in addition to conveying the general information of "
       "\'what happens next\' (that apply to all Conditioning "
       "Services). The queue(s) from which a particular dropper drops "
       "packets are identified by following chain(s) of NextService "
       "associations \'rightwards\' from the dropper, until they reach "
       "a queue." )]
class CIM_DropperService : CIM_ConditioningService {

      [Description ( 
          "This property is an enumerated 16-bit unsigned integer "
          "that defines the type of dropper. Its Values are: \n"
          "1: Other \n"
          "2: Random \n"
          "3: HeadTail \n"
          "4: Absolute Dropper \n"
          "\n"
          "Note: The DropperType property and the DropperService "
          "subclasses provide similar information. This property is "
          "defined for query purposes and to not require a subclass "
          "for all types of DropperServices (for example, to "
          "describe an Absolute Dropper in today\'s model). "
          "Therefore, DropperService can be instantiated directly "
          "and the Type property is needed." ), 
       ValueMap { "1", "2", "3", "4" }, 
       Values { "Other", "Random", "HeadTail", "Absolute Dropper" }, 
       ModelCorrespondence { "CIM_DropperService.OtherDropperType" }]
   uint16 DropperType;

      [Description ( 
          "This property contains a vendor-specific value for the "
          "type of dropping that is done. It is used when the value "
          "of the DropperType property is 1 (Other)." ), 
       ModelCorrespondence { "CIM_DropperService.DropperType" }]
   string OtherDropperType;

      [Deprecated { "CIM_DropperService.DropperType" }, 
       Description ( 
          "This property indicates whether the Dropper will always "
          "drop incoming packets (value=1) regardless of their "
          "type. It is deprecated since its information is conveyed "
          "by the DropperType property (value=4, \'Absolute "
          "Dropper\')." ), 
       ValueMap { "0", "1", "2" }, 
       Values { "Unknown", "Always Drop", "Do Not Always Drop" }]
   uint16 AlwaysDrop;

      [Description ( 
          "This enumeration indicates the point in the associated "
          "queue (associated via the NextService relationship) from "
          "which packets should be dropped. If the value is 0 "
          "\"Unknown\", then packets MAY be dropped from any "
          "location in the queue." ), 
       ValueMap { "0", "1", "2" }, 
       Values { "Unknown", "Head", "Tail" }]
   uint16 DropFrom;

      [Description ( 
          "This property is an enumerated unsigned 16-bit integer "
          "that defines the metric used to trigger the start of "
          "dropping packets. This does NOT mean that all packets "
          "will be dropped; it does mean that SOME packets will "
          "start to be dropped. The number and type of packets "
          "dropped is a function of the type of algorithm used by "
          "this Dropper. Values are: \n"
          "\n"
          "1: Other \n"
          "2: Queue Threshold \n"
          "3: Arrival Rate." ), 
       ValueMap { "1", "2", "3" }, 
       Values { "Other", "Queue Threshold", "Arrival Rate" }]
   uint16 DropStartMetric;

      [Description ( 
          "This property is an enumerated unsigned 16-bit integer "
          "that defines the metric used to determine when ALL "
          "packets will be dropped REGARDLESS of the type of "
          "algorithm used by this Dropper. Values are: \n"
          "\n"
          "1: Other \n"
          "2: Queue Threshold \n"
          "3: Arrival Rate." ), 
       ValueMap { "1", "2", "3" }, 
       Values { "Other", "Queue Threshold", "Arrival Rate" }]
   uint16 DropMaintainMetric;


};
