Policy Quality of Service (QoS) Information Model
Extracted elements (25)
A three-level token bucket traffic profile (rate, normal burst, excess burst) is defined rather than the two-level meter from [DIFF-MIB], because three levels are needed to construct AF provisioning actions that mark conforming, exceeding, and violating traffic with different DSCPs (e.g., AF11/AF12/AF13).
Hierarchical bandwidth allocation policies use rule nesting to specify relative bandwidth within a traffic class, and these policies SHOULD be enforced using hierarchical schedulers where each rule hierarchy level maps to a corresponding scheduler level. A flat rule representation cannot express the same semantics because above-minimum bandwidth is divided differently.
If a policy sub-rule requires both bandwidth allocation refinement and threshold refinement, these must be placed in separate policy groups aggregated under the rule via PolicySetComponent. A bandwidth allocation action in a sub-rule implies its own queue, making threshold references to the parent queue ambiguous.
QPIM deliberately avoids subclassing the PolicyRule class, instead using SimplePolicyCondition, CompoundPolicyCondition, SimplePolicyAction, and CompoundPolicyAction from [PCIMe]. Subclassing PolicyRule would have made it more difficult to combine actions and conditions from different functional domains within the same rules.
QPIM is goal-oriented rather than device-configuration-oriented: the policy writer specifies desired network behavior (e.g., minimum bandwidth for a class), and PDPs or PEPs fill in device-specific details such as queue lengths using their defaults. This separates specification from implementation.
Roles (from PCIM) are used to map policies to network elements in a device- and vendor-independent manner, allowing a single policy rule to target a large group of heterogeneous interfaces by assigning them a common role name such as 'core-interface'.
QPIM covers both provisioned QoS (DiffServ) and signaled QoS (IntServ/RSVP) using distinct action hierarchies: QoSPolicyAdmissionAction/PHBAction for DiffServ, and QoSPolicyRSVPAdmissionAction/QoSPolicyRSVPSimpleAction for RSVP. The model does not mandate the use of either methodology.
QPIM interoperability among PDPs and management applications is defined at the information model level: different implementations sharing a common QPIM-derived schema can interpret each other's policies. However, different PDPs may translate the same abstract policy into different PEP configurations, producing equivalent network behavior rather than identical device configurations.
A policing action that models three-level policing MUST associate three separate actions with a three-level traffic profile: a conforming action, an exceeding action, and a violating action.
QPIM's constructs SHOULD always be interpreted so that policy-compliant behavior can be enforced on the network under management.
When two policing actions (per-flow and per-class) are placed in a single PolicyRule or CompoundPolicyAction, the ExecutionStrategy property SHOULD be set to 'Do All' so that both individual flows and aggregate traffic classes are policed.
QoSPolicyAdmissionAction is an abstract class with the property qpAdmissionScope (0 = per-flow, 1 = per-class) that determines whether metering and policing applies to individual microflows or to an aggregate traffic class. It is linked to a traffic profile via QoSPolicyTrfcProfInAdmissionAction.
QoSPolicyBandwidthAction specifies forwarding behavior via qpForwardingPriority (non-zero enables preemptive forwarding), qpBandwidthUnits (Kb/s or percentage), qpMinBandwidth, qpMaxBandwidth, qpMaxDelay (ms), qpMaxJitter (ms), and qpFairness.
QoSPolicyCongestionControlAction specifies queue depth (qpQueueSize with units qpQueueSizeUnits), drop method (qpDropMethod), drop threshold units (qpDropThresholdUnits), and minimum/maximum threshold values (qpDropMinThresholdValue and qpDropMaxThresholdValue).
QoSPolicyDiscardAction is a concrete subclass of PolicyAction implementing unconditional packet discard. It is used either standalone or as one of the outcome actions (e.g., exceed action) associated with QoSPolicyPoliceAction.
QoSPolicyIntServTrfcProf defines an IntServ/RSVP traffic profile with qpISTokenRate, qpISPeakRate, qpISBucketSize, qpISResvRate, qpISResvSlack, qpISMinPolicedUnit, and qpISMaxPktSize, used for comparing RSVP TSPEC/RSPEC parameters in admission control decisions.
QoSPolicyPHBAction is an abstract base class for per-hop behavior actions with the qpMaxPacketSize property (packet size in bytes), needed to translate bandwidth and queue size parameters into byte-based implementation configurations.
QoSPolicyPoliceAction (concrete subclass of QoSPolicyAdmissionAction) associates with outcome actions via three associations: QoSPolicyConformAction, QoSPolicyExceedAction, and QoSPolicyViolateAction, supporting two-level and three-level metering scenarios.
QoSPolicyRSVPAdmissionAction compares RSVP TSPEC/RSPEC parameters against a QoSPolicyIntServTrfcProf to accept or reject reservations. It includes qpRSVPWarnOnly (admit with warning) and qpRSVPMaxSessions (cap on admitted reservations) properties.
QoSPolicyRSVPSimpleAction has the qpRSVPActionType property with values REPLACE (COPS Replace Decision, controlling RSVP message content), STATELESS (COPS Stateless Decision, controlling admission parameters), or REPLACEANDSTATELESS (both). It is associated with QoSPolicyRSVPVariable instances via QoSPolicyRSVPVariableInRSVPSimplePolicyAction.
QoSPolicyRSVPVariable is an abstract class with 17 concrete subclasses covering RSVP session attributes: source/destination IPv4/IPv6 addresses and ports, IP protocol, IP version, DCLASS, reservation style, IntServ parameters, message type, preemption priority and default priority, user identity, application identity, and authentication method.
QoSPolicyShapeAction (subclass of QoSPolicyAdmissionAction) delays packets to bring a traffic stream into compliance with a traffic profile. Its only required association is a traffic profile specifying rate and burst parameters.
QoSPolicyTokenBucketTrfcProf defines a token bucket traffic profile with qpTBRate (committed rate), qpTBNormalBurst (normal burst size), and qpTBExcessBurst (excess burst size), supporting two-level and three-level metering for DiffServ policing.
Security considerations for QPIM are addressed in section 11. Because QPIM governs access to network QoS resources, unauthorized modification of QPIM policy data instances could allow an attacker to disrupt traffic conditioning, grant unauthorized QoS privileges, or deny service to legitimate flows. The security of QPIM data depends on the access controls and authentication mechanisms of the underlying data model and access protocol (e.g., LDAP, SNMP) used to store and retrieve policy instances.
Token bucket metering defines three states triggered by traffic rate relative to the QoSPolicyTokenBucketTrfcProf: conforming (rate within normal burst), exceeding (above normal burst, within excess burst), and violating (above excess burst). Each state maps to a distinct outcome action via QoSPolicyConformAction, QoSPolicyExceedAction, and QoSPolicyViolateAction associations on QoSPolicyPoliceAction.