profile uses the same ordering rule. An RSVP message is accepted
only if its TSPEC (FLOWSPEC) is either smaller or equal to the
traffic profile. Only parameters specified in the traffic profile
are compared.
The GS FLOWSPEC is compared against the rate R and the slack term s.
The term R should not be larger than the traffic profile R parameter,
while the FLOWSPEC slack term should not be smaller than that
specified in the slack term.
TSPECs as well as FLOWSPECs can be added. The sum of two TSPECs is
computed by summing the rate r, the peak rate p, the bucket size b,
and by taking the minimum value of the minimum policed unit m and the
maximum value of the maximum packet size M. GS FLOWSPECs are summed
by adding the Resv rate and minimizing the slack term s. These rules
are used to compute the temporal state of admitted RSVP states
matching the traffic class defined by the rule condition. This state
is compared with the traffic profile to arrive at an admission
decision when the scope of the QoSPolicyRSVPAdmissionAction is set to
’class’.
5. Pre-Defined QoS-Related Variables
Pre-defined variables are necessary for ensuring interoperability
among policy servers and policy management tools from different
vendors. The purpose of this section is to define frequently used
variables in QoS policy domains.
Notice that this section only adds to the variable classes as defined
in [PCIMe] and reuses the mechanism defined there.
The QoS policy information model specifies a set of pre-defined
variable classes to support a set of fundamental QoS terms that are
commonly used to form conditions and actions and are missing from the
[PCIMe]. Examples of these include RSVP related variables. All
variable classes defined in this document extend the
QoSPolicyRSVPVariable class (defined in this document), which itself
extends the PolicyImplictVariable class, defined in [PCIMe].
Subclasses specify the data type and semantics of the policy
variables.
This document defines the following RSVP variable classes; for
details, see their class definitions:
RSVP related Variables:
1. QoSPolicyRSVPSourceIPv4Variable - The source IPv4 address of the
RSVP signaled flow, as defined in the RSVP PATH SENDER_TEMPLATE
and RSVP RESV FILTER_SPEC [RSVP] objects.
2. QoSPolicyRSVPDestinationIPv4Variable - The destination port of
the RSVP signaled flow, as defined in the RSVP PATH and RESV
SESSION [RSVP] objects (for IPv4 traffic).
3. QoSPolicyRSVPSourceIPv6Variable - The source IPv6 address of the
RSVP signaled flow, as defied in the RSVP PATH SENDER_TEMPLATE
and RSVP RESV FILTER_SPEC [RSVP] objects.
4. QoSPolicyRSVPDestinationIPv6Variable - The destination port of
the RSVP signaled flow, as defined in the RSVP PATH and RESV
SESSION [RSVP] objects (for IPv6 traffic).
5. QoSPolicyRSVPSourcePortVariable - The source port of the RSVP
signaled flow, as defined in the RSVP PATH SENDER_TEMPLATE and
RSVP RESV FILTER_SPEC [RSVP] objects.
6. QoSPolicyRSVPDestinationPortVariable - The destination port of
the RSVP signaled flow, as defined in the RSVP PATH and RESV
SESSION [RSVP] objects.
7. QoSPolicyRSVPIPProtocolVariable - The IP Protocol of the RSVP
signaled flow, as defined in the RSVP PATH and RESV SESSION
[RSVP] objects.
8. QoSPolicyRSVPIPVersionVariable - The version of the IP addresses
carrying the RSVP signaled flow, as defined in the RSVP PATH and
RESV SESSION [RSVP] objects.
9. QoSPolicyRSVPDCLASSVariable - The DSCP value as defined in the
RSVP DCLASS [DCLASS] object.
10. QoSPolicyRSVPStyleVariable - The reservation style (FF, SE, WF)
as defined in the RSVP RESV message [RSVP].
11. QoSPolicyRSVPIntServVariable - The type of Integrated Service
(CL, GS, NULL) requested in the RSVP Reservation message, as
defined in the FLOWSPEC RSVP Object [RSVP].
12. QoSPolicyRSVPMessageTypeVariable - The RSVP message type, either
PATH, PATHTEAR, RESV, RESVTEAR, RESVERR, CONF or PATHERR [RSVP].
13. QoSPolicyRSVPPreemptionPriorityVariable - The RSVP reservation
priority as defined in [RFC3181].
14. QoSPolicyRSVPPreemptionDefPriorityVariable - The RSVP preemption
reservation defending priority as defined in [RFC3181].
15. QoSPolicyRSVPUserVariable - The ID of the user that initiated
the flow as defined in the User Locator string in the Identity
Policy Object [RFC3182].
16. QoSPolicyRSVPApplicationVariable - The ID of the application
that generated the flow as defined in the application locator
string in the Application policy object [RFC2872].
17. QoSPolicyRSVPAuthMethodVariable - The RSVP Authentication type
used in the Identity Policy Object [RFC3182].
Each class restricts the possible value types associated with a
specific variable. For example, the QoSPolicyRSVPSourcePortVariable
class is used to define the source port of the RSVP signaled flow.
The value associated with this variable is of type
PolicyIntegerValue.
6. QoS Related Values
Values are used in the information model as building blocks for the
policy conditions and policy actions, as described in [PCIM] and
[PCIMe]. This section defines a set of auxiliary values that are
used for QoS policies as well as other policy domains.
All value classes extend the PolicyValue class [PCIMe]. The
subclasses specify specific data/value types that are not defined in
[PCIMe].
This document defines the following two subclasses of the PolicyValue
class:
QoSPolicyDNValue This class is used to represent a single or
set of Distinguished Name [DNDEF] values,
including wildcards. A Distinguished Name
is a name that can be used as a key to
retrieve an object from a directory
service. This value can be used in
comparison to reference values carried in
RSVP policy objects, as specified in
[RFC3182]. This class is defined in
Section 8.31.
QoSPolicyAttributeValue A condition term uses the form "Variable
matches Value", and an action term uses the
form "set Variable to Value" ([PCIMe]).
This class is used to represent a single or
set of property values for the "Value" term
in either a condition or an action. This
value can be used in conjunction with
reference values carried in RSVP objects,
as specified in [RFC3182]. This class is
defined in section 8.12.
The property name is used to specify which of the properties in the
QoSPolicyAttributeValue class instance is being used in the condition
or action term. The value of this property or properties will then
be retrieved. In the case of a condition, a match (which is
dependent on the property name) will be used to see if the condition
is satisfied or not. In the case of an action, the semantics are
instead "set the variable to this value".
For example, suppose the "user" objects in the organization include
several properties, among them:
- First Name
- Last Name
- Login Name
- Department
- Title
A simple condition could be constructed to identify flows by their
RSVP user carried policy object. The simple condition: Last Name =
"Smith" to identify a user named Bill would be constructed in the
following way:
A SimplePolicyCondition [PCIMe] would aggregate a
QoSPolicyRSVPUserVariable [QPIM] object, via the
PolicyVariableInSimplePolicyCondition [PCIMe] aggregation.
The implicit value associated with this condition is created in the
following way:
A QoSPolicyAttributeValue object would be aggregated to the simple
condition object via a PolicyValueInSimplePolicyCondition [PCIMe].
The QoSPolicyAttributeValue attribute qpAttributeName would be set
to "last name" and the qpAttributeValueList would be set to
"Smith".
Another example is a condition that has to do with the user’s
organizational department. It can be constructed in the exact same
way, by changing the QoSPolicyAttributeValue attribute
qpAttributeName to "Department" and the qpAttributeValueList would be
set to the particular value that is to be matched (e.g.,
"engineering" or "customer support"). The logical condition would
than be evaluated to true if the user belong to either the
engineering department or the customer support.
Notice that many multiple-attribute objects require the use of the
QoSPolicyAttributeValue class to specify exactly which of its
attributes should be used in the condition match operation.
7. Class Definitions: Association Hierarchy
The following sections define associations that are specified by
QPIM.
7.1. The Association "QoSPolicyTrfcProfInAdmissionAction"
This association links a QoSPolicyTrfcProf object (defined in section
8.9), modeling a specific traffic profile, to a
QoSPolicyAdmissionAction object (defined in section 8.2). The class
definition for this association is as follows:
NAME QoSPolicyTrfcProfInAdmissionAction
DESCRIPTION A class representing the association between a
QoS admission action and its traffic profile.
DERIVED FROM Dependency (See [PCIM])
ABSTRACT FALSE
PROPERTIES Antecedent[ref QoSPolicyAdmissionAction [0..n]]
Dependent[ref QoSPolicyTrfcProf [1..1]]
7.1.1. The Reference "Antecedent"
This property is inherited from the Dependency association, defined
in [PCIM]. Its type is overridden to become an object reference to a
QoSPolicyAdmissionAction object. This represents the "independent"
part of the association. The [0..n] cardinality indicates that any
number of QoSPolicyAdmissionAction object(s) may use a given
QoSPolicyTrfcProf.
7.1.2. The Reference "Dependent"
This property is inherited from the Dependency association, and is
overridden to become an object reference to a QoSPolicyTrfcProf
object. This represents a specific traffic profile that is used by
any number of QoSPolicyAdmissionAction objects. The [1..1]
cardinality means that exactly one object of the QoSPolicyTrfcProf
can be used by a given QoSPolicyAddmissionAction.
7.2. The Association "PolicyConformAction"
This association links a policing action with an object defining an
action to be applied to conforming traffic relative to the associated
traffic profile. The class definition for this association is as
follows:
NAME PolicyConformAction
DESCRIPTION A class representing the association between a
policing action and the action that should be
applied to traffic conforming to an associated
traffic profile.
DERIVED FROM Dependency (see [PCIM])
ABSTRACT FALSE
PROPERTIES Antecedent[ref QoSPolicyPoliceAction[0..n]]
Dependent[ref PolicyAction [1..1]]
7.2.1. The Reference "Antecedent"
This property is inherited from the Dependency association. Its type
is overridden to become an object reference to a
QoSPolicyPoliceAction object. This represents the "independent" part
of the association. The [0..n] cardinality indicates that any number
of QoSPolicyPoliceAction objects may be given the same action to be
executed as the conforming action.
7.2.2. The Reference "Dependent"
This property is inherited from the Dependency association, and is
overridden to become an object reference to a PolicyAction object.
This represents a specific policy action that is used by a given
QoSPolicyPoliceAction. The [1..1] cardinality means that exactly one
policy action can be used as the "conform" action for a
QoSPolicyPoliceAction. To execute more than one conforming action,
use the PolicyCompoundAction class to model the conforming action.
7.3. The Association "QoSPolicyExceedAction"
This association links a policing action with an object defining an
action to be applied to traffic exceeding the associated traffic
profile. The class definition for this association is as follows:
NAME QoSPolicyExceedAction
DESCRIPTION A class representing the association between a
policing action and the action that should be
applied to traffic exceeding an associated traffic
profile.
DERIVED FROM Dependency (see [PCIM])
ABSTRACT FALSE
PROPERTIES Antecedent[ref QoSPolicePoliceAction[0..n]]
Dependent[ref PolicyAction [1..1]]
7.3.1. The Reference "Antecedent"
This property is inherited from the Dependency association. Its type
is overridden to become an object reference to a
QoSPolicyPoliceAction object. This represents the "independent" part
of the association. The [0..n] cardinality indicates that any number
of QoSPolicyPoliceAction objects may be given the same action to be
executed as the exceeding action.
7.3.2. The Reference "Dependent"
This property is inherited from the Dependency association, and is
overridden to become an object reference to a PolicyAction object.
This represents a specific policy action that is used by a given
QoSPolicyPoliceAction. The [1..1] cardinality means that a exactly
one policy action can be used as the "exceed" action by a
QoSPolicyPoliceAction. To execute more than one conforming action,
use the PolicyCompoundAction class to model the exceeding action.
7.4. The Association "PolicyViolateAction"
This association links a policing action with an object defining an
action to be applied to traffic violating the associated traffic
profile. The class definition for this association is as follows:
NAME PolicyViolateAction
DESCRIPTION A class representing the association between
a policing action and the action that should be
applied to traffic violating an associated traffic
profile.
DERIVED FROM Dependency (see [PCIM])
ABSTRACT FALSE
PROPERTIES Antecedent[ref QoSPolicePoliceAction[0..n]]
Dependent[ref PolicyAction [1..1]]
7.4.1. The Reference "Antecedent"
This property is inherited from the Dependency association. Its type
is overridden to become an object reference to a
QoSPolicyPoliceAction object. This represents the "independent" part
of the association. The [0..n] cardinality indicates that any number
of QoSPolicyPoliceAction objects may be given the same action to be
executed as the violating action.
7.4.2. The Reference "Dependent"
This property is inherited from the Dependency association, and is
overridden to become an object reference to a PolicyAction object.
This represents a specific policy action that is used by a given
QoSPolicyPoliceAction. The [1..1] cardinality means that exactly one
policy action can be used as the "violate" action by a
QoSPolicyPoliceAction. To execute more than one violating action,
use the PolicyCompoundAction class to model the conforming action.
7.5. The Aggregation "QoSPolicyRSVPVariableInRSVPSimplePolicyAction"
A simple RSVP policy action is represented as a pair {variable,
value}. This aggregation provides the linkage between a
QoSPolicyRSVPSimpleAction instance and a single
QoSPolicyRSVPVariable. The aggregation
PolicyValueInSimplePolicyAction links the QoSPolicyRSVPSimpleAction
to a single PolicyValue.
The class definition for this aggregation is as follows:
NAME QoSPolicyRSVPVariableInRSVPSimplePolicyAction
DERIVED FROM PolicyVariableInSimplePolicyAction
ABSTRACT FALSE
PROPERTIES GroupComponent[ref QoSPolicyRSVPSimpleAction
[0..n]]
PartComponent[ref QoSPolicyRSVPVariable [1..1] ]
7.5.1. The Reference "GroupComponent"
The reference property "GroupComponent" is inherited from
PolicyComponent, and overridden to become an object reference to a
QoSPolicyRSVPSimpleAction that contains exactly one
QoSPolicyRSVPVariable. Note that for any single instance of the
aggregation class QoSPolicyRSVPVariableInRSVPSimplePolicyAction, this
property is single-valued. The [0..n] cardinality indicates that
there may be 0, 1, or more QoSPolicyRSVPSimpleAction objects that
contain any given RSVP variable object.
7.5.2. The Reference "PartComponent"
The reference property "PartComponent" is inherited from
PolicyComponent, and overridden to become an object reference to a
QoSPolicyRSVPVariable that is defined within the scope of a
QoSPolicyRSVPSimpleAction. Note that for any single instance of the
association class QoSPolicyRSVPVariableInRSVPSimplePolicyAction, this
property (like all reference properties) is single-valued. The
[1..1] cardinality indicates that a
QoSPolicyRSVPVariableInRSVPSimplePolicyAction must have exactly one
RSVP variable defined within its scope in order to be meaningful.
8. Class Definitions: Inheritance Hierarchy
The following sections define object classes that are specified by
QPIM.
8.1. The Class QoSPolicyDiscardAction
This class is used to specify that packets should be discarded. This
is the same as stating that packets should be denied forwarding. The
class definition is as follows:
NAME QoSPolicyDiscardAction
DESCRIPTION This action specifies that packets should be
discarded.
DERIVED FROM PolicyAction (defined in [PCIM])
ABSTRACT FALSEFALSE
PROPERTIES None
8.2. The Class QoSPolicyAdmissionAction
This class is the base class for performing admission decisions based
on a comparison of a meter measuring the temporal behavior of a flow
or a set of flow with a traffic profile. The qpAdmissionScope
property controls whether the comparison is done per flow or per
class (of flows). Only packets that conform to the traffic profile
are admitted for further processing; other packets are discarded.
The class definition is as follows:
NAME QoSPolicyAdmissionAction
DESCRIPTION This action controls admission decisions based on
comparison of a meter to a traffic profile.
DERIVED FROM PolicyAction (defined in [PCIM])
ABSTRACT FALSEFALSE
PROPERTIES qpAdmissionScope
8.2.1. The Property qpAdmissionScope
This attribute specifies whether the admission decision is done per
flow or per the entire class of flows defined by the rule condition.
If the scope is "flow", the actual or requested rate of each flow is
compared against the traffic profile. If the scope is set to
"class", the aggregate actual or requested rate of all flows matching
the rule condition is measured against the traffic profile. The
property is defined as follows:
NAME qpAdmissionScope
DESCRIPTION This property specifies whether the admission decision
is done per flow or per the entire class of flows.
SYNTAX Integer
VALUE This is an enumerated integer. A value of 0 specifies
that admission is done on a per-flow basis, and a value
of 1 specifies that admission is done on a per-class
basis.
8.3. The Class QoSPolicyPoliceAction
This is used for defining policing actions (i.e., those actions that
restrict traffic based on a comparison with a traffic profile).
Using the three associations QoSPolicyConformAction,
QoSPolicyExceedAction and QoSPolicyViolateAction, it is possible to
specify different actions to take based on whether the traffic is
conforming, exceeding, or violating a traffic profile. The traffic
profile is specified in a subclass of the QoSPolicyTrfcProf class.
The class definition is as follows:
NAME QoSPolicyPoliceAction
DESCRIPTION This action controls the operation of policers. The
rate of flows is measured against a traffic profile.
The actions that need to be performed on conforming,
exceeding and violating traffic are indicated using
the conform, exceed and violate action associations.
DERIVED FROM QoSPolicyAdmissionAction (defined in this document)
ABSTRACT FALSEFALSE
PROPERTIES None
8.4. The Class QoSPolicyShapeAction
This class is used for defining shaping actions. Shapers are used to
delay some or all of the packets in a traffic stream in order to
bring a particular traffic stream into compliance with a given
traffic profile. The traffic profile is specified in a subclass of
the QoSPolicyTrfcProf class. The class definition is as follows:
NAME QoSPolicyShapeAction
DESCRIPTION This action indicate that traffic should be shaped to be
conforming with a traffic profile.
DERIVED FROM QoSPolicyAdmissionAction (defined in this document)
ABSTRACT FALSEFALSE
PROPERTIES None
8.5. The Class QoSPolicyRSVPAdmissionAction
This class determines whether to accept or reject a given RSVP
request by comparing the RSVP request’s TSPEC or RSPEC parameters
against the associated traffic profile and/or by enforcing the pre-
set maximum sessions limit. The traffic profile is specified in the
QoSPolicyIntServTrfcProf class. This class inherits the
qpAdmissionScope property from its superclass. This property
specifies whether admission should be done on a per-flow or per-class
basis. If the traffic profile is not larger than or equal to the
requested reservation, or to the sum of the admitted reservation
merged with the requested reservation, the result is a deny decision.
If no traffic profile is specified, the assumption is that all
traffic can be admitted.
The class definition is as follows:
NAME QoSPolicyRSVPAdmissionAction
DESCRIPTION This action controls the admission of RSVP requests.
Depending on the scope, either a single RSVP request or
the total admitted RSVP requests matching the conditions
are compared against a traffic profile.
DERIVED FROM QoSPolicyAdmissionAction (defined in this document)
ABSTRACT FALSEFALSE