process of marking the type of service
(ToS) field in the IPv4 packet header
with a specified value. Packets are
marked in order to control the
conditioning that they will subsequently
receive.
DERIVED FROM MarkerService
TYPE Concrete
PROPERTIES ToSValue
4.3.14.1. The Property ToSValue
This property is an unsigned 8-bit integer, representing a value to
be used for marking the type of service (ToS) field in the IPv4
packet header. The ToS field is defined to be a complete octet, so
the range for this property is 0..255. Some implementations,
however, require that the lowest-order bit in the ToS field always be
’0’. Such an implementation is consequently unable to support an odd
TosValue.
4.3.15. The Class DSCPMarkerService
This is a concrete class that represents the marking of the
differentiated services codepoint (DSCP) within the DS field in the
IPv4 and IPv6 packet headers, as defined in [R2474]. Following common
practice, the value to be written into the field is represented as an
unsigned 8-bit integer.
The class definition is as follows:
NAME DSCPMarkerService
DESCRIPTION A concrete class representing the
process of marking the DSCP field
in a packet with a specified
value. Packets are marked in order
to control the conditioning that
they will subsequently receive.
DERIVED FROM MarkerService
TYPE Concrete
PROPERTIES DSCPValue
4.3.15.1. The Property DSCPValue
This property is an unsigned 8-bit integer, representing a value to
be used for marking the DSCP within the DS field in an IPv4 or IPv6
packet header. Since the DSCP consists of 6 bits, the values for
this property are limited to the range 0..63. When the DSCP is
marked, the remaining two bit in the DS field are left unchanged.
4.3.16. The Class 8021QMarkerService
This is a concrete class that represents the marking of the user
priority field defined in the IEEE 802.1Q specification [IEEE802Q].
Following common practice, the value to be written into the field is
represented as an unsigned 8-bit integer.
The class definition is as follows:
NAME 8021QMarkerService
DESCRIPTION A concrete class representing the
process of marking the Priority
field in an 802.1Q-compliant frame
with a specified value. Frames are
marked in order to control the
conditioning that they will
subsequently receive.
DERIVED FROM MarkerService
TYPE Concrete
PROPERTIES PriorityValue
4.3.16.1. The Property PriorityValue
This property is an unsigned 8-bit integer, representing a value to
be used for marking the Priority field in the 802.1Q header. Since
the Priority field consists of 3 bits, the values for this property
are limited to the range 0..7. When the Priority field is marked,
the remaining bits in its octet are left unchanged.
4.3.17. The Class DropperService
This is a concrete class that represents the ability to selectively
drop network traffic, or to invoke another ConditioningService for
further processing of traffic that is not dropped. This is the base
class for different types of droppers. Droppers are distinguished by
the algorithm that they use to drop traffic. Please see [DSMODEL]
for more information about the various types of droppers. Note that
this class encompasses both Absolute Droppers and Algorithmic
Droppers from [DSMODEL].
DropperService is modeled as a ConditioningService so that it can be
aggregated into a QoSService (using the QoSConditioningSubService
association) to indicate that its functionality underlies that QoS
service. It participates in the NextService association to identify
the subsequent ConditioningService object that acts on any remaining
traffic that is not dropped.
NextService has special semantics for droppers, in addition to the
general "what happens next" semantics that apply to all
ConditioningServices. 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.
The class definition is as follows:
NAME DropperService
DESCRIPTION A concrete base class describing the
common characteristics of droppers.
DERIVED FROM ConditioningService
TYPE Concrete
PROPERTIES DropperType, OtherDropperType, DropFrom
Note: The DropperType property and the DropperService subclasses
provide similar information. The DropperType property is defined for
query purposes, as well as for those cases where a subclass of
DropperService is not needed to model a particular type of dropper.
For example, the Absolute Dropper defined in [DSMODEL] is modeled as
an instance of the DropperService class with its DropperType set to
’4’ ("Absolute Dropper").
4.3.17.1. The Property DropperType
This is an enumerated 16-bit unsigned integer that defines the type
of dropper. Values include:
1 - Other
2 - Random
3 - HeadTail
4 - Absolute Dropper
Note: if the value of DropperType is not one of these four values, it
SHOULD be interpreted as if it had the value ’1’ (Other).
4.3.17.2. The Property OtherDropperType
This string property is used in conjunction with the DropperType
property. When the value of DropperType is ’1’ (i.e., Other), then
the name of the type of dropper appears in this property.
4.3.17.3. The Property DropFrom
This is an unsigned 16-bit integer enumeration that indicates the
point in the associated queue from which packets should be dropped.
Defined enumeration values are:
o unknown(0)
o head(1)
o tail(2)
Note: if the value of DropFrom is ’0’ (unknown), or if it is not one
of the three values listed here, then packets MAY be dropped from any
location in the associated queue.
4.3.18. The Class HeadTailDropperService
This is a concrete class that represents the threshold information of
a head or tail dropper. The inherited property DropFrom indicates
whether a particular instance of this class represents a head dropper
or a tail dropper.
A head dropper always examines the same queue from which it drops
packets, and this queue is always related to the dropper as the
following service in the NextService association.
The class definition is as follows:
NAME HeadTailDropperService
DESCRIPTION A concrete class used to describe
a head or tail dropper.
DERIVED FROM DropperService
TYPE Concrete
PROPERTIES QueueThreshold
4.3.18.1. The Property QueueThreshold
This is an unsigned 32-bit integer that indicates the queue depth at
which traffic will be dropped. For a tail dropper, all newly
arriving traffic is dropped. For a head dropper, packets at the
front of the queue are dropped to make room for new packets, which
are added at the end. The value is expressed in bytes.
4.3.19. The Class REDDropperService
This is a concrete class that represents the ability to drop network
traffic using a Random Early Detection (RED) algorithm. This
algorithm is described in [RED]. 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 the 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
TCP connections are not affected by these discards. Please see
[DSMODEL] for more information about a dropper.
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 to find the
dropper’s DropThresholdCalculationService, and then following the
CalculationBasedOnQueue association(s) to find the queue(s) being
watched.
The class definition is as follows:
NAME REDDropperService
DESCRIPTION A concrete class used to describe
dropping using the RED algorithm (or
one of its variants).
DERIVED FROM DropperService
TYPE Concrete
PROPERTIES MinQueueThreshold, MaxQueueThreshold,
ThresholdUnits, StartProbability,
StopProbability
NOTE: In [DSMIB], there is a single diffServRandomDropTable, which
represents the general category of random dropping. (RED is one type
of random dropping, but there are also types of random dropping
distinct from RED.) The REDDropperService class corresponds to the
columns in the table that apply to the RED algorithm in particular.
4.3.19.1. The Property MinQueueThreshold
This is an unsigned 32-bit integer that defines the minimum average
queue depth at which packets are subject to being dropped. The units
are identified by the ThresholdUnits property. The slope of the drop
probability function is described by the Start/StopProbability
properties.
4.3.19.2. The Property MaxQueueThreshold
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.
The units are identified by the ThresholdUnits property.
4.3.19.3. The Property ThresholdUnits
This is an unsigned 16-bit integer enumeration that identifies the
units for the MinQueueThreshold and MaxQueueThreshold properties.
Defined enumeration values are:
o bytes(1)
o packets(2)
Note: if the value of ThresholdUnits is not one of these two values,
it SHOULD be interpreted as if it had the value ’1’ (bytes).
4.3.19.4. The Property StartProbability
This is an unsigned 32-bit integer; in conjunction with the
StopProbability property, it defines 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.
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.
4.3.19.5. The Property StopProbability
This is an unsigned 32-bit integer; in conjunction with the
StartProbability property, it defines 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.
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.
4.3.20. The Class QueuingService
This is a concrete class that represents the ability to queue network
traffic, and to specify the characteristics for determining long-term
congestion. Please see [DSMODEL] for more information about queuing
functionality.
QueuingService is modeled as a ConditioningService so that it can be
aggregated into a QoSService (using the QoSConditioningSubService
association) to indicate that its functionality underlies that QoS
service.
The class definition is as follows:
NAME QueuingService
DESCRIPTION A concrete class describing the ability
to queue network traffic and to specify
the characteristics for determining
long-term congestion.
DERIVED FROM ConditioningService
TYPE Concrete
PROPERTIES CurrentQueueDepth, DepthUnits
4.3.20.1. The Property CurrentQueueDepth
This is an unsigned 32-bit integer, which functions as a (read-only)
gauge representing the current depth of this one queue. This value
may be important in diagnosing unexpected behavior by a
DropThresholdCalculationService.
4.3.20.2. The Property DepthUnits
This is an unsigned 16-bit integer enumeration that identifies the
units for the CurrentQueueDepth property. Defined enumeration values
are:
o bytes(1)
o packets(2)
Note: if the value of DepthUnits is not one of these two values, it
SHOULD be interpreted as if it had the value ’1’ (bytes). The
4.3.21. Class PacketSchedulingService
This is a concrete class that represents a scheduling service, which
is a process that determines when a queued packet should be removed
from a queue and sent to an output interface. Note that output
interfaces can be physical network interfaces or interfaces to
components internal to systems, such as crossbars or back planes. In
either case, if multiple queues are involved, schedulers are used to
provide access to the interface.
Each instance of a PacketSchedulingService describes a scheduler from
the perspective of the queues that it is servicing. Please see
[DSMODEL] for more information about a scheduler.
PacketSchedulingService is modeled as a ConditioningService so that
it can be aggregated into a QoSService (using the
QoSConditioningSubService association) to indicate that its
functionality underlies that QoS service. It participates in the
NextService association to identify the subsequent
ConditioningService object, if any, that acts on traffic after it has
been processed by the scheduler.
The class definition is as follows:
NAME PacketSchedulingService
DESCRIPTION A concrete class used to determine when
a packet should be removed from a
queue and sent to an output interface.
DERIVED FROM ConditioningService
TYPE Concrete
PROPERTIES SchedulerType, OtherSchedulerType
4.3.21.1. The Property SchedulerType
This property is an enumerated 16-bit unsigned integer, and defines
the type of scheduler. Values are:
1 - Other
2 - FIFO
3 - Priority
4 - Allocation
5 - Bounded Priority
6 - Weighted Round Robin Packet
Note: if the value of SchedulerType is not one of these six values,
it SHOULD be interpreted as if it had the value ’2’ (FIFO).
4.3.21.2. The Property OtherSchedulerType
This string property is used in conjunction with the SchedulerType
property. When the value of SchedulerType is 1 (i.e., Other), then
the type of scheduler is specified in this property.
4.3.22. The Class NonWorkConservingSchedulingService
This class does not add any properties beyond those it inherits from
its superclass, PacketSchedulingService. It does, however,
participate in one additional association, FailNextScheduler.
The class definition is as follows:
NAME NonWorkConservingSchedulingService
DESCRIPTION A concrete class representing a
scheduler that is capable of operating
in a non-work conserving manner.
DERIVED FROM PacketSchedulingService
TYPE Concrete
PROPERTIES (none)
4.3.23. The Class QoSService
This is a concrete class that represents the ability to conceptualize
a QoS service as a set of coordinated sub-services. This enables the
network administrator to map business rules to the network, and the
network designer to engineer the network such that it can provide
different functions for different traffic streams.
This class has two main purposes. First, it serves as a common base
class for defining the various sub-services needed to build higher-
level QoS services. Second, it serves as a way to consolidate the
relationships between different types of QoS services and different
types of ConditioningServices.
For example, Gold Service may be defined as a QoSService which
aggregates two QoS services together. Each of these QoS services
could be represented by an instance of the class DiffServService, one
for servicing of very high demand packets (represented by an instance
of DiffServService itself), and one for the service given to most of
the packets, represented by an instance of AFService, which is a
subclass of DiffServService. The high demand DiffServService
instance will then use the QoSConditioningSubService aggregation to
aggregate together the necessary classifiers to indicate which
traffic it applies to, and the appropriate meters for contract
limits, the marker to mark the EF PHB in the packets, and the
queuing-related conditioning services. The AFService instance will
also use the QoSConditioningSubService aggregation, to aggregate its
classifiers and meters, the several markers used to mark the
different AF PHBs in the packets, and the queuing-related
conditioning services needed to deliver the packet treatment.
QoSService is modeled as a type of Service, which is used as the
anchor point for defining a set of sub-services that implement the
desired conditioning characteristics for different types of flows.
It will direct the specific type of conditioning services to be used
in order to implement this service.
The class definition is as follows:
NAME QoSService
DESCRIPTION A concrete class used to represent a QoS
service or set of services, as defined
by a network administrator.
DERIVED FROM Service
TYPE Concrete
PROPERTIES (none)
4.3.24. The Class DiffServService
This is a concrete class representing the use of standard or custom
DiffServ services to implement a (higher-level) QoS service. Note
that a DiffServService object may be just one of a set of coordinated
QoSSubServices objects that together implement a higher-level QoS
service.
DiffServService is modeled as a subclass of QoSService. This enables
it to be related to a higher-level QoS service via QoSSubService, as
well as to specific ConditioningService objects (e.g., metering,
dropping, queuing, and others) via QoSConditioningSubService.
The class definition is as follows:
NAME DiffServService
DESCRIPTION A concrete class used to represent a
DiffServ service associated with a
particular Per Hop Behavior.
DERIVED FROM QoSService
TYPE Concrete
PROPERTIES PHBID
4.3.24.1. The Property PHBID
This property is a 16-bit unsigned integer, which identifies a
particular per hop behavior, or family of per hop behaviors. The
value here is a Per Hop Behavior Identification Code, as defined in
[R3140]. Note that as defined, these identification codes use the
default, recommended, code points for PHBs as part of their
structure. These values may well be different from the actual value
used in the marker, as the marked value is a domain-dependent value.
The ability to indicate the PHB Identification Code associated with a
service is helpful for tying the QoS Service to reference documents,
and for inter-domain coordination and operation.
4.3.25. The Class AFService
This is a concrete class that represents a specialization of the
general concept of forwarding network traffic, by adding specific
semantics that characterize the operation of the Assured Forwarding
(AF) Service ([R2597]).
[R2597] defines four different AF classes, to represent four
different treatments of traffic. A different amount of forwarding
resources, such as buffer space and bandwidth, are allocated to each
AF class. Within each AF class, IP packets are marked with one of
three possible drop precedence values. The drop precedence of a
packet determines the relative importance of that packet compared to
other packets within the same AF class, if congestion occurs. A
congested interface will try to avoid dropping packets marked with a
lower drop precedence value, by instead discarding packets marked
with a higher drop precedence value.
Note that [R2597] defines 12 DSCPs that together represent the AF Per
Hop Behavior (PHB) group. Implementations are free to extend this
(e.g., add more classes and/or drop precedences).
The AFService class is modeled as a specialization of
DiffServService, which is in turn a specialization of QoSService.
This enables it to be related to higher-level QoS services, as well
as to lower-level conditioning sub-services (e.g., classification,
metering, dropping, queuing, and others).
The class definition is as follows:
NAME AFService
DESCRIPTION A concrete class for describing the
common characteristics of differentiated
services that are used to affect
traffic forwarding, using the AF