// Copyright (c) 2005 DMTF. All rights reserved.
// Add UmlPackagePath
// qualifier values to CIM Schema.
// Add PUnit qualifier values
// to Units qualifier values.
// ==================================================================
// CIM_REDDropperService
// ==================================================================
[Version ( "2.7.0" ),
UMLPackagePath ( "CIM::Network::QoS" ),
Description (
"REDDropperService represents the ability to drop network "
"traffic using a Random Early Detection (RED) algorithm. The "
"purpose of a RED algorithm is to avoid congestion (as opposed "
"to managing congestion). Instead of waiting for the queues to "
"fill up, and then dropping large numbers of packets, RED works "
"by monitoring average queue depth. When the queue depth "
"exceeds a minimum threshold, packets are randomly discarded. "
"These discards cause TCP to slow its transmission rate for "
"those connections that experienced the packet discards. Other "
"connections are not affected by these discards. \n"
"\n"
"A RED dropper always drops packets from a single queue, which "
"is related to the dropper as the following Service in the "
"NextService association. The queue(s) examined by the drop "
"algorithm are found by following the "
"CalculationServiceForDropper association(s) to determine the "
"dropper\'s DropThresholdCalculationService(s), and then "
"following the CalculationBasedOnQueue association to find the "
"queue being watched by each CalculationService." )]
class CIM_REDDropperService : CIM_DropperService {
[Description (
"This is an unsigned 32-bit integer that defines the "
"minimum average queue depth at which packets are subject "
"to being dropped. (See the ThresholdUnits property to "
"determine the units of the threshold.) The slope of the "
"drop probability function is described by the "
"Start/StopProbability properties." ),
ModelCorrespondence { "CIM_REDDropperService.ThresholdUnits" }]
uint32 MinQueueThreshold;
[Description (
"This is an unsigned 32-bit integer that defines the "
"maximum average queue length at which packets are "
"subject to always being dropped, regardless of the "
"dropping algorithm and probabilities being used. (See "
"the ThresholdUnits property to determine the units of "
"the threshold.)" ),
MinValue ( 0 ),
MaxValue ( 1000 ),
ModelCorrespondence { "CIM_REDDropperService.ThresholdUnits" }]
uint32 MaxQueueThreshold;
[Description (
"This is an unsigned 32-bit integer, used in conjunction "
"with the StopDropProbability property. The start and "
"stop probabilities define the slope of the drop "
"probability function. This function governs the rate at "
"which packets are subject to being dropped, as a "
"function of the queue length. \n"
"\n"
"This property expresses a drop probability in drops per "
"thousand packets. For example, the value 100 indicates a "
"drop probability of 100 per 1000 packets, that is, 10%. "
"Min and max values are 0 to 1000." ),
Units ( "Per Thousand Packets" ),
ModelCorrespondence { "CIM_REDDropperService.StopProbability" },
PUnit ( "count / packet * 10^-3" )]
uint32 StartProbability;
[Description (
"This is an unsigned 32-bit integer, used in conjunction "
"with the StartDropProbability property. The start and "
"stop probabilities define the slope of the drop "
"probability function. This function governs the rate at "
"which packets are subject to being dropped, as a "
"function of the queue length. \n"
"\n"
"This property expresses a drop probability in drops per "
"thousand packets. For example, the value 100 indicates a "
"drop probability of 100 per 1000 packets, that is, 10%. "
"Min and max values are 0 to 1000." ),
Units ( "Per Thousand Packets" ),
MinValue ( 0 ),
MaxValue ( 1000 ),
ModelCorrespondence { "CIM_REDDropperService.StartProbability" },
PUnit ( "count / packet * 10^-3" )]
uint32 StopProbability;
[Description (
"ThresholdUnits is an enumerated integer that identifies "
"the units for the Min and MaxQueueThreshold properties. "
"The values are either bytes (1) or packets (2)." ),
ValueMap { "1", "2" },
Values { "Bytes", "Packets" }]
uint16 ThresholdUnits;
};