PHB Group.
DERIVED FROM DiffServService
TYPE Concrete
PROPERTIES ClassNumber, DropperNumber
4.3.25.1. The Property ClassNumber
This property is an 8-bit unsigned integer that indicates the number
of AF classes that this AF implementation uses. Among the instances
aggregated using the QoSConditioningSubService aggregation with an
instance of AFService, one SHOULD find markers with as many distinct
values as the ClassNumber of the AFService instance.
4.3.25.2. The Property DropperNumber
This property is an 8-bit unsigned integer that indicates the number
of drop precedence values that this AF implementation uses. The
number of drop precedence values is the number PER AF CLASS. The
corresponding droppers will be found in the collection of
conditioning services aggregated with the QoSConditioningSubService
aggregation.
4.3.26. The Class FlowService
This class represents a service that supports a particular microflow.
The microflow is identified by the string-valued property FlowID. In
some implementations, an instance of this class corresponds to an
entry in the implementation’s flow table.
The class definition is as follows:
NAME FlowService
DESCRIPTION A concrete class representing a
microflow.
DERIVED FROM QoSService
TYPE Concrete
PROPERTIES FlowID
4.3.26.1. The Property FlowID
This property is a string containing an identifier for a microflow.
4.3.27. The Class DropThresholdCalculationService
This class represents a logical entity that calculates an average
queue depth for a queue, based on a smoothing weight and a sampling
time interval. It does this calculation on behalf of a RED dropper,
to allow the dropper to make its decisions whether to drop packets
based on a smoothed average queue depth for the queue.
The class definition is as follows:
NAME DropThresholdCalculationService
DESCRIPTION A concrete class representing a logical
entity that calculates an average queue
depth for a queue, based on a smoothing
weight and a sampling time interval.
The latter are properties of this
Service, describing how it operates and
its necessary parameters.
DERIVED FROM Service
TYPE Concrete
PROPERTIES SmoothingWeight, TimeInterval
4.3.27.1. The Property SmoothingWeight
This property is a 32-bit unsigned integer, ranging between 0 and
100,000 - specified in thousandths. It defines the weighting of past
history in affecting the calculation of the current average queue
depth. The current queue depth calculation uses the inverse of this
value as its factor, and one minus that inverse as the factor for the
historical average. The calculation takes the form:
average = (old_average*(1-inverse of SmoothingWeight))
+ (current_queue_depth*inverse of SmoothingWeight)
Implementations may choose to limit the acceptable set of values to a
specified set, such as powers of 2.
Min and max values are 0 and 100000.
4.3.27.2. The Property TimeInterval
This property is a 32-bit unsigned integer, defining the number of
nanoseconds between each calculation of average/smoothed queue depth.
If this property is not specified, the CalculationService may
determine an appropriate interval.
4.3.28. The Abstract Class FilterEntryBase
FilterEntryBase is the abstract base class from which all filter
entry classes are derived. It serves as the endpoint for the
EntriesInFilterList aggregation, which groups filter entries into
filter lists. Its properties include CIM naming properties and an
IsNegated boolean property (to easily "NOT" the match information
specified in an instance of one of its subclasses).
Because FilterEntryBase has general applicability, it is defined in
[PCIME]. See [PCIME] for the definition of this class.
4.3.29. The Class IPHeaderFilter
This concrete class makes it possible to represent an entire IP
header filter in a single object. A property IpVersion identifies
whether the IP addresses in an instance are IPv4 or IPv6 addresses.
(Since the source and destination IP addresses come from the same
packet header, they will always be of the same type.)
See [PCIME] for the definition of this class.
4.3.30. The Class 8021Filter
This concrete class allows 802.1.source and destination MAC
addresses, as well as the 802.1 protocol ID, priority, and VLAN
identifier fields, to be expressed in a single object
See [PCIME] for the definition of this class.
4.3.31. The Class PreambleFilter
This is a concrete class that models classifying packets using
traffic-conditioning results stored in a packet preamble by a
PreambleMarkerService. See Section 3.8.3 for a discussion of how,
and why, QDDIM models the capability to store these results in a
packet preamble. An instance of PreambleFilter is used to select
packets based on a two-part string identifying a specific result.
The logic for this match is "at least one". That is, a packet with
multiple results in its preamble matches a filter if at least one of
these results matches the filter.
The class definition is as follows:
NAME PreambleFilter
DESCRIPTION A concrete class representing criteria
for selecting packets based on prior
traffic-conditioning results stored in
a packet preamble.
DERIVED FROM FilterEntryBase
TYPE Concrete
PROPERTIES FilterItemList[ ]
4.3.31.1. The Multi-valued Property FilterItemList
This property is an ordered list of strings, where each string has
the format "<type>,<value>". See Section 3.8.3 for a list of
<type>’s defined in QDDIM, and the nature of the associated <value>
for each of these types.
Note that there are two parallel terminologies for characterizing
meter results. The enumeration value "conforming(1)" is sometimes
described as "in profile," and the value "nonConforming(3)" is
sometimes described as "out of profile".
4.3.32. The Class FilterList
This is a concrete class that aggregates instances of (subclasses of)
FilterEntryBase via the aggregation EntriesInFilterList. It is
possible to aggregate different types of filters into a single
FilterList - for example, packet header filters (represented by the
IPHeaderFilter class) and security filters (represented by subclasses
of FilterEntryBase defined by IPsec).
The aggregation property EntriesInFilterList.EntrySequence is always
set to 0, to indicate that the aggregated filter entries are ANDed
together to form a selector for a class of traffic.
See [PCIME] for the definition of this class.
4.3.33. The Abstract Class ServiceAccessPoint
This is an abstract class defined in the Core Model of CIM. It is a
subclass of the LogicalElement class, and is the base class for all
objects that manage access to CIM_Services. It represents the
management of utilizing or invoking a Service. Please refer to [CIM]
for the full definition of this class.
4.3.34. The Class ProtocolEndpoint
This is a concrete class derived from ServiceAccessPoint, which
describes a communication point from which the services of the
network or the system’s protocol stack may be accessed. Please refer
to [CIM] for the full definition of this class.
4.3.35. The Abstract Class Collection
This is an abstract class defined in the Core Model of CIM. It is
the superclass for all classes that represent groupings or bags, and
that carry no status or "state". (The latter would be more correctly
modeled as ManagedSystemElements.) Please refer to [CIM] for the
full definition of this class.
4.3.36. The Abstract Class CollectionOfMSEs
This is an abstract class defined in the Core Model of CIM. It is a
subclass of the Collection superclass, restricting the contents of
the Collection to ManagedSystemElements. Please refer to [CIM] for
the full definition of this class.
4.3.37. The Class BufferPool
This is a concrete class that represents the collection of buffers
used by a QueuingService. (The association QueueAllocation
represents this usage.) The existence and management of individual
buffers may be modeled in a future document. At the current level of
abstraction, modeling the existence of the BufferPool is necessary.
Long term, it is not sufficient.
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 aggregation.
Note that this class is derived from CollectionOfMSEs, and not from
Forwarding or ConditioningService. A BufferPool is only a collection
of storage, and is NOT a Service.
The class definition is as follows:
NAME BufferPool
DESCRIPTION A concrete class representing
a collection of buffers.
DERIVED FROM CollectionOfMSEs
TYPE Concrete
PROPERTIES Name, BufferSize, TotalBuffers,
AvailableBuffers, SharedBuffers
4.3.37.1. The Property Name
This property is a string with a maximum length of 256 characters.
It is the common name or label by which the object is known.
4.3.37.2. The Property BufferSize
This property is a 32-bit unsigned integer, identifying the
approximate number of bytes in each buffer in the buffer pool. An
implementation will typically group buffers of roughly the same size
together, to reduce the number of buffer pools it needs to manage.
This model does not specify the degree to which buffers in the same
buffer pool may differ in size.
4.3.37.3. The Property TotalBuffers
This property is a 32-bit unsigned integer, reporting the total
number of individual buffers in the pool.
4.3.37.4. The Property AvailableBuffers
This property is a 32-bit unsigned integer, reporting 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 (that is, currently contain packet data), or be
allocated to a queue pending the arrival of new packet data.
4.3.37.5. The Property SharedBuffers
This property is a 32-bit unsigned integer, reporting the number of
buffers in the Pool that have been simultaneously allocated to
multiple instances of QueuingService.
4.3.38. The Abstract Class SchedulingElement
This is an abstract class that represents the configuration
information that a PacketSchedulingService has for one of the
elements that it is scheduling. The scheduled element is either a
QueuingService or another PacketSchedulingService.
Among the subclasses of this class, some are defined in such a way
that all of their instances are work conserving. Other subclasses,
however, may have instances that either are or are not work
conserving. In this class, the boolean property WorkConserving
indicates whether an instance is or is not work conserving. The
range of values for WorkConserving is restricted to TRUE in the
subclasses that are inherently work conserving, since instances of
these classes cannot be anything other than work conserving.
The class definition is as follows:
NAME SchedulingElement
DESCRIPTION An abstract class representing the
configuration information that a
PacketSchedulingService has for one of
the elements that it is scheduling.
DERIVED FROM ManagedElement
TYPE Abstract
PROPERTIES WorkConserving
4.3.38.1. The Property WorkConserving
This boolean property indicates whether the PacketSchedulingService
tied to this instance by the ElementInSchedulingService aggregation
is treating the input tied to this instance by the QueueToSchedule or
SchedulingServiceToSchedule association in a work-conserving manner.
Note that this property is writable, indicating that an administrator
can change the behavior of the SchedulingElement - but only for those
elements that can operate in a non-workconserving mode.
4.3.39. The Class AllocationSchedulingElement
This class is a subclass of the abstract class SchedulingElement. It
introduces five new properties to support bandwidth-based scheduling.
As is the case with all subclasses of SchedulingElement, the input
associated with an instance of AllocationSchedulingElement is of one
of two types: either a queue, or another scheduler.
The class definition is as follows:
NAME AllocationSchedulingElement
DESCRIPTION A concrete class containing parameters
for controlling bandwidth-based
scheduling.
DERIVED FROM SchedulingElement
TYPE Concrete
PROPERTIES AllocationUnits, BandwidthAllocation,
BurstAllocation, CanShare,
WorkFlexible
4.3.39.1. The Property AllocationUnits
This property is a 16-bit unsigned integer enumeration that
identifies the units in which the BandwidthAllocation and
BurstAllocation properties are expressed. The following values are
defined:
o bytes(1)
o packets(2)
o cells(3) -- fixed-size, for example, ATM
Note: if the value of AllocationUnits is not one of these three
values, it SHOULD be interpreted as if it had the value ’1’ (bytes).
4.3.39.2. The Property BandwidthAllocation
This property is a 32-bit unsigned integer that defines the number of
units/second that should be allocated to the associated input. The
units are identified by the AllocationUnits property.
4.3.39.3. The Property BurstAllocation
This property is a 32-bit unsigned integer that specifies the amount
of temporary or short-term bandwidth (in units per second) that can
be allocated to an input, beyond the amount of bandwidth allocated
through the BandwidthAllocation property. If the maximum actual
bandwidth allocation for the input were to be measured, it would be
the sum of the BurstAllocation and the BandwidthAllocation
properties. The units are identified by the AllocationUnits
property.
4.3.39.4. The Property CanShare
This is a boolean property that, if TRUE, enables unused bandwidth
from the associated input to be allocated to other inputs serviced by
the Scheduler.
4.3.39.5. The Property WorkFlexible
This is a boolean property that, if TRUE, indicates that the behavior
of the scheduler relative to this input can be altered by changing
the value of the inherited property WorkConserving.
4.3.40. The Class WRRSchedulingElement
This class is a subclass of the abstract class SchedulingElement,
representing a weighted round robin (WRR) scheduling discipline. It
introduces a new property WeightingFactor, to give some inputs a
higher probability of being serviced than other inputs. It also
introduces a property Priority, to serve as a tiebreaker to be used
when inputs have equal weighting factors. As is the case with all
subclasses of SchedulingElement, the input associated with an
instance of WRRSchedulingElement is of one of two types: either a
queue, or another scheduler.
Because scheduling of this type is always work conserving, the
inherited boolean property WorkConserving is restricted to the value
TRUE in this class.
The class definition is as follows:
NAME WRRSchedulingElement
DESCRIPTION This class specializes the
SchedulingElement class to add
a per-input weight. This is used
by a weighted round robin packet
scheduler when it handles its
associated inputs. It also adds a
second property to serve as a tie-breaker
in the case where multiple inputs have
been assigned the same weight.
DERIVED FROM SchedulingElement
TYPE Concrete
PROPERTIES WeightingFactor, Priority
4.3.40.1. The Property WeightingFactor
This property is a 32-bit unsigned integer, which defines the
weighting factor that offers some inputs a higher probability of
being serviced than other inputs. This property represents this
probability. Its minimum value is 0, its maximum value is 100000,
and its units are in thousandths.
4.3.40.2. The Property Priority
This property is a 16-bit unsigned integer, which serves as a
tiebreaker, in the event that two or more inputs have equal weights.
A larger value represents a higher priority. If this property is
specified for any of the WRRSchedulingElements associated with a
PacketSchedulingService, then it must be specified for all
WRRSchedulingElements for that PacketSchedulingService, and the
property values for these WRRSchedulingElements must all be
different.
While this condition may not occur in some implementations of a
weighted round-robin scheduler, many implementations require a
priority to resolve an equal-weight condition. In instances where
this behavior is not necessary or is undesirable, this property may
be left unspecified.
4.3.41. The Class PrioritySchedulingElement
This class is a subclass of the abstract class SchedulingElement. It
indicates that a scheduler is taking packets from a set of inputs
using the priority scheduling discipline. As is the case with all
subclasses of SchedulingElement, the input associated with an
instance of PrioritySchedulingElement is of one of two types: either
a queue, or another scheduler. The property Priority in
PrioritySchedulingElement represents the priority for an input,
relative to the priorities of all the other inputs to which the
scheduler that aggregates this PrioritySchedulingElement is
associated. Inputs to which the scheduler is related via other
scheduling disciplines do not figure in this prioritization.
Because scheduling of this type is always work conserving, the
inherited boolean property WorkConserving is restricted to the value
TRUE in this class.
The class definition is as follows:
NAME PrioritySchedulingElement
DESCRIPTION A concrete class that specializes the
SchedulingElement class to add a
Priority property. This property is
used by a SchedulingService that is doing
priority scheduling for a set of inputs.
DERIVED FROM SchedulingElement
TYPE Concrete
PROPERTIES Priority
4.3.41.1. The Property Priority
This property is a 16-bit unsigned integer that indicates the
priority level of a scheduler input relative to the other inputs
serviced by this PacketSchedulingService. A larger value represents
a higher priority.
4.3.42. The Class BoundedPrioritySchedulingElement
This class is a subclass of the class PrioritySchedulingElement,
which is itself derived from the abstract class SchedulingElement.
As is the case with all subclasses of SchedulingElement, the input
associated with an instance of BoundedPrioritySchedulingElement is of
one of two types: either a queue, or another scheduler.
BoundedPrioritySchedulingElement adds an upper bound (in kilobits per
second) on how much traffic can be handled from an input. This data
is specific to that one input. It is needed when bounded strict
priority scheduling is performed.
This class inherits from its superclass PrioritySchedulingElement the
restriction of the inherited boolean property WorkConserving to the
value TRUE.
The class definition is as follows:
NAME BoundedPrioritySchedulingElement
DESCRIPTION This concrete class specializes the
PrioritySchedulingElement class to add
a BandwidthBound property. This property
bounds the rate at which traffic from the
associated input can be handled.
DERIVED FROM PrioritySchedulingElement
TYPE Concrete
PROPERTIES BandwidthBound
4.3.42.1. The Property BandwidthBound
This property is a 32-bit unsigned integer that defines the upper
limit on the amount of traffic that can be handled from the input.
This is not a shaped upper bound, since bursts can occur. It is a
strict bound, limiting the impact of the input. The units are
kilobits per second.
4.4. Association Definitions
This section details the QoS device datapath associations, including
the aggregations, which were shown earlier in Figures 4 and 5. These
associations are defined as classes in the Information Model. Each
of these classes has two properties referring to instances of the two
classes that the association links. Some of the association classes
have additional properties as well.
4.4.1. The Abstract Association Dependency
This abstract association defines two object references (named
Antecedent and Dependent) that establish general dependency
relationships between different managed objects in the information
model. The Antecedent reference identifies the independent object in
the association, while the Dependent reference identifies the entity
that IS dependent.
The association’s cardinality is many to many.
The association is defined in the Core Model of CIM. Please refer to
[CIM] for the full definition of this class.
4.4.2. The Association ServiceSAPDependency
This association defines two object references that establish a
general dependency relationship between a Service object and a
ServiceAccessPoint object. This relationship indicates that the
referenced Service uses the ServiceAccessPoint of ANOTHER Service.
The Service is the Dependent reference, relying on the
ServiceAccessPoint to gain access to another Service.
The association’s cardinality is many to many.