diff options
Diffstat (limited to 'doc/rfc/rfc3318.txt')
-rw-r--r-- | doc/rfc/rfc3318.txt | 3923 |
1 files changed, 3923 insertions, 0 deletions
diff --git a/doc/rfc/rfc3318.txt b/doc/rfc/rfc3318.txt new file mode 100644 index 0000000..048ecc0 --- /dev/null +++ b/doc/rfc/rfc3318.txt @@ -0,0 +1,3923 @@ + + + + + + +Network Working Group R. Sahita, Ed. +Request for Comments: 3318 S. Hahn +Category: Informational Intel Labs + K. Chan + Nortel Networks + K. McCloghrie + Cisco Systems + March 2003 + + + Framework Policy Information Base + +Status of this Memo + + This memo provides information for the Internet community. It does + not specify an Internet standard of any kind. Distribution of this + memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (2003). All Rights Reserved. + +Abstract + + This document defines a set of PRovisioning Classes (PRCs) and + textual conventions that are common to all clients that provision + policy using Common Open Policy Service (COPS) protocol for + Provisioning. + + Structure of Policy Provisioning Information (SPPI) describes a + structure for specifying policy information that can then be + transmitted to a network device for the purpose of configuring policy + at that device. The model underlying this structure is one of well- + defined (PRCs) and instances of these classes (PRIs) residing in a + virtual information store called the Policy Information Base (PIB). + + One way to provision policy is by means of the (COPS) protocol with + the extensions for provisioning. This protocol supports multiple + clients, each of which may provision policy for a specific policy + domain such as QoS, virtual private networks, or security. + + As described in COPS usage for Policy Provisioning (COPS-PR), each + client supports a non-overlapping and independent set of PIB modules. + However, some PRovisioning Classes are common to all subject- + categories (client-types) and need to be present in each. + + + + + + +Sahita, et. al. Informational [Page 1] + +RFC 3318 Framework Policy Information Base March 2003 + + +Table of Contents + + Conventions used in this document.................................2 + 1. Glossary.......................................................2 + 2. General PIB Concepts...........................................3 + 2.1. Roles......................................................3 + 2.1.1. An Example.............................................5 + 2.2. Management of Role-Combinations from the PDP...............6 + 2.3. Updating a Request State...................................7 + 2.3.1 Full Request State......................................8 + 2.3.2 Installing PRIs in a Request............................8 + 2.3.3 Updating PRIs in a Request..............................8 + 2.3.4 Removing PRIs from a Request............................9 + 2.3.5 Removing EXTENDED, AUGMENTED PRIs.......................9 + 2.3.6 Error Handling in Request updates.......................9 + 2.4. Multiple PIB Instances....................................10 + 2.5. Reporting and Configuring of Device Capabilities..........11 + 2.6. Reporting of Device Limitations...........................12 + 3. The Framework TC PIB module...................................12 + 4. Summary of the Framework PIB..................................17 + 4.1. Base PIB classes Group....................................17 + 4.2. Device Capabilities group.................................19 + 4.3. Classifier group..........................................20 + 4.4. Marker group..............................................20 + 5. The Framework PIB Module......................................21 + 6. Security Considerations.......................................66 + 7. IANA Considerations...........................................67 + 8. References....................................................67 + 8.1 Normative References.......................................67 + 8.2 Informative References.....................................68 + 9. Acknowledgments...............................................68 + 10. Authors' Addresses...........................................69 + 11. Full Copyright Statement.....................................70 + +Conventions used in this document + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in [RFC2119]. + +1. Glossary + + PRC PRovisioning Class. A type of policy data. See [POLTERM]. + PRI PRovisioning Instance. An instance of a PRC. See [POLTERM]. + PIB Policy Information Base. The database of policy information. + See [POLTERM] + PDP Policy Decision Point. See [RAP-FRAMEWORK]. + PEP Policy Enforcement Point. See [RAP-FRAMEWORK]. + + + +Sahita, et. al. Informational [Page 2] + +RFC 3318 Framework Policy Information Base March 2003 + + + +2. General PIB Concepts + +2.1. Roles + + The policy to apply to an interface may depend on many factors, such + as immutable characteristics of the interface (e.g., Ethernet or + frame relay), the status of the interface (e.g., half or full + duplex), or user configuration (e.g., branch office or headquarters + interface). Rather than specifying policies explicitly for each + interface of all devices in the network, policies are specified in + terms of interface functionality. + + To describe these functionalities of an interface, we use the concept + of "Roles". A Role is simply a string that is associated with an + interface. A given interface may have any number of roles + simultaneously. Provisioning classes have an attribute called a + "RoleCombination" which is a lexicographically ordered set of roles. + Instances of a given PRovisioning Class are applied to an interface + if and only if the set of roles in the role combination matches the + set of the roles of the interface. + + Thus, roles provide a way to bind policy to interfaces without having + to explicitly identify interfaces in a consistent manner across all + network devices. That is, roles provide a level of indirection to + the application of a set of policies to specific interfaces. This + separates the policy definition from device implementation specific + interface identification. Furthermore, if the same policy is being + applied to several interfaces, that policy needs to be pushed to the + device only once, rather than once per interface, as long as the + interfaces are configured with the same role combination. + + We point out that, in the event that the administrator needs to have + a unique policy for each interface, the administrator can configure + each interface with a unique role. + + The PEP sends all its Capability Set Names, Role Combinations, Policy + Controlled Interfaces, and their relationships to the PDP in the + first COPS request (REQ) message for a handle, and whenever any + updates or deletes occur. The PDP can install new instances or + change existing instances of these PRIs. This operation can also + occur in subsequent request messages generated in response to COPS + state synchronization (SSQ) requests and local configuration changes. + + The comparing of roles (or role combinations) is case sensitive. + + + + + + +Sahita, et. al. Informational [Page 3] + +RFC 3318 Framework Policy Information Base March 2003 + + + By convention, when formatting the role-combination for exchange + within a protocol message, within a PIB object's value, or as a + printed value, the set is formatted in lexicographical order of the + role's ASCII values; that is, the role that is first is formatted + first. For example, "a+b" and "b+a" are NOT different role- + combinations; rather, they are different formatting of the same + role-combination, and hence for this example: + + - "a+b" is the valid formatting of that role-combination, + - "b+a" is an invalid formatting of that role-combination. + + The role-combination of interfaces to which no roles have been + assigned is known as the "null" role-combination. (Note the + deliberate use of lower-case letters for "null" so that it avoids + confusion with the ASCII NULL character that has a value of zero but + a length of one.) + + In an "install" or an "install-notify" class, the wildcard role- + combination "*" can be used. In addition to providing for + interface-specific roles, it also allows for other optimizations in + reducing the number of role-combinations for which a policy has to be + specified. For example: + + Suppose we have three interfaces: + + Roles A, B and R1 are assigned to interface I1 + Roles A, B and R2 are assigned to interface I2 + Roles A, B and R3 are assigned to interface I3 + + Then, a PRI of a fictional IfDscpAssignTable that has the following + values for its attributes: + + ifDscpAssignPrid = 1 + ifDscpAssignRoles = "*+A+B" + ifDscpAssignName = "4queues" + ifDscpAssignDscpMap = 1 + + will apply to all three interfaces, because "*" matches with R1, R2 + and R3. The policies can be assigned to an interface due to more + than one wild-carded role combo matching a given interface's role + combo string. The PDP should attempt to resolve conflicts between + policies before sending policies to the PEP. In the situation where + the PDP sends multiple policies to a PEP and they do conflict, either + because of an error by the PDP or because of a device specific + conflict, the PEP MUST reject the installation of the conflicting + policies and return an error. + + + + + +Sahita, et. al. Informational [Page 4] + +RFC 3318 Framework Policy Information Base March 2003 + + + Formally, + - The wildcard Role is denoted by "*", + - The "*" Role is not allowed to be defined as part of the role- + combination of an interface as notified by the PEP to the PDP; it + is only allowed in policies installed/deleted via COPS-PR from the + PDP to the PEP. + - For a policy to apply to an interface when the policy's role- + combination is "*+a+b", the interface's role-combination: + - Must include "a" and "b", and + - Can include zero or more other roles. + - The wildcard character "*" is listed before the other roles as "*" + is lexicographically before "a"; however, the wildcard matches any + zero or more roles, irrespective of lexicographical order. For + example: "*+b+e+g" would match "a+b+c+e+f+g". + + Note that the characters "+" and "*" MUST not be used in an + interface Role. The Framework Role PIB module in section 4 of this + document contains the Role and RoleCombination Textual Conventions. + +2.1.1. An Example + + The functioning of roles might be best understood by an example. + Suppose I have a device with three interfaces, with roles as follows: + + IF1: "finance" + IF2: "finance" + IF3: "manager" + + Suppose, I also have a PDP with two policies: + + P1: Packets from finance department (role "finance") get DSCP 5 + P2: Packets from managers (role "manager") get DSCP 6 + + To obtain policy, the PEP reports to the PDP that it has some + interfaces with role combination "finance" and some with role + combination "manager". In response, the PDP downloads policy P1 + associated with role combination "finance" and downloads a second + policy P2 associated with role combination "manager". + + Now suppose the finance person attached to IF2 is promoted to manager + and so the system administrator adds the role "manager" to IF2. The + PEP now reports to the PDP that it has three role combinations: some + interfaces with role combination "finance", some with role + combination "manager" and some with role combination + "finance+manager". In response, the PDP downloads an additional + third policy associated with the new role combination + "finance+manager". + + + + +Sahita, et. al. Informational [Page 5] + +RFC 3318 Framework Policy Information Base March 2003 + + + How the PDP determines the policy for this new role combination is + entirely the responsibility of the PDP. It could do so + algorithmically or by rule. For example, there might be a rule that + specifies that manager policy takes preference over department + policy. Or there might be a third policy installed in the PDP as + follows: + + P3: Packets from finance managers (role "finance" and role + "manager") get DSCP 7 + + The point here is that the PDP is required to determine what policy + applies to this new role combination and to download a third policy + to the PEP for the role combination "finance+manager", even if that + policy is the same as one already downloaded. The PEP is not + required (or allowed) to construct policy for new role combinations + from existing policy. + +2.2. Management of Role-Combinations from the PDP + + The PEP notifies the PDP of the Role-Combination assigned to each + interface and capability set name in a COPS configuration request + (instances of the frwkIfRoleComboTable). The first request sent to + the PDP must be a 'full state' request. A 'full state' request for a + PEP includes notify and install-notify table PRIs for the PEP which + must be interpreted as the complete state of the PEP and must not be + interpreted as updates to any previous set of PRIs sent in a previous + message. Any previous PRIs from the PEP should be discarded when a + 'full state' request is received for the particular request handle. + A request is specified as a 'full state' request by setting the + frwkPibIncarnationFullState attribute in the frwkPibIncarnation PRI + sent in the request. + + All existing frwkIfRoleCombo instances must be sent to the PDP in the + first configuration request for a request handle. If the Role- + Combinations are not assigned specific values, default ('null') + Role-Combinations must be sent to the PDP for all ifIndices active on + the PEP and updates must be sent every time the IfIndices are + updated. The PEP may notify the PDP of the Capability sets (if any) + via the frwkCapabilitySetTable. If the PEP does not need to notify + the PDP of capability sets, it must set the capability set name in + the frwkIfRoleComboTable instances to a zero length string. + + In response to this configuration request, if applicable, the PDP may + send policies for the PEP in a solicited decision or must send a null + decision. The PEP must then send a solicited report message for the + decision. + + + + + +Sahita, et. al. Informational [Page 6] + +RFC 3318 Framework Policy Information Base March 2003 + + + At any later time, the PDP can update the Role-Combinations assigned + to a specific interface, identified by IfIndex, or for an aggregate, + identified by the capability set name, via an unsolicited decision to + the PEP on any open request handle. The PDP does this by sending + updated PRIs for the frwkIfRoleComboTable. + + When the Interface Role Combination associations are updated by the + PDP, the PEP SHOULD send updated 'full state' requests for all open + contexts. A context is an instantiation of the PIB module(s) + namespace identified by a unique COPS handle for a particular COPS + client type. This is true even if the PEP's request state changes + due to an internal event or if the state is changed by the PDP. If + the role-combination updates were sent by the PDP, the PEP SHOULD + send these updated requests only if it can process the unsolicited + decision containing the frwkIfRoleCombo PRIs successfully, and it + MUST do so after sending the success report for the unsolicited + decision. If the PEP failed to process the decision (i.e., the + frwkIfRoleCombo PRIs), it MUST only send a failure report to the PDP. + + On the other hand, the PDP must not expect to receive the updated + requests with the revised role-combination information until after it + receives a success report for these updates from the PEP. If the PDP + does not receive updated requests on some request handles, the PEP + must not be sent decision updates for that frwkIfRoleCombo updates, + i.e., the PDP must have the previous request state that it maintained + for that request handle. + + Note that, any unsolicited decisions received by the PEP in the time + period after it receives updates to its Role-Combination associations + and before receiving solicited decisions for the updated requests it + sent for all context handles, could possibly contain outdated + policies corresponding to the old Role-Combination associations as + notified by this PEP in a previous request state. + + The PDP must respond to the updated requests by solicited decisions, + sending policies if applicable or null decisions. The PEP must + respond to these solicited decisions with solicited reports to + complete the transaction. + +2.3. Updating a Request State + + This section describes the messages exchanged between the PEP and PDP + when the PEP is updating a previously sent request for a particular + COPS handle. Note that a PEP can incrementally update a request only + if the frwkPibIncarnationFullState attribute is shown to be supported + via the supported PRC table. If this attribute is not supported, the + PDP must treat all PEP requests as the full request state. + + + + +Sahita, et. al. Informational [Page 7] + +RFC 3318 Framework Policy Information Base March 2003 + + +2.3.1 Full Request State + + When the PEP wants to send the entire request state to the PDP (for + example, in response to a Synchronize State Request from the PDP), + the PEP MUST send the incarnation instance with the + frwkPibIncarnationFullState attribute set to 'true'. + + A PDP that receives an incarnation instance in the request message + with this attribute set to 'true', must clear the request information + it maintains for this request handle and re-install the information + received. + + If this attribute is set to 'false' or if the incarnation instance is + missing in the request message, the request must be interpreted as an + incremental update to the previous request message. + +2.3.2 Installing PRIs in a Request + + If the PEP wants to install additional PRIs for a request handle, the + PEP MUST ensure that the frwkPibIncarnationFullState attribute is set + to 'false', and the PEP MUST use new (unused in this context) + InstanceIds [SPPI] for these PRIs. + + When a PDP receives instances with new InstanceIds for a request with + the frwkPibIncarnationFullState in the incarnation instance set to + 'false', or if the request has no incarnation information, it must + interpret these PRIs as an incremental update to the request state + and add them to the request state it maintains for this handle. + +2.3.3 Updating PRIs in a Request + + If the PEP wants to update previously installed PRIs for a request + handle, the PEP MUST ensure that the frwkPibIncarnationFullState + attribute is set to 'false' for these PRIs. Note that the PEP must + send the same InstanceIds for the PRIs being updated. If the PEP + uses new InstanceIds, the PDP must interpret them as Install's for + this request state. + + When a PDP receives a request with instances having InstanceIds that + exist in its state for that handle with the + frwkPibIncarnationFullState in the incarnation instance set to + 'false' or if the request has no incarnation information, it must + interpret these PRIs as an update to the PRIs in the request state it + maintains for this handle. + + + + + + + +Sahita, et. al. Informational [Page 8] + +RFC 3318 Framework Policy Information Base March 2003 + + +2.3.4 Removing PRIs from a Request + + If the PEP wants to remove previously installed PRIs for a request + handle, the PEP MUST ensure that the frwkPibIncarnationFullState + attribute is set to 'false', and MUST send the PRI bindings with the + PRID set to the InstanceId of the PRI to be removed, and the length + field in the EPD object header set to the header length only, + effectively setting the data length to zero. + + Note that the PEP must send the same InstanceIds for the PRIs being + removed. If the PEP sends new InstanceIds and the length field in + the EPD object header is set to the header length only (implying the + data length is zero), the PEP is attempting to remove an + unknown/non-existent PRI. This SHOULD result in the PDP sending + error PRIs in the solicited decision (see section 2.3.6 for a + description of the frwkErrorTable). + + If the PEP sends new InstanceIds, and the length field in the EPD + object header is greater than the header length only (implying the + EPD object has some attributes encoded in it), the PDP will interpret + this as an install of the PRI if it can decode the EPD successfully. + + When a PDP receives a request with instances having InstanceIds that + exist in its state for that handle with the + frwkPibIncarnationFullState in the incarnation instance set to + 'false', or if the request has no incarnation information, and the + length field in the EPD object header is set to the header length + only (implying the data length is zero), it must remove these PRIs + from the request state it maintains for this handle. + +2.3.5 Removing EXTENDED, AUGMENTED PRIs + + The PEP should remove the extended/augmented PRIs when it removes the + base PRIs in the same COPS message. See [SPPI] for a description of + EXTENDED/AUGMENTED PRCs. A PDP that receives removes for a base PRI + must implicitly remove the extensions. + +2.3.6 Error Handling in Request updates + + If the PDP cannot process all the request installs/updates/removes in + the COPS request message successfully, it MUST rollback to its + previous request state and it MUST send a solicited decision to the + PEP that contains frwkErrorTable instances. These instances contain + an error code and a sub-code as defined in the [COPS-PR] CPERR + object. For example, if the PEP tries to remove an instance that + does not exist, the 'priInstanceInvalid' error code must be sent to + the PEP in a frwkError PRI. The frwkError PRIs also contain the PRC + and the InstanceId of the error-causing PRI. The PEP may then + + + +Sahita, et. al. Informational [Page 9] + +RFC 3318 Framework Policy Information Base March 2003 + + + examine these error PRIs and resend the modified request. Note that, + until the PEP resends the request updates/removes, it will have + configuration information for the last successful request state it + sent to the PDP. + +2.4. Multiple PIB Instances + + [COPS-PR] supports multiple, disjoint, independent instances of the + PIB to represent multiple instances of configured policy. The intent + is to allow for the pre-provisioning of policy that can then be made + active by a single, short decision from the PDP. + + A COPS context can be defined as an independent COPS request state + for a particular subject category (client-type). A context may be an + outsourcing context or a configuration context. A configuration + context is an instance of the PIB triggered and controlled by the + PDP, which contains device setup information. This device + configuration information dictates the device behavior as specified + by the PDP. An outsourcing context on the other hand, is a PIB + instance that is triggered from the PEP side and is a request to the + PDP for action. The action requested will be interpreted in the + domain of the client-type. Configuration contexts belong to a set of + configuration contexts for a specific client type - out of which one + configuration context may be active. However, multiple outsourcing + contexts can be active simultaneously. + + With the [COPS-PR] protocol, each of these states is identified by a + unique client handle. The creation and deletion of these PIB + instances can be controlled by the PDP as described in [COPS-PR] or + can be triggered by an event by the PEP. A PEP must open at least + one "request-state" for configuration for a given subject-category + (client type). Additional "request-states" at the PEP may be + initiated by the PDP or asynchronously generated by the PEP for + outsourcing due to local events, which will be fully specified by the + PRID/EPD data carried in the request. + + The frwkPibIncarnationInCtxtSet flag defines a set of contexts out of + which only one context can be active at any given time. This set is + called the 'configuration contexts' set. At most, one context may be + active from this 'configuration context' set at any given time. + Contexts that have the frwkPibIncarnationInCtxtSet attribute set to + 'true' belong to this set. Contexts that do not belong to this set + have the frwkPibIncarnationInCtxtSet set to 'false' and belong to the + set of 'outsourcing contexts'. Note that a PEP can have these two + sets of contexts only if the frwkPibIncarnationInCtxtSet attribute is + shown to be supported via the supported PRC table. If the + + + + + +Sahita, et. al. Informational [Page 10] + +RFC 3318 Framework Policy Information Base March 2003 + + + frwkPibIncarnationInCtxtSet is not supported, a PEP must treat all + contexts as belonging to the set of 'configuration contexts' i.e., at + the most one context can be active at any given time. + + Note that in the event that a PEP has a capability change such as a + card hot swap or any other change in its notify information that may + warrant a policy refresh, a subsequent complete or incremental + request must be issued to the PDP containing the new/updated + capabilities for all the configuration contexts. A request for re- + configuration is issued for all request state configuration contexts, + both for the active configuration context as well as any inactive + configuration contexts. This is to ensure that when an inactive + configuration context is activated, it has been pre-configured with + policies compatible with the PEP's current capabilities. + + Although many PIB instances may be configured on a device (the + maximum number of these instances being determined by the device + itself), only one of the contexts from the 'configuration contexts' + set can be active at any given time; the active one being selected by + the PDP. The Framework PIB supports the attribute + frwkPibIncarnationActive in the frwkPibIncarnationTable to allow the + PDP to denote the PIB instance as being active in a COPS decision + message, and similarly, to report the active state (active or not) of + the PIB instance to the PDP in a COPS request message. + + When the PEP installs an attribute frwkPibIncarnationActive that is + 'true' in one PIB instance which belongs to the 'configuration + contexts' set, the PEP must ensure, re-setting the attribute if + necessary, that the frwkPibIncarnationActive attribute is 'false' in + all other installed contexts that belong to this set. To switch + contexts, the PDP should set the frwkPibIncarnationActive attribute + to 'true' in the context it wants to make the active context. The + PDP should set this attribute in a context to 'false' only if it + wants to send an inactive context to the PEP or deactivate the active + context on the PEP. If an active context is made inactive without + activating another context, the PEP must not have any policies + enforced from any configuration contexts installed. + +2.5. Reporting and Configuring of Device Capabilities + + Each network device providing policy-based services has its own + inherent capabilities. These capabilities can be hardware specific, + e.g., an Ethernet interface supporting input classification, or can + be statically configured, e.g., supported queuing disciplines. These + capabilities are organized into Capability Sets, with each Capability + Set given a unique name (frwkCapabilitySetName) and associated with a + set of Role Combinations. In that way, each Role Combination may be + associated with a set of interfaces. These capabilities are + + + +Sahita, et. al. Informational [Page 11] + +RFC 3318 Framework Policy Information Base March 2003 + + + communicated to the PDP when policy is requested by the PEP. Knowing + device capabilities, the PDP can send the PRIs relevant to the + specific device, rather than sending the entire PIB. + + Specific capability PRCs may be defined in other PIBs. These + capability instances are grouped via the frwkCapabilitySetTable. If + the PEP wishes to send capability information to the PDP, the PIB + must indicate which capabilities the PEP may send to the PDP by means + of the 'notify' PIB-ACCESS clause as described in [SPPI]. If a PIB + does not have any capabilities to communicate to the PDP, it must not + send any instances for the frwkCapabilitySetTable. If in this case + the frwkIfRoleCombo table is used to communicate role combinations + assigned to interfaces (via IfIndex), the frwkRoleComboCapSetName + attribute in the frwkIfRoleComboTable instances must be set to a zero + length string. + +2.6. Reporting of Device Limitations + + To facilitate efficient policy installation, it is important to + understand a device's limitations in relation to the advertised + device capabilities. Limitations may be class-based, e.g., an + "install" class is supported as a "notify" or only a limited number + of class instances may be created, or attribute-based. Attribute + limitations, such as supporting a restricted set of enumerations or + requiring related attributes to have certain values, detail + implementation limitations at a fine level of granularity. + + A PDP can avoid certain installation issues in a proactive fashion by + taking into account a device's limitations prior to policy + installation rather than in a reactive mode during installation. As + with device capabilities, device limitations are communicated to the + PDP when policy is requested. + + Reported device limitations may be accompanied by guidance values + that can be used by a PDP to determine acceptable values for the + identified attributes. + +3. The Framework TC PIB module + +FRAMEWORK-TC-PIB PIB-DEFINITIONS ::= BEGIN + +IMPORTS MODULE-IDENTITY, TEXTUAL-CONVENTION, + Unsigned32, pib FROM COPS-PR-SPPI; + +frwkTcPib MODULE-IDENTITY + SUBJECT-CATEGORIES { all } + LAST-UPDATED "200302130000Z" -- 13 Feb 2003 + ORGANIZATION "IETF RAP WG" + + + +Sahita, et. al. Informational [Page 12] + +RFC 3318 Framework Policy Information Base March 2003 + + + CONTACT-INFO "Keith McCloghrie + Cisco Systems, Inc. + 170 West Tasman Drive, + San Jose, CA 95134-1706 USA + Phone: +1 408 526 5260 + Email: kzm@cisco.com + + John Seligson + Nortel Networks, Inc. + 4401 Great America Parkway + Santa Clara, CA 95054 USA + Phone: +1 408 495 2992 + Email: jseligso@nortelnetworks.com + + Ravi Sahita + Intel Labs. + 2111 NE 25th Ave. + Hillsboro, OR 97124 USA + Phone: +1 503 712 1554 + Email: ravi.sahita@intel.com + + RAP WG Mailing list: rap@ops.ietf.org " + DESCRIPTION + "The PIB module containing the Role and RoleCombination + Textual Conventions and other generic TCs. + + Copyright (C) The Internet Society (2003). This version of + this PIB module is part of RFC 3318; see the RFC itself for + full legal notices." + + REVISION "200302130000Z" -- 13 Feb 2003 + DESCRIPTION "Initial version, published in RFC 3318." + ::= { pib 3 } + +Role ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "A role represents a functionality characteristic or + capability of a resource to which policies are applied. + Examples of roles include Backbone_interface, + Frame_Relay_interface, BGP-capable-router, web-server, + firewall, etc. + The only valid character set is US-ASCII. Valid characters + are a-z, A-Z, 0-9, period, hyphen and underscore. A role + must always start with a letter (a-z or A-Z). A role must + not contain the US-ASCII characters '*' or '+' since they + have special meaning associated with them, explained in the + RoleCombination TEXTUAL CONVENTION." + + + +Sahita, et. al. Informational [Page 13] + +RFC 3318 Framework Policy Information Base March 2003 + + + SYNTAX OCTET STRING (SIZE (1..31)) + +RoleCombination ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "An octet string containing concatenated Roles. For the + format specification of roles, refer to the 'Role' TEXTUAL- + CONVENTION. A valid Role Combination must be formed by a set + of valid Roles, concatenated by the US-ASCII character '+', + where the roles are in lexicographic order from minimum to + maximum. For example, 'a+b' and 'b+a' are NOT different + role-combinations; rather, they are different formatting of + the same (one) role-combination. + + Notice the roles within a role-combination are in + Lexicographic order from minimum to maximum, hence, we + declare: + 'a+b' is the valid formatting of the role-combination, + 'b+a' is an invalid formatting of the role-combination. + + Notice the need of zero-length role-combination as the role- + combination of interfaces to which no roles have been + assigned. This role-combination is also known as the 'null' + role-combination. (Note the deliberate use of lower case + letters to avoid confusion with the US-ASCII NULL character + which has a value of zero but length of one.) + + The US-ASCII character '*' is used to specify a wild carded + Role Combination. '*' must not be used to wildcard Roles. + Hence, we declare: + '*+a+b' is a valid wild carded Role Combination. + 'eth*+a+b' is not a valid wild carded Role Combination. + Note that since Roles are lexicographically listed in a Role + Combination, the following is an invalid role combination, + since '*' is lexicographically before 'a': 'a+b+*'." + SYNTAX OCTET STRING (SIZE (0..255)) + +PrcIdentifierOid ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "An OID that identifies a PRC. The value MUST be an OID + assigned to a PRC's entry definition. The Entry definition + of a PRC has an OID value XxxTable.1 where XxxTable is the + OID assigned to the PRC table object. + + An attribute with this syntax MUST specify a PRC, which is + defined in the PIB module(s) registered in the context of + the client-type used. + + + +Sahita, et. al. Informational [Page 14] + +RFC 3318 Framework Policy Information Base March 2003 + + + + An attribute with this syntax cannot have the value 0.0 + (zeroDotZero). If the attribute using this syntax can be set + to 0.0 use the PrcIdentifierOidOrZero TEXTUAL-CONVENTION + which makes such use explicit." + SYNTAX OBJECT IDENTIFIER + +PrcIdentifierOidOrZero ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "An OID that identifies a PRC or zeroDotZero (0.0). The + value MUST be an OID assigned to a PRC's entry definition or + 0.0 (zeroDotZero). The Entry definition of a PRC has an OID + value XxxTable.1 where XxxTable is the OID assigned to the + PRC table object. + + An attribute with this syntax can have the value 0.0 + (zeroDotZero) to indicate that it currently does not + identify a PRC." + SYNTAX OBJECT IDENTIFIER + +AttrIdentifier ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "A Unsigned32 value that identifies an attribute in a PRC by + its sub-id. The sub-id is the OID assigned to this attribute + in the PRC definition. + + A AttrIdentifier value is always interpreted within the + context of an attribute of type PrcIdentifierOid or + PrcIdentifierOidOrZero. The PrcIdentifierOid (or + PrcIdentifierOidOrZero) object which defines the context + must be registered immediately before the object which uses + the AttrIdentifier textual convention. If the context + defining attribute is of type PrcIdentifierOidOrZero and has + the value 0.0, then in that case this attribute value has no + meaning. + + An attribute with this syntax MUST specify a sub-id which + MUST be defined in the PRC identified (if any) in the + PrcIdentifierOid (or PrcIdentifierOidOrZero) attribute. The + PrcIdentifierOid (orZero) and the AttrIdentifier attributes + together identify a particular attribute in a particular + PRC. + + + + + + + +Sahita, et. al. Informational [Page 15] + +RFC 3318 Framework Policy Information Base March 2003 + + + An attribute with this syntax cannot have the value 0 + (zero). If the attribute using this syntax can be set + to 0 use the AttrIdentifierOrZero TEXTUAL-CONVENTION which + makes that explicit." + SYNTAX Unsigned32 (1..4294967295) + +AttrIdentifierOrZero ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "A Unsigned32 value that identifies an attribute in a PRC by + its sub-id or has the value 0 (zero). The sub-id if non- + zero, is the OID assigned to this attribute in the PRC + definition. + + An AttrIdentifierOrZero value is always interpreted within + the context of an attribute of type PrcIdentifierOid or + PrcIdentifierOidOrZero. The PrcIdentifierOid (or + PrcIdentifierOidOrZero) object that defines the context must + be registered immediately before the object which uses the + AttrIdentifierOrZero textual convention. If the context + defining attribute is of type PrcIdentifierOidOrZero and has + the value 0.0, then in that case this attribute value has no + meaning. + + An attribute with this syntax can have the value 0 (zero) to + indicate that it currently does not identify a PRC + attribute. If it has a non-zero value, the + PrcIdentifierOid (orZero) and the AttrIdentifierOrZero + attributes together identify a particular attribute in a + particular PRC." + SYNTAX Unsigned32 + +AttrIdentifierOid ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "An OID that identifies an attribute in a PRC. The value + MUST be an OID assigned to a PRC's attribute definition. The + last sub-id is the sub-id of the attribute as it is + defined in the PRC entry definition. The prefix OID (after + dropping the last sub-id) is the OID assigned to the Entry + object of a defined PRC. The Entry definition of a PRC has + an OID value XxxTable.1 where XxxTable is the OID assigned + to the PRC Table object. + + An attribute with this syntax MUST not have the value 0.0 + (zeroDotZero). If 0.0 is a valid value, the TEXTUAL + CONVENTION AttrIdentifierOidOrZero must be used which makes + such use explicit." + + + +Sahita, et. al. Informational [Page 16] + +RFC 3318 Framework Policy Information Base March 2003 + + + SYNTAX OBJECT IDENTIFIER + +AttrIdentifierOidOrZero ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "An OID that identifies an attribute in a PRC or has a value + 0.0 (zeroDotZero). The value MUST be an OID assigned to a + PRC's attribute definition or the value 0.0. + + If not 0.0, the last sub-id MUST be the sub-id of the + attribute as it is defined in the PRC Entry object + definition. The prefix OID (after dropping the last sub-id) + is the OID assigned to the Entry object of a defined PRC. + The Entry definition of a PRC has an OID value XxxTable.1 + Where, XxxTable is the OID assigned to the PRC Table + object. + + An attribute with this syntax can have the value 0.0 + (zeroDotZero) to indicate that it currently does not + identify a PRC's attribute." + SYNTAX OBJECT IDENTIFIER + +ClientType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "An Unsigned32 value that identifies a COPS Client-type. An + attribute with this syntax must be set to zero if it does + not specify a COPS client-type for the PRI." + REFERENCE + "The COPS (Common Open Policy Service) Protocol, RFC 2748." + SYNTAX Unsigned32 (0..65535) + +ClientHandle ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "An octet string that identifies a COPS Client handle. A + zero length value implies the attribute does not specify a + valid client handle." + REFERENCE + "The COPS (Common Open Policy Service) Protocol, RFC 2748." + SYNTAX OCTET STRING (SIZE(0..65535)) + +END + + + + + + + + +Sahita, et. al. Informational [Page 17] + +RFC 3318 Framework Policy Information Base March 2003 + + +4. Summary of the Framework PIB + + The Framework PIB defines four groups of PRCs: + +4.1. Base PIB classes Group + + This contains PRCs intended to describe the PRCs supported by the + PEP, PRC and/or attribute limitations and its current configuration. + + PRC Support Table + + As the technology evolves, we expect devices to be enhanced + with new PIBs, existing PIBs to add new PRCs and existing PRCs + to be augmented or extended with new attributes. Also, it is + likely that some existing PRCs or individual attributes of PRCs + will be deprecated. The PRC Support Table describes the PRCs + that the device supports as well as the individual attributes + of each PRC. Using this information the PDP can potentially + tailor the policy to more closely match the capabilities of the + device. The PRC Support Table instances are specific to the + particular Subject Category (Client-Type). That is, the PRC + Support Table for Subject Category 'A' will not include + instances for classes supported by the Subject Category 'B'. + Note that the COPS client-type [COPS] used for Framework PIB + PRIs sent/received over COPS-PR MUST be the unique SUBJECT- + CATEGORY number assigned for the area of policy being managed + (e.g., QoS, Security etc). The PEP MUST ignore the attributes + that it reports as not Supported in the decision from the PDP. + The PEP SHOULD not send duplicate PRC support instances in a + COPS Request and the PDP MUST ignore duplicate instances and + MUST use the first instance received for a supported PRC in a + COPS Request. + + PIB Incarnation Table + + This PRC contains exactly one row (corresponding to one PRI) + per context. It identifies the PDP that was the last to + download policy into the device and also contains an identifier + to identify the version of the policy currently downloaded. + This identifier, both its syntax and value, is meaningful only + to the PDPs. It is intended to be a mechanism whereby a PDP, + when accepting a connection from a PEP, can easily identify a + known incarnation of policy. This PRC defines a flag via which + the installed contexts are divided into a set of contexts + ('configuration contexts') out of which only one context is + active and a the remaining contexts form a set of 'outsourcing + contexts' which are all active. The incarnation PRC also + defines an attribute to indicate which configuration context is + + + +Sahita, et. al. Informational [Page 18] + +RFC 3318 Framework Policy Information Base March 2003 + + + the active one at the present time in the 'configuration + contexts' set. The incarnation instance is specific to the + particular Subject Category (Client-Type). + + Component Limitations Table + + Some devices may not be able to implement the full range of + values for all attributes. In principle, each PRC supports a + set of errors that the PEP can report to the PDP in the event + that the specified policy is not implementable. It may be + preferable for the PDP to be informed of the device limitations + before actually attempting to install policy, and while the + error can indicate that a particular attribute value is + unacceptable to the PEP, this does not help the PDP ascertain + which values would be acceptable. To alleviate these + limitations, the PEP can report some limitations of attribute + values and/or classes and possibly guidance values for the + attribute in the Component Limitations Table + + Device Identification Table + + This PRC contains a single PRI that contains device-specific + information that is used to facilitate efficient policy + installation by a PDP. The instance of this PRC is reported to + the PDP in a COPS request message so that the PDP can take into + account certain device characteristics during policy + installation. + +4.2. Device Capabilities group + + This group contains the PRCs that describe the characteristics of + interfaces of the device and the Role Combinations assigned to them. + + Capabilities Set Table + + The capabilities the PEP supports are described by rows in this + PRC (frwkCapabilitySetTable). Each row, or instance of this + class, associates a unique capability name with a set of + capabilities that an entity on the PEP may support. The unique + name is used to form a set of capabilities that the name + represents. The capability references can specify instances in + relevant capability tables in any PIB. The PEP notifies the + PDP of these capability sets and then the PDP configures the + interfaces, per role combination. The unique name + (frwkCapabilitySetName) is not to be confused with the IfType + object in the Interfaces Group MIB [RFC2863]. + + + + + +Sahita, et. al. Informational [Page 19] + +RFC 3318 Framework Policy Information Base March 2003 + + + Interface and Role Combination Table + + The Capabilities Set Table (explained above) describes the + entities on the PEP (for example, interfaces) by their + capabilities, by assigning the capability sets a unique name + (frwkCapabilitySetName). It is possible to tailor the behavior + of interfaces by assigning specific role-combinations to the + capability sets. This allows interfaces with the same + capability sets to be assigned different policies, based on the + current roles assigned to them. At the PDP, configuration is + done in terms of these interface capability set names and the + role-combinations assigned to them. Thus, each row of this + class is a <Interface Index, interface capability set name, + Role Combo> tuple, that indicates the roles that have been + assigned to a particular capability set (as identified by + frwkRoleComboCapSetName) and to a particular interface. Note + that the uniqueness criteria for this PRC has all the + attributes, thus a frwkRoleComboCapSetName may have multiple + role-combinations that it is associated with. Via the IfIndex, + this PRC answers the questions of 'which interfaces have a + specific role combination?' and 'what role combination a + specific interface is a part of?'. + +4.3. Classifier group + + This group contains the IP, IEEE 802 and Internal Label Classifier + elements. The set of tables consist of a Base Filter table that + contains the Index InstanceId and the Negation flag for the filter. + This frwkBaseFilterTable is extended to form the IP Filter table, the + 802 Filter table [802] and the Internal Label table. Filters may + also be defined outside this document and used to extend the Base + Filter table. + + The Extended classes do not have a separate Index value. Instances of + the extended classes have the same indices as their base class + instance. Inheritance is achieved using the EXTENDS keyword as + defined in [SPPI]. + +4.4. Marker group + + This group contains the 802 marker and internal label marker PRCs. + The 802 marker may be applied to mark 802 packets with the required + VLAN Id and/or priority value. The Internal Label marker is applied + to traffic in order to label it with a network device specific label. + Such a label is used to assist the differentiation of an input flow + after it has been aggregated with other flows. The label is + + + + + +Sahita, et. al. Informational [Page 20] + +RFC 3318 Framework Policy Information Base March 2003 + + + implementation specific and may be used for other policy related + functions like flow accounting purposes and/or other data path + treatments. + +5. The Framework PIB Module + + FRAMEWORK-PIB PIB-DEFINITIONS ::= BEGIN + + IMPORTS + Unsigned32, Integer32, MODULE-IDENTITY, + MODULE-COMPLIANCE, OBJECT-TYPE, OBJECT-GROUP, pib + FROM COPS-PR-SPPI + InstanceId, Prid + FROM COPS-PR-SPPI-TC + RoleCombination, PrcIdentifierOid, AttrIdentifierOrZero, + ClientType, ClientHandle + FROM FRAMEWORK-TC-PIB + InetAddress, InetAddressType, + InetAddressPrefixLength, InetPortNumber + FROM INET-ADDRESS-MIB + InterfaceIndex + FROM IF-MIB + DscpOrAny + FROM DIFFSERV-DSCP-TC + TruthValue, PhysAddress + FROM SNMPv2-TC + SnmpAdminString + FROM SNMP-FRAMEWORK-MIB; + + frameworkPib MODULE-IDENTITY + SUBJECT-CATEGORIES { all } + LAST-UPDATED "200302130000Z" -- 13 Feb 2003 + ORGANIZATION "IETF RAP WG" + CONTACT-INFO " + Keith McCloghrie + Cisco Systems, Inc. + 170 West Tasman Drive, + San Jose, CA 95134-1706 USA + Phone: +1 408 526 5260 + Email: kzm@cisco.com + + John Seligson + Nortel Networks, Inc. + 4401 Great America Parkway + Santa Clara, CA 95054 USA + Phone: +1 408 495 2992 + Email: jseligso@nortelnetworks.com + + + + +Sahita, et. al. Informational [Page 21] + +RFC 3318 Framework Policy Information Base March 2003 + + + Ravi Sahita + Intel Labs. + 2111 NE 25th Ave. + + Hillsboro, OR 97124 USA + Phone: +1 503 712 1554 + Email: ravi.sahita@intel.com + + RAP WG Mailing list: rap@ops.ietf.org" + + DESCRIPTION + "A PIB module containing the base set of PRCs that + provide support for management of multiple PIB contexts, + association of roles to device capabilities and other + reusable PRCs. PEPs are required for to implement this + PIB if the above features are desired. This PIB defines + PRCs applicable to 'all' subject-categories. + + Copyright (C) The Internet Society (2003). This version + of this PIB module is part of RFC 3318; see the RFC + itself for full legal notices." + REVISION "200302130000Z" -- 13 Feb 2003 + DESCRIPTION + "Initial version, published in RFC 3318." + + ::= { pib 2 } + + -- + -- The root OID for PRCs in the Framework PIB + -- + + frwkBasePibClasses + OBJECT IDENTIFIER ::= { frameworkPib 1 } + + -- + -- PRC Support Table + -- + + + + + + + + + + + + + + +Sahita, et. al. Informational [Page 22] + +RFC 3318 Framework Policy Information Base March 2003 + + + frwkPrcSupportTable OBJECT-TYPE + SYNTAX SEQUENCE OF FrwkPrcSupportEntry + PIB-ACCESS notify + STATUS current + DESCRIPTION + "Each instance of this PRC specifies a PRC that the device + supports and a bit string to indicate the attributes of the + class that are supported. These PRIs are sent to the PDP to + indicate to the PDP which PRCs, and which attributes of + these PRCs, the device supports. + + All install and install-notify PRCs supported by the device + must be represented in this PRC. Notify PRCs may be + represented for informational purposes." + + ::= { frwkBasePibClasses 1 } + + frwkPrcSupportEntry OBJECT-TYPE + SYNTAX FrwkPrcSupportEntry + STATUS current + DESCRIPTION + "An instance of the frwkPrcSupport class that identifies a + specific PRC and associated attributes as supported + by the device." + + PIB-INDEX { frwkPrcSupportPrid } + UNIQUENESS { frwkPrcSupportSupportedPrc } + + ::= { frwkPrcSupportTable 1 } + + FrwkPrcSupportEntry ::= SEQUENCE { + frwkPrcSupportPrid InstanceId, + frwkPrcSupportSupportedPrc PrcIdentifierOid, + frwkPrcSupportSupportedAttrs OCTET STRING + } + + frwkPrcSupportPrid OBJECT-TYPE + SYNTAX InstanceId + STATUS current + DESCRIPTION + "An arbitrary integer index that uniquely identifies an + instance of the frwkPrcSupport class." + + ::= { frwkPrcSupportEntry 1 } + + + + + + + +Sahita, et. al. Informational [Page 23] + +RFC 3318 Framework Policy Information Base March 2003 + + + frwkPrcSupportSupportedPrc OBJECT-TYPE + SYNTAX PrcIdentifierOid + STATUS current + DESCRIPTION + "The object identifier of a supported PRC. The value is the + OID of the Entry object of the PRC definition. The Entry + Object definition of a PRC has an OID with value XxxTable.1 + Where, XxxTable is the OID assigned to the PRC Table + Object definition. There may not be more than one instance + of the frwkPrcSupport class with the same value of + frwkPrcSupportSupportedPrc." + + ::= { frwkPrcSupportEntry 2 } + + frwkPrcSupportSupportedAttrs OBJECT-TYPE + SYNTAX OCTET STRING + STATUS current + DESCRIPTION + "A bit string representing the supported attributes of the + class that is identified by the frwkPrcSupportSupportedPrc + object. + + Each bit of this bit string corresponds to a class + attribute, with the most significant bit of the i-th octet + of this octet string corresponding to the (8*i - 7)-th + attribute, and the least significant bit of the i-th octet + corresponding to the (8*i)-th class attribute. Each bit + specifies whether or not the corresponding class attribute + is currently supported, with a '1' indicating support and a + '0' indicating no support. + + If the value of this bit string is N bits long and there are + more than N class attributes then the bit string is + logically extended with 0's to the required length. + On the other hand, If the PDP receives a bit string of + length N and there are less that N class attributes then the + PDP should ignore the extra bits in the bit string, i.e., + assume those attributes are unsupported." + REFERENCE + "COPS Usage for Policy Provisioning. RFC 3084, section + 2.2.1." + + ::= { frwkPrcSupportEntry 3 } + + -- + -- PIB Incarnation Table + -- + + + + +Sahita, et. al. Informational [Page 24] + +RFC 3318 Framework Policy Information Base March 2003 + + + frwkPibIncarnationTable OBJECT-TYPE + SYNTAX SEQUENCE OF FrwkPibIncarnationEntry + PIB-ACCESS install-notify + STATUS current + DESCRIPTION + "This PRC contains a single PRovisioning Instance per + installed context that identifies the current incarnation + of the PIB and the PDP or network manager that installed + this incarnation. The instance of this PRC is reported to + the PDP in the REQ message so that the PDP can (attempt to) + ascertain the current state of the PIB. A network manager + may use the instance to determine the state of the device." + + ::= { frwkBasePibClasses 2 } + + frwkPibIncarnationEntry OBJECT-TYPE + SYNTAX FrwkPibIncarnationEntry + STATUS current + DESCRIPTION + "An instance of the frwkPibIncarnation class. Only + one instance of this PRC is ever instantiated per context" + + PIB-INDEX { frwkPibIncarnationPrid } + + ::= { frwkPibIncarnationTable 1 } + + FrwkPibIncarnationEntry ::= SEQUENCE { + frwkPibIncarnationPrid InstanceId, + frwkPibIncarnationName SnmpAdminString, + frwkPibIncarnationId OCTET STRING, + frwkPibIncarnationLongevity INTEGER, + frwkPibIncarnationTtl Unsigned32, + frwkPibIncarnationInCtxtSet TruthValue, + frwkPibIncarnationActive TruthValue, + frwkPibIncarnationFullState TruthValue + } + + frwkPibIncarnationPrid OBJECT-TYPE + SYNTAX InstanceId + STATUS current + DESCRIPTION + "An index to uniquely identify an instance of this PRC." + + ::= { frwkPibIncarnationEntry 1 } + + + + + + + +Sahita, et. al. Informational [Page 25] + +RFC 3318 Framework Policy Information Base March 2003 + + + frwkPibIncarnationName OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE (0..255)) + STATUS current + DESCRIPTION + "The name of the PDP that installed the current incarnation + of the PIB into the device. A zero-length string value for + this type implies the PDP has not assigned this type any + value. By default, it is the zero length string." + + ::= { frwkPibIncarnationEntry 2 } + + frwkPibIncarnationId OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..255)) + STATUS current + DESCRIPTION + "An ID to identify the current incarnation. It has meaning + to the PDP/manager that installed the PIB and perhaps its + standby PDPs/managers. A zero-length string value for + this type implies the PDP has not assigned this type any + value. By default, it is the zero-length string." + + ::= { frwkPibIncarnationEntry 3 } + + frwkPibIncarnationLongevity OBJECT-TYPE + SYNTAX INTEGER { + expireNever(1), + expireImmediate(2), + expireOnTimeout(3) + } + STATUS current + DESCRIPTION + "This attribute controls what the PEP does with the + downloaded policy on a Client Close message or a loss of + connection to the PDP. + + If set to expireNever, the PEP continues to operate with the + installed policy indefinitely. If set to expireImmediate, + the PEP immediately expires the policy obtained from the PDP + and installs policy from local configuration. If set to + expireOnTimeout, the PEP continues to operate with the + policy installed by the PDP for a period of time specified + by frwkPibIncarnationTtl. After this time (and it has not + reconnected to the original or new PDP) the PEP expires this + policy and reverts to local configuration. + + For all cases, it is the responsibility of the PDP to check + the incarnation and download new policy, if necessary, on a + reconnect. On receiving a Remove-State for the active + + + +Sahita, et. al. Informational [Page 26] + +RFC 3318 Framework Policy Information Base March 2003 + + + context, this attribute value MUST be ignored and the PEP + should expire the policy in that active context immediately. + Policy enforcement timing only applies to policies that have + been installed dynamically (e.g., by a PDP via COPS)." + REFERENCE + "COPS Usage for Policy Provisioning. RFC 3084." + + ::= { frwkPibIncarnationEntry 4 } + + frwkPibIncarnationTtl OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "seconds" + STATUS current + DESCRIPTION + "The number of seconds after a Client Close or TCP timeout + for which the PEP continues to enforce the policy in the + PIB. After this interval, the PIB is considered expired and + the device no longer enforces the policy installed in the + PIB. + + This attribute is only meaningful if + frwkPibIncarnationLongevity is set to expireOnTimeout." + + ::= { frwkPibIncarnationEntry 5 } + + frwkPibIncarnationInCtxtSet OBJECT-TYPE + SYNTAX TruthValue + STATUS current + DESCRIPTION + "When the PDP installs a PRI with this flag set to 'true' it + implies this context belongs to the set of contexts out of + which at the most one context can be active at a given time. + If this attribute is set to 'false' this context is one of + the outsourcing (simultaneous active) contexts on the PEP. + + This attribute is 'true' for all contexts belong to the set + of configuration contexts. Within the configuration context + set, one context can be active identified by the + frwkPibIncarnationActive attribute." + REFERENCE + "TruthValue Textual Convention, defined in RFC 2579." + ::= { frwkPibIncarnationEntry 6 } + + + + + + + + + +Sahita, et. al. Informational [Page 27] + +RFC 3318 Framework Policy Information Base March 2003 + + + frwkPibIncarnationActive OBJECT-TYPE + SYNTAX TruthValue + STATUS current + DESCRIPTION + "When the PDP installs a PRI on the PEP with this attribute + set to 'true' and if this context belongs to the + 'configuration contexts' set, i.e., the + frwkPibIncarnationInCtxtSet is set to 'true', then the PIB + instance to which this PRI belongs must become the active + PIB instance. In this case, the previous active instance + from this set MUST become inactive and the + frwkPibIncarnationActive attribute in that PIB instance MUST + be set to 'false'. + + When the PDP installs an attribute frwkPibIncarnationActive + on the PEP that is 'true' in one PIB instance and if the + context belongs to the 'configuration contexts' set, the PEP + must ensure, re-setting the attribute if necessary, that the + frwkPibIncarnationActive attribute is 'false' in all other + contexts which belong to the 'configuration contexts' set." + + ::= { frwkPibIncarnationEntry 7 } + + frwkPibIncarnationFullState OBJECT-TYPE + SYNTAX TruthValue + STATUS current + DESCRIPTION + "This attribute is interpreted only when sent in a COPS + request message from the PEP to the PDP. It does not have + any meaning when sent from the PDP to the PEP. + + If this attribute is set to 'true' by the PEP, then the + request that the PEP sends to the PDP must be interpreted as + the complete configuration request for the PEP. The PDP must + in this case refresh the request information for the + handle that the request containing this PRI was received on. + If this attribute is set to 'false', then the + request PRIs sent in the request must be interpreted as + updates to the previous request PRIs sent using that handle. + See section 3.3 for details on updating request state + information." + REFERENCE + "RFC 3318 Section 2.3" + + ::= { frwkPibIncarnationEntry 8 } + + -- + -- Device Identification Table + + + +Sahita, et. al. Informational [Page 28] + +RFC 3318 Framework Policy Information Base March 2003 + + + -- + + frwkDeviceIdTable OBJECT-TYPE + + SYNTAX SEQUENCE OF FrwkDeviceIdEntry + PIB-ACCESS notify + STATUS current + DESCRIPTION + "This PRC contains a single PRovisioning Instance that + contains general purpose device-specific information that is + used to facilitate efficient policy communication by a PDP. + The instance of this PRC is reported to the PDP in a COPS + request message so that the PDP can take into account + certain device characteristics during policy installation." + + ::= { frwkBasePibClasses 3 } + + frwkDeviceIdEntry OBJECT-TYPE + SYNTAX FrwkDeviceIdEntry + STATUS current + DESCRIPTION + "An instance of the frwkDeviceId class. Only one instance of + this PRC is ever instantiated." + + PIB-INDEX { frwkDeviceIdPrid } + + ::= { frwkDeviceIdTable 1 } + + FrwkDeviceIdEntry ::= SEQUENCE { + frwkDeviceIdPrid InstanceId, + frwkDeviceIdDescr SnmpAdminString, + frwkDeviceIdMaxMsg Unsigned32, + frwkDeviceIdMaxContexts Unsigned32 + } + + frwkDeviceIdPrid OBJECT-TYPE + SYNTAX InstanceId + STATUS current + DESCRIPTION + "An index to uniquely identify an instance of this PRC." + + ::= { frwkDeviceIdEntry 1 } + + + + + + + + + +Sahita, et. al. Informational [Page 29] + +RFC 3318 Framework Policy Information Base March 2003 + + + frwkDeviceIdDescr OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE (1..255)) + STATUS current + DESCRIPTION + "A textual description of the PEP. This value should include + the name and version identification of the PEP's hardware + and software." + + ::= { frwkDeviceIdEntry 2 } + + frwkDeviceIdMaxMsg OBJECT-TYPE + SYNTAX Unsigned32 (64..4294967295) + UNITS "octets" + STATUS current + DESCRIPTION + "The maximum COPS-PR message size, in octets, that the + device is capable of processing. Received messages with a + size in excess of this value must cause the PEP to return an + error to the PDP containing the global error code + 'maxMsgSizeExceeded'. This is an additional error-avoidance + mechanism to allow the administrator to know the maximum + message size supported so that they have the ability to + control the message size of messages sent to the device. + This attribute must have a non-zero value. The device should + send the MAX value for Unsigned32 for this attribute if it + not defined." + DEFVAL { 4294967295 } + + ::= { frwkDeviceIdEntry 3 } + + frwkDeviceIdMaxContexts OBJECT-TYPE + SYNTAX Unsigned32 (1..4294967295) + UNITS "contexts" + STATUS current + DESCRIPTION + "The maximum number of unique contexts supported by + the device. This is an additional error-avoidance mechanism + to allow the administrators to have the ability to know the + maximum number of contexts supported so that they can + control the number of configuration contexts they install on + the device. This attribute must have a non-zero value. The + device should send the MAX value for Unsigned32 for this + attribute if it not defined." + DEFVAL { 4294967295 } + + ::= { frwkDeviceIdEntry 4 } + + -- + + + +Sahita, et. al. Informational [Page 30] + +RFC 3318 Framework Policy Information Base March 2003 + + + -- Component Limitations Table + -- + + frwkCompLimitsTable OBJECT-TYPE + SYNTAX SEQUENCE OF FrwkCompLimitsEntry + PIB-ACCESS notify + STATUS current + DESCRIPTION + "This PRC supports the ability to export information + detailing PRC/attribute implementation limitations to the + policy management system. Instances of this PRC apply only + for PRCs with access type 'install' or 'install-notify'. + + Each instance of this PRC identifies a PRovisioning Class + or attribute and a limitation related to the implementation + of the class/attribute in the device. Additional information + providing guidance related to the limitation may also be + present. These PRIs are sent to the PDP to indicate which + PRCs or PRC attributes the device supports in a restricted + manner." + + ::= { frwkBasePibClasses 4 } + + frwkCompLimitsEntry OBJECT-TYPE + SYNTAX FrwkCompLimitsEntry + STATUS current + DESCRIPTION + "An instance of the frwkCompLimits class that identifies + a PRC or PRC attribute and a limitation related to the PRC + or PRC attribute implementation supported by the device. + COPS-PR lists the error codes that MUST be returned (if + applicable)for policy installation that don't abide by the + restrictions indicated by the limitations exported. [SPPI] + defines an INSTALL-ERRORS clause that allows PIB designers + to define PRC specific error codes that can be returned for + policy installation. This allows efficient debugging of PIB + implementations." + REFERENCE + "COPS Usage for Policy Provisioning. RFC 3084." + + PIB-INDEX { frwkCompLimitsPrid } + UNIQUENESS { frwkCompLimitsComponent, + frwkCompLimitsAttrPos, + frwkCompLimitsNegation, + frwkCompLimitsType, + frwkCompLimitsSubType, + frwkCompLimitsGuidance } + + + + +Sahita, et. al. Informational [Page 31] + +RFC 3318 Framework Policy Information Base March 2003 + + + ::= { frwkCompLimitsTable 1 } + + FrwkCompLimitsEntry ::= SEQUENCE { + frwkCompLimitsPrid InstanceId, + frwkCompLimitsComponent PrcIdentifierOid, + frwkCompLimitsAttrPos AttrIdentifierOrZero, + frwkCompLimitsNegation TruthValue, + frwkCompLimitsType INTEGER, + frwkCompLimitsSubType INTEGER, + frwkCompLimitsGuidance OCTET STRING + } + + frwkCompLimitsPrid OBJECT-TYPE + SYNTAX InstanceId + STATUS current + DESCRIPTION + "An arbitrary integer index that uniquely identifies an + instance of the frwkCompLimits class." + + ::= { frwkCompLimitsEntry 1 } + + frwkCompLimitsComponent OBJECT-TYPE + SYNTAX PrcIdentifierOid + STATUS current + DESCRIPTION + "The value is the OID of a PRC (the table entry) which is + supported in some limited fashion or contains an attribute + that is supported in some limited fashion with regard to + it's definition in the associated PIB module. The same OID + may appear in the table several times, once for each + implementation limitation acknowledged by the device." + + ::= { frwkCompLimitsEntry 2 } + + frwkCompLimitsAttrPos OBJECT-TYPE + SYNTAX AttrIdentifierOrZero + STATUS current + DESCRIPTION + "The relative position of the attribute within the PRC + specified by the frwkCompLimitsComponent. A value of 1 would + represent the first columnar object in the PRC and a value + of N would represent the Nth columnar object in the PRC. A + value of zero (0) indicates that the limit applies to the + PRC itself and not to a specific attribute." + + ::= { frwkCompLimitsEntry 3 } + + + + + +Sahita, et. al. Informational [Page 32] + +RFC 3318 Framework Policy Information Base March 2003 + + + frwkCompLimitsNegation OBJECT-TYPE + SYNTAX TruthValue + STATUS current + DESCRIPTION + "A boolean value ,if 'true', negates the component limit + exported." + + ::= { frwkCompLimitsEntry 4 } + + frwkCompLimitsType OBJECT-TYPE + SYNTAX INTEGER { + priSpaceLimited(1), + attrValueSupLimited(2), + attrEnumSupLimited(3), + attrLengthLimited(4), + prcLimitedNotify(5) + } + STATUS current + DESCRIPTION + "A value describing an implementation limitation for the + device related to the PRC or PRC attribute identified by + the frwkCompLimitsComponent and the frwkCompLimitsAttrPos + attributes. + + Values for this object are one of the following: + + priSpaceLimited(1) - No more instances than that specified + by the guidance value may be installed in the given class. + The component identified MUST be a valid PRC. The SubType + used MUST be valueOnly(9). + + attrValueSupLimited(2) - Limited values are acceptable for + the identified component. The component identified MUST be a + valid PRC attribute. The guidance OCTET STRING will be + decoded according to the attribute type. + + attrEnumSupLimited(3) - Limited enumeration values are legal + for the identified component. The attribute identified MUST + be a valid enum type. + + attrLengthLimited(4) - The length of the specified + value for the identified component is limited. The component + identified MUST be a valid PRC attribute of base-type OCTET + STRING. + + prcLimitedNotify (5) - The component is currently limited + for use by request or report messages prohibiting decision + installation. The component identified must be a valid PRC." + + + +Sahita, et. al. Informational [Page 33] + +RFC 3318 Framework Policy Information Base March 2003 + + + ::= { frwkCompLimitsEntry 5 } + + frwkCompLimitsSubType OBJECT-TYPE + SYNTAX INTEGER { + none(1), + lengthMin(2), + lengthMax(3), + rangeMin(4), + rangeMax(5), + enumMin(6), + enumMax(7), + enumOnly(8), + valueOnly(9), + bitMask(10) + } + STATUS current + DESCRIPTION + "This object indicates the type of guidance related + to the noted limitation (as indicated by the + frwkCompLimitsType attribute) that is provided + in the frwkCompLimitsGuidance attribute. + + A value of 'none(1)' means that no additional + guidance is provided for the noted limitation type. + + A value of 'lengthMin(2)' means that the guidance + attribute provides data related to the minimum + acceptable length for the value of the identified + component. A corresponding class instance + specifying the 'lengthMax(3)' value is required + in conjunction with this sub-type. + + A value of 'lengthMax(3)' means that the guidance + attribute provides data related to the maximum + acceptable length for the value of the identified + component. A corresponding class instance + specifying the 'lengthMin(2)' value is required + in conjunction with this sub-type. + + A value of 'rangeMin(4)' means that the guidance + attribute provides data related to the lower bound + of the range for the value of the identified + component. A corresponding class instance + specifying the 'rangeMax(5)' value is required + in conjunction with this sub-type. + + A value of 'rangeMax(5)' means that the guidance + attribute provides data related to the upper bound + + + +Sahita, et. al. Informational [Page 34] + +RFC 3318 Framework Policy Information Base March 2003 + + + of the range for the value of the identified + component. A corresponding class instance + specifying the 'rangeMin(4)' value is required + in conjunction with this sub-type. + + A value of 'enumMin(6)' means that the guidance + attribute provides data related to the lowest + enumeration acceptable for the value of the + identified component. A corresponding + class instance specifying the 'enumMax(7)' + value is required in conjunction with this sub-type. + + A value of 'enumMax(7)' means that the guidance + attribute provides data related to the largest + enumeration acceptable for the value of the + identified component. A corresponding + class instance specifying the 'enumMin(6)' + value is required in conjunction with this sub-type. + + A value of 'enumOnly(8)' means that the guidance + attribute provides data related to a single + enumeration acceptable for the value of the + identified component. + + A value of 'valueOnly(9)' means that the guidance + attribute provides data related to a single + value that is acceptable for the identified + component. + + A value of 'bitMask(10)' means that the guidance + attribute is a bit mask such that all the combinations of + bits set in the bitmask are acceptable values for the + identified component which should be an attribute of type + + 'BITS'. + + For example, an implementation of the frwkIpFilter class may + be limited in several ways, such as address mask, protocol + and Layer 4 port options. These limitations could be + exported using this PRC with the following instances: + + Component Type Sub-Type Guidance + ------------------------------------------------------------ + DstPrefixLength attrValueSupLimited valueOnly 24 + SrcPrefixLength attrValueSupLimited valueOnly 24 + Protocol attrValueSupLimited rangeMin 10 + Protocol attrValueSupLimited rangeMax 20 + + + + +Sahita, et. al. Informational [Page 35] + +RFC 3318 Framework Policy Information Base March 2003 + + + The above entries describe a number of limitations that + may be in effect for the frwkIpFilter class on a given + device. The limitations include restrictions on acceptable + values for certain attributes. + + Also, an implementation of a PRC may be limited in the ways + it can be accessed. For instance, for a fictitious PRC + dscpMapEntry, which has a PIB-ACCESS of 'install-notify': + + Component Type SubType Guidance + ------------------------------------------------------------ + dscpMapEntry prcLimitedNotify none zero-length string." + + ::= { frwkCompLimitsEntry 6 } + + frwkCompLimitsGuidance OBJECT-TYPE + SYNTAX OCTET STRING + STATUS current + DESCRIPTION + "A value used to convey additional information related + to the implementation limitation. Note that a guidance + value will not necessarily be provided for all exported + limitations. If a guidance value is not provided, the + value must be a zero-length string. + + The format of the guidance value, if one is present as + indicated by the frwkCompLimitsSubType attribute, + is described by the following table. Note that the + format of guidance value is dictated by the base-type of + the component whose limitation is being exported, + interpreted in the context of the frwkCompLimitsType and + frwkCompLimitsSubType values. Any other restrictions + (such as size/range/enumerated value) on the guidance + value MUST be complied with according to the definition + of the component for which guidance is being specified. + + Note that numbers are encoded in network byte order. + + Base Type Value + --------- ----- + Unsigned32/Integer32/INTEGER 32-bit value. + Unsigned64/Integer64 64-bit Value. + OCTET STRING octets of data. + OID 32-bit OID components. + BITS Binary octets of length + same as Component specified." + + ::= { frwkCompLimitsEntry 7 } + + + +Sahita, et. al. Informational [Page 36] + +RFC 3318 Framework Policy Information Base March 2003 + + + -- + -- Complete Reference specification table + -- + + frwkReferenceTable OBJECT-TYPE + SYNTAX SEQUENCE OF FrwkReferenceEntry + PIB-ACCESS install-notify + STATUS current + DESCRIPTION + "Each instance of this PRC specifies a reference to a PRI + in a specific PIB context (handle) for a specific client- + type. This table gives the PDP the ability to set up + policies that span installed contexts and the PEP the + ability to reference instances in another, perhaps + configured context. The PEP must send a + 'attrReferenceUnknown' COPS-PR error to the PDP if it + encounters an invalid reference. " + REFERENCE + "COPS Usage for Policy Provisioning. RFC 3084, error + codes section 4.5." + + ::= { frwkBasePibClasses 5 } + + frwkReferenceEntry OBJECT-TYPE + SYNTAX FrwkReferenceEntry + STATUS current + DESCRIPTION + "Entry specification for the frwkReferenceTable." + + PIB-INDEX { frwkReferencePrid } + UNIQUENESS { } + + ::= { frwkReferenceTable 1 } + + FrwkReferenceEntry ::= SEQUENCE { + frwkReferencePrid InstanceId, + frwkReferenceClientType ClientType, + frwkReferenceClientHandle ClientHandle, + frwkReferenceInstance Prid + } + + frwkReferencePrid OBJECT-TYPE + SYNTAX InstanceId + STATUS current + DESCRIPTION + "An arbitrary integer index that uniquely identifies an + instance of the frwkReference class." + + + + +Sahita, et. al. Informational [Page 37] + +RFC 3318 Framework Policy Information Base March 2003 + + + ::= { frwkReferenceEntry 1 } + + frwkReferenceClientType OBJECT-TYPE + SYNTAX ClientType + STATUS current + DESCRIPTION + "Is unused if set to zero else specifies a client-type for + which the reference is to be interpreted. This non-zero + client-type must be activated explicitly via a separate + COPS client-open else this attribute is not valid." + + ::= { frwkReferenceEntry 2 } + + frwkReferenceClientHandle OBJECT-TYPE + SYNTAX ClientHandle + STATUS current + DESCRIPTION + "Must be set to specify a valid client-handle in the scope + of the client-type specified." + + ::= { frwkReferenceEntry 3 } + + frwkReferenceInstance OBJECT-TYPE + SYNTAX Prid + STATUS current + DESCRIPTION + "References a PRI in the context identified by + frwkReferenceClientHandle for client-type identified by + frwkReferenceClientType." + + ::= { frwkReferenceEntry 4 } + + -- + -- Error specification table + -- + + frwkErrorTable OBJECT-TYPE + SYNTAX SEQUENCE OF FrwkErrorEntry + PIB-ACCESS install + STATUS current + DESCRIPTION + "Each instance of this PRC specifies a class specific + error object. Instances of this PRC are transient, i.e., + instances received in a COPS decision message must not be + maintained by the PEP in its copy of the PIB instances. This + PRC allows a PDP to send error information to the PEP if the + PDP cannot process updates to a Request successfully." + + + + +Sahita, et. al. Informational [Page 38] + +RFC 3318 Framework Policy Information Base March 2003 + + + ::= { frwkBasePibClasses 6 } + + frwkErrorEntry OBJECT-TYPE + SYNTAX FrwkErrorEntry + STATUS current + DESCRIPTION + "Entry specification for the frwkErrorTable." + + PIB-INDEX { frwkErrorPrid } + UNIQUENESS { + frwkErrorCode, + frwkErrorSubCode, + frwkErrorPrc, + frwkErrorInstance + } + + ::= { frwkErrorTable 1 } + + FrwkErrorEntry ::= SEQUENCE { + frwkErrorPrid InstanceId, + frwkErrorCode Unsigned32, + frwkErrorSubCode Unsigned32, + frwkErrorPrc PrcIdentifierOid, + frwkErrorInstance InstanceId + } + + frwkErrorPrid OBJECT-TYPE + SYNTAX InstanceId + STATUS current + DESCRIPTION + "An arbitrary integer index that uniquely identifies an + instance of the frwkError class." + + ::= { frwkErrorEntry 1 } + + frwkErrorCode OBJECT-TYPE + SYNTAX Unsigned32 (0..65535) + STATUS current + DESCRIPTION + "Error code defined in COPS-PR CPERR object." + REFERENCE + "COPS Usage for Policy Provisioning. RFC 3084." + + ::= { frwkErrorEntry 2 } + + frwkErrorSubCode OBJECT-TYPE + SYNTAX Unsigned32 (0..65535) + STATUS current + + + +Sahita, et. al. Informational [Page 39] + +RFC 3318 Framework Policy Information Base March 2003 + + + DESCRIPTION + "The class-specific error object is used to communicate + errors relating to specific PRCs." + + ::= { frwkErrorEntry 3 } + + frwkErrorPrc OBJECT-TYPE + SYNTAX PrcIdentifierOid + STATUS current + DESCRIPTION + "The PRC due to which the error specified by codes + (frwkErrorCode , frwkErrorSubCode) occurred." + + ::= { frwkErrorEntry 4 } + + frwkErrorInstance OBJECT-TYPE + SYNTAX InstanceId + STATUS current + DESCRIPTION + "The PRI of the identified PRC (frwkErrorPrc) due to which + the error specified by codes (frwkErrorCode , + frwkErrorSubCode) occurred. Must be set to zero if unused." + + ::= { frwkErrorEntry 5 } + + -- + -- The device capabilities and role combo classes group + -- + + frwkDeviceCapClasses + OBJECT IDENTIFIER ::= { frameworkPib 2 } + -- + -- Capability Set Table + -- + + frwkCapabilitySetTable OBJECT-TYPE + SYNTAX SEQUENCE OF FrwkCapabilitySetEntry + PIB-ACCESS notify + STATUS current + DESCRIPTION + + "This PRC describes the capability sets that exist on the + interfaces on the device. The capability set is given a + unique name that identifies a set. These capability set + names are used by the PDP to determine policy information to + be associated with interfaces that possess similar sets of + capabilities." + + + + +Sahita, et. al. Informational [Page 40] + +RFC 3318 Framework Policy Information Base March 2003 + + + ::= { frwkDeviceCapClasses 1 } + + frwkCapabilitySetEntry OBJECT-TYPE + SYNTAX FrwkCapabilitySetEntry + STATUS current + DESCRIPTION + "An instance of this PRC describes a particular set of + capabilities and associates a unique name with the set." + + PIB-INDEX { frwkCapabilitySetPrid } + UNIQUENESS { frwkCapabilitySetName, + frwkCapabilitySetCapability } + + ::= { frwkCapabilitySetTable 1 } + + FrwkCapabilitySetEntry ::= SEQUENCE { + frwkCapabilitySetPrid InstanceId, + frwkCapabilitySetName SnmpAdminString, + frwkCapabilitySetCapability Prid + } + + frwkCapabilitySetPrid OBJECT-TYPE + SYNTAX InstanceId + STATUS current + DESCRIPTION + "An arbitrary integer index that uniquely identifies a + instance of the class." + + ::= { frwkCapabilitySetEntry 1 } + + frwkCapabilitySetName OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE (1..255)) + STATUS current + DESCRIPTION + "The name for the capability set. This name is the unique + identifier of a set of capabilities. This attribute must not + be assigned a zero-length string." + + ::= { frwkCapabilitySetEntry 2 } + + frwkCapabilitySetCapability OBJECT-TYPE + SYNTAX Prid + STATUS current + DESCRIPTION + + "The complete PRC OID and instance identifier specifying the + capability PRC instance for the interface. This attribute + references a specific instance of a capability table. The + + + +Sahita, et. al. Informational [Page 41] + +RFC 3318 Framework Policy Information Base March 2003 + + + capability table whose instance is referenced must be + defined in the client type specific PIB that this PIB is + used with. The referenced capability instance becomes a part + of the set of capabilities associated with the specified + frwkCapabilitySetName." + + ::= { frwkCapabilitySetEntry 3 } + + -- + -- Interface and Role Combination Tables + -- + + frwkRoleComboTable OBJECT-TYPE + SYNTAX SEQUENCE OF FrwkRoleComboEntry + PIB-ACCESS install-notify + STATUS current + DESCRIPTION + "This is an abstract PRC that may be extended or referenced + to enumerate the role combinations, capability set names + assigned to any interface on a PEP. The identification of + the interface is to be defined by its extensions or + referencing PRCs." + + ::= { frwkDeviceCapClasses 2 } + + frwkRoleComboEntry OBJECT-TYPE + SYNTAX FrwkRoleComboEntry + STATUS current + DESCRIPTION + "An instance of this PRC describes one association of an + interface to a role-combination and capability set name . + Note that an interface can have multiple associations. This + constraint is controlled by the extending or referencing + PRC's uniqueness clause." + + PIB-INDEX { frwkRoleComboPrid } + UNIQUENESS { } + + ::= { frwkRoleComboTable 1 } + + FrwkRoleComboEntry ::= SEQUENCE { + frwkRoleComboPrid InstanceId, + frwkRoleComboRoles RoleCombination, + frwkRoleComboCapSetName SnmpAdminString + } + + frwkRoleComboPrid OBJECT-TYPE + SYNTAX InstanceId + + + +Sahita, et. al. Informational [Page 42] + +RFC 3318 Framework Policy Information Base March 2003 + + + STATUS current + DESCRIPTION + "An arbitrary integer index that uniquely identifies an + instance of the class." + + ::= { frwkRoleComboEntry 1 } + + frwkRoleComboRoles OBJECT-TYPE + SYNTAX RoleCombination + STATUS current + DESCRIPTION + "The role combination assigned to a specific interface." + + ::= { frwkRoleComboEntry 2 } + + frwkRoleComboCapSetName OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE (0..255)) + STATUS current + DESCRIPTION + "The name of the capability set associated with + the Role Combination specified in frwkRoleComboRoles. If + this is a zero length string it implies the PEP is not + exporting any capability set information for this + RoleCombination. The PDP must then use the RoleCombinations + provided as the only means of assigning policies + If a non-zero length string is specified, the name must + exist in frwkCapabilitySetTable." + + ::= { frwkRoleComboEntry 3 } + + -- + -- Interface, Role Combination association via IfIndex + -- + + frwkIfRoleComboTable OBJECT-TYPE + SYNTAX SEQUENCE OF FrwkIfRoleComboEntry + PIB-ACCESS install-notify + STATUS current + DESCRIPTION + "This PRC enumerates the interface to role combination and + frwkRoleComboCapSetName mapping for all policy managed + interfaces of a device. Policy for an interface depends not + only on the capability set of an interface but also on its + roles. This table specifies all the <interface index, + interface capability set name, role combination> tuples + currently on the device" + + ::= { frwkDeviceCapClasses 3 } + + + +Sahita, et. al. Informational [Page 43] + +RFC 3318 Framework Policy Information Base March 2003 + + + frwkIfRoleComboEntry OBJECT-TYPE + SYNTAX FrwkIfRoleComboEntry + STATUS current + DESCRIPTION + "An instance of this PRC describes the association of + a interface to an capability set name and a role + combination. + Note that a capability set name can have multiple role + combinations assigned to it, but an IfIndex can have only + one role combination associated." + + EXTENDS { frwkRoleComboEntry } + UNIQUENESS { frwkIfRoleComboIfIndex, + frwkRoleComboCapSetName } + + ::= { frwkIfRoleComboTable 1 } + + FrwkIfRoleComboEntry ::= SEQUENCE { + frwkIfRoleComboIfIndex InterfaceIndex + } + + frwkIfRoleComboIfIndex OBJECT-TYPE + SYNTAX InterfaceIndex + STATUS current + DESCRIPTION + "The value of this attribute is the ifIndex which is + associated with the specified RoleCombination and interface + capability set name." + + ::= { frwkIfRoleComboEntry 1 } + + -- + -- The Classification classes group + -- + + frwkClassifierClasses + OBJECT IDENTIFIER ::= { frameworkPib 3 } + -- + -- The Base Filter Table + -- + + frwkBaseFilterTable OBJECT-TYPE + SYNTAX SEQUENCE OF FrwkBaseFilterEntry + PIB-ACCESS install + STATUS current + + + + + + +Sahita, et. al. Informational [Page 44] + +RFC 3318 Framework Policy Information Base March 2003 + + + DESCRIPTION + "The Base Filter class. A packet has to match all + fields in an Filter. Wildcards may be specified for those + fields that are not relevant." + + ::= { frwkClassifierClasses 1 } + + frwkBaseFilterEntry OBJECT-TYPE + SYNTAX FrwkBaseFilterEntry + STATUS current + DESCRIPTION + "An instance of the frwkBaseFilter class." + + PIB-INDEX { frwkBaseFilterPrid } + + ::= { frwkBaseFilterTable 1 } + + FrwkBaseFilterEntry ::= SEQUENCE { + frwkBaseFilterPrid InstanceId, + frwkBaseFilterNegation TruthValue + } + + frwkBaseFilterPrid OBJECT-TYPE + SYNTAX InstanceId + STATUS current + DESCRIPTION + "An integer index to uniquely identify this Filter among all + the Filters." + + ::= { frwkBaseFilterEntry 1 } + + frwkBaseFilterNegation OBJECT-TYPE + SYNTAX TruthValue + STATUS current + DESCRIPTION + "This attribute behaves like a logical NOT for the filter. + If the packet matches this filter and the value of this + attribute is 'true', the action associated with this filter + is not applied to the packet. If the value of this + attribute is 'false', then the action is applied to the + packet." + + ::= { frwkBaseFilterEntry 2 } + + -- + -- The IP Filter Table + -- + + + + +Sahita, et. al. Informational [Page 45] + +RFC 3318 Framework Policy Information Base March 2003 + + + frwkIpFilterTable OBJECT-TYPE + SYNTAX SEQUENCE OF FrwkIpFilterEntry + PIB-ACCESS install + STATUS current + DESCRIPTION + "Filter definitions. A packet has to match all fields in a + filter. Wildcards may be specified for those fields that + are not relevant." + + INSTALL-ERRORS { + invalidDstL4PortData(1), + invalidSrcL4PortData(2) + } + ::= { frwkClassifierClasses 2 } + + frwkIpFilterEntry OBJECT-TYPE + SYNTAX FrwkIpFilterEntry + STATUS current + DESCRIPTION + "An instance of the frwkIpFilter class." + + EXTENDS { frwkBaseFilterEntry } + UNIQUENESS { frwkBaseFilterNegation, + frwkIpFilterAddrType, + frwkIpFilterDstAddr, + frwkIpFilterDstPrefixLength, + frwkIpFilterSrcAddr, + frwkIpFilterSrcPrefixLength, + frwkIpFilterDscp, + frwkIpFilterFlowId, + frwkIpFilterProtocol, + frwkIpFilterDstL4PortMin, + frwkIpFilterDstL4PortMax, + frwkIpFilterSrcL4PortMin, + frwkIpFilterSrcL4PortMax } + + ::= { frwkIpFilterTable 1 } + + FrwkIpFilterEntry ::= SEQUENCE { + frwkIpFilterAddrType InetAddressType, + frwkIpFilterDstAddr InetAddress, + frwkIpFilterDstPrefixLength InetAddressPrefixLength, + frwkIpFilterSrcAddr InetAddress, + frwkIpFilterSrcPrefixLength InetAddressPrefixLength, + frwkIpFilterDscp DscpOrAny, + frwkIpFilterFlowId Integer32, + frwkIpFilterProtocol Unsigned32, + frwkIpFilterDstL4PortMin InetPortNumber, + + + +Sahita, et. al. Informational [Page 46] + +RFC 3318 Framework Policy Information Base March 2003 + + + frwkIpFilterDstL4PortMax InetPortNumber, + frwkIpFilterSrcL4PortMin InetPortNumber, + frwkIpFilterSrcL4PortMax InetPortNumber + } + + frwkIpFilterAddrType OBJECT-TYPE + + SYNTAX InetAddressType + STATUS current + DESCRIPTION + "The address type enumeration value to specify the type of + the packet's IP address. + + While other types of addresses are defined in the + InetAddressType textual convention, an IP filter can only + use IPv4 and IPv6 addresses directly to classify traffic. + All other InetAddressTypes require mapping to the + corresponding Ipv4 or IPv6 address before being used to + classify traffic. Therefore, this object as such is not + limited to IPv4 and IPv6 addresses, i.e., it can be assigned + any of the valid values defined in the InetAddressType TC, + but the mapping of the address values to IPv4 or IPv6 + addresses for the address attributes (frwkIpFilterDstAddr + and frwkIpFilterSrcAddr) must be done by the PEP. For + example when dns (16) is used, the PEP must resolve + the address to IPv4 or IPv6 at install time." + REFERENCE + "Textual Conventions for Internet Network Addresses. + RFC 3291." + + ::= { frwkIpFilterEntry 1 } + + frwkIpFilterDstAddr OBJECT-TYPE + + SYNTAX InetAddress + STATUS current + DESCRIPTION + "The IP address to match against the packet's + destination IP address. If the address type is 'ipv4', + 'ipv6', 'ipv4z' or 'ipv6z' then, the attribute + frwkIpFilterDstPrefixLength indicates the number of bits + that are relevant. " + REFERENCE + "Textual Conventions for Internet Network Addresses. + RFC 3291." + + ::= { frwkIpFilterEntry 2 } + + + + +Sahita, et. al. Informational [Page 47] + +RFC 3318 Framework Policy Information Base March 2003 + + + frwkIpFilterDstPrefixLength OBJECT-TYPE + SYNTAX InetAddressPrefixLength + STATUS current + DESCRIPTION + "The length of a mask for the matching of the destination + IP address. This attribute is interpreted only if the + InetAddressType is 'ipv4', 'ipv4z', 'ipv6' or 'ipv6z'. + Masks are constructed by setting bits in sequence from the + most-significant bit downwards for + frwkIpFilterDstPrefixLength bits length. All other bits in + the mask, up to the number needed to fill the length of + the address frwkIpFilterDstAddr are cleared to zero. A zero + bit in the mask then means that the corresponding bit in + the address always matches. + + In IPv4 addresses, a length of 0 indicates a match of any + address; a length of 32 indicates a match of a single host + address, and a length between 0 and 32 indicates the use of + a CIDR Prefix. IPv6 is similar, except that prefix lengths + range from 0..128." + REFERENCE + "Textual Conventions for Internet Network Addresses. + RFC 3291." + DEFVAL { 0 } + + ::= { frwkIpFilterEntry 3 } + + frwkIpFilterSrcAddr OBJECT-TYPE + SYNTAX InetAddress + STATUS current + DESCRIPTION + "The IP address to match against the packet's source IP + address. If the address type is 'ipv4', 'ipv6', 'ipv4z' or + 'ipv6z' then, the attribute frwkIpFilterSrcPrefixLength + indicates the number of bits that are relevant." + REFERENCE + "Textual Conventions for Internet Network Addresses. + RFC 3291." + + ::= { frwkIpFilterEntry 4 } + + frwkIpFilterSrcPrefixLength OBJECT-TYPE + SYNTAX InetAddressPrefixLength + UNITS "bits" + STATUS current + DESCRIPTION + "The length of a mask for the matching of the source IP + address. This attribute is interpreted only if the + + + +Sahita, et. al. Informational [Page 48] + +RFC 3318 Framework Policy Information Base March 2003 + + + InetAddressType is 'ipv4', 'ipv4z', 'ipv6' or 'ipv6z'. + Masks are constructed by setting bits in sequence from the + most-significant bit downwards for + frwkIpFilterSrcPrefixLength bits length. All other bits in + the mask, up to the number needed to fill the length of + the address frwkIpFilterSrcAddr are cleared to zero. A + zero bit in the mask then means that the corresponding bit + in the address always matches. + + In IPv4 addresses, a length of 0 indicates a match of any + address; a length of 32 indicates a match of a single host + address, and a length between 0 and 32 indicates the use of + a CIDR Prefix. IPv6 is similar, except that prefix lengths + range from 0..128." + REFERENCE + "Textual Conventions for Internet Network Addresses. + RFC 3291." + DEFVAL { 0 } + + ::= { frwkIpFilterEntry 5 } + + frwkIpFilterDscp OBJECT-TYPE + SYNTAX DscpOrAny + STATUS current + DESCRIPTION + "The value that the DSCP in the packet can have and + match this filter. A value of -1 indicates that a specific + DSCP value has not been defined and thus all DSCP values + are considered a match." + REFERENCE + "Management Information Base for the Differentiated Services + Architecture. RFC 3289." + DEFVAL { -1 } + + ::= { frwkIpFilterEntry 6 } + + frwkIpFilterFlowId OBJECT-TYPE + SYNTAX Integer32 (-1 | 0..1048575) + STATUS current + DESCRIPTION + "The flow label or flow identifier in an IPv6 header + that may be used to discriminate traffic flows. + The value of -1 for this attribute MUST imply that + any flow label value in the IPv6 header will match, + resulting in the flow label field of the IPv6 header + being ignored for matching this filter entry." + + ::= { frwkIpFilterEntry 7 } + + + +Sahita, et. al. Informational [Page 49] + +RFC 3318 Framework Policy Information Base March 2003 + + + + frwkIpFilterProtocol OBJECT-TYPE + SYNTAX Unsigned32 (0..255) + STATUS current + DESCRIPTION + "The layer-4 protocol Id to match against the IPv4 protocol + number or the IPv6 Next-Header number in the packet. A value + of 255 means match all. Note the protocol number of 255 is + reserved by IANA, and Next-Header number of 0 is used in + IPv6." + DEFVAL { 255 } + + ::= { frwkIpFilterEntry 8 } + + frwkIpFilterDstL4PortMin OBJECT-TYPE + SYNTAX InetPortNumber + STATUS current + DESCRIPTION + "The minimum value that the packet's layer 4 destination + port number can have and match this filter. This value must + be equal to or lesser that the value specified for this + filter in frwkIpFilterDstL4PortMax. + + COPS-PR error code 'attrValueInvalid' must be returned if + the frwkIpFilterSrcL4PortMin is greater than + frwkIpFilterSrcL4PortMax" + REFERENCE + "COPS Usage for Policy Provisioning. RFC 3084, error + codes section 4.5." + DEFVAL { 0 } + + ::= { frwkIpFilterEntry 9 } + + frwkIpFilterDstL4PortMax OBJECT-TYPE + SYNTAX InetPortNumber + STATUS current + DESCRIPTION + "The maximum value that the packet's layer 4 destination + port number can have and match this filter. This value must + be equal to or greater that the value specified for this + filter in frwkIpFilterDstL4PortMin. + + COPS-PR error code 'attrValueInvalid' must be returned if + the frwkIpFilterDstL4PortMax is less than + frwkIpFilterDstL4PortMin" + REFERENCE + "COPS Usage for Policy Provisioning. RFC 3084, error + codes section 4.5." + + + +Sahita, et. al. Informational [Page 50] + +RFC 3318 Framework Policy Information Base March 2003 + + + DEFVAL { 65535 } + + ::= { frwkIpFilterEntry 10 } + + frwkIpFilterSrcL4PortMin OBJECT-TYPE + SYNTAX InetPortNumber + STATUS current + DESCRIPTION + "The minimum value that the packet's layer 4 source port + number can have and match this filter. This value must + be equal to or lesser that the value specified for this + filter in frwkIpFilterSrcL4PortMax. + + COPS-PR error code 'attrValueInvalid' must be returned if + the frwkIpFilterSrcL4PortMin is greated than + frwkIpFilterSrcL4PortMax" + REFERENCE + "COPS Usage for Policy Provisioning. RFC 3084, error + codes section 4.5." + DEFVAL { 0 } + + ::= { frwkIpFilterEntry 11 } + + frwkIpFilterSrcL4PortMax OBJECT-TYPE + SYNTAX InetPortNumber + STATUS current + DESCRIPTION + "The maximum value that the packet's layer 4 source port + number can have and match this filter. This value must be + equal to or greater that the value specified for this filter + in frwkIpFilterSrcL4PortMin. + + COPS-PR error code 'attrValueInvalid' must be returned if + the frwkIpFilterSrcL4PortMax is less than + frwkIpFilterSrcL4PortMin" + REFERENCE + "COPS Usage for Policy Provisioning. RFC error codes + section 4.5." + DEFVAL { 65535 } + + ::= { frwkIpFilterEntry 12 } + + -- + -- The IEEE 802 Filter Table + -- + + frwk802FilterTable OBJECT-TYPE + SYNTAX SEQUENCE OF Frwk802FilterEntry + + + +Sahita, et. al. Informational [Page 51] + +RFC 3318 Framework Policy Information Base March 2003 + + + PIB-ACCESS install + STATUS current + DESCRIPTION + "IEEE 802-based filter definitions. A class that contains + attributes of IEEE 802 (e.g., 802.3) traffic that form + filters that are used to perform traffic classification." + REFERENCE + "IEEE Standards for Local and Metropolitan Area Networks. + Overview and Architecture, ANSI/IEEE Std 802, 1990." + ::= { frwkClassifierClasses 3 } + + frwk802FilterEntry OBJECT-TYPE + SYNTAX Frwk802FilterEntry + STATUS current + DESCRIPTION + "IEEE 802-based filter definitions. An entry specifies + (potentially) several distinct matching components. Each + component is tested against the data in a frame + individually. An overall match occurs when all of the + individual components match the data they are compared + against in the frame being processed. A failure of any + one test causes the overall match to fail. + + Wildcards may be specified for those fields that are not + relevant." + + EXTENDS { frwkBaseFilterEntry } + UNIQUENESS { frwkBaseFilterNegation, + frwk802FilterDstAddr, + frwk802FilterDstAddrMask, + frwk802FilterSrcAddr, + frwk802FilterSrcAddrMask, + frwk802FilterVlanId, + frwk802FilterVlanTagRequired, + frwk802FilterEtherType, + frwk802FilterUserPriority } + + ::= { frwk802FilterTable 1 } + + Frwk802FilterEntry ::= SEQUENCE { + frwk802FilterDstAddr PhysAddress, + frwk802FilterDstAddrMask PhysAddress, + frwk802FilterSrcAddr PhysAddress, + frwk802FilterSrcAddrMask PhysAddress, + frwk802FilterVlanId Integer32, + frwk802FilterVlanTagRequired INTEGER, + frwk802FilterEtherType Integer32, + frwk802FilterUserPriority BITS + + + +Sahita, et. al. Informational [Page 52] + +RFC 3318 Framework Policy Information Base March 2003 + + + } + + frwk802FilterDstAddr OBJECT-TYPE + SYNTAX PhysAddress + STATUS current + DESCRIPTION + "The 802 address against which the 802 DA of incoming + traffic streams will be compared. Frames whose 802 DA + matches the physical address specified by this object, + taking into account address wildcarding as specified by the + frwk802FilterDstAddrMask object, are potentially subject to + the processing guidelines that are associated with this + entry through the related action class." + REFERENCE + "Textual Conventions for SMIv2, RFC 2579." + + ::= { frwk802FilterEntry 1 } + + frwk802FilterDstAddrMask OBJECT-TYPE + SYNTAX PhysAddress + STATUS current + DESCRIPTION + "This object specifies the bits in a 802 destination address + that should be considered when performing a 802 DA + comparison against the address specified in the + frwk802FilterDstAddr object. + + The value of this object represents a mask that is logically + and'ed with the 802 DA in received frames to derive the + value to be compared against the frwk802FilterDstAddr + address. A zero bit in the mask thus means that the + corresponding bit in the address always matches. The + frwk802FilterDstAddr value must also be masked using this + value prior to any comparisons. + + The length of this object in octets must equal the length in + octets of the frwk802FilterDstAddr. Note that a mask with no + bits set (i.e., all zeroes) effectively wildcards the + frwk802FilterDstAddr object." + + ::= { frwk802FilterEntry 2 } + + frwk802FilterSrcAddr OBJECT-TYPE + SYNTAX PhysAddress + STATUS current + DESCRIPTION + "The 802 MAC address against which the 802 MAC SA of + incoming traffic streams will be compared. Frames whose 802 + + + +Sahita, et. al. Informational [Page 53] + +RFC 3318 Framework Policy Information Base March 2003 + + + MAC SA matches the physical address specified by this + object, taking into account address wildcarding as specified + by the frwk802FilterSrcAddrMask object, are potentially + subject to the processing guidelines that are associated + with this entry through the related action class." + + ::= { frwk802FilterEntry 3 } + + frwk802FilterSrcAddrMask OBJECT-TYPE + SYNTAX PhysAddress + STATUS current + DESCRIPTION + "This object specifies the bits in a 802 MAC source address + that should be considered when performing a 802 MAC SA + comparison against the address specified in the + frwk802FilterSrcAddr object. + + The value of this object represents a mask that is logically + and'ed with the 802 MAC SA in received frames to derive the + value to be compared against the frwk802FilterSrcAddr + address. A zero bit in the mask thus means that the + corresponding bit in the address always matches. The + frwk802FilterSrcAddr value must also be masked using this + value prior to any comparisons. + + The length of this object in octets must equal the length in + octets of the frwk802FilterSrcAddr. Note that a mask with no + bits set (i.e., all zeroes) effectively wildcards the + frwk802FilterSrcAddr object." + + ::= { frwk802FilterEntry 4 } + + frwk802FilterVlanId OBJECT-TYPE + SYNTAX Integer32 (-1 | 1..4094) + STATUS current + DESCRIPTION + "The VLAN ID (VID) that uniquely identifies a VLAN + within the device. This VLAN may be known or unknown + (i.e., traffic associated with this VID has not yet + been seen by the device) at the time this entry + is instantiated. + + Setting the frwk802FilterVlanId object to -1 indicates that + VLAN data should not be considered during traffic + classification." + + ::= { frwk802FilterEntry 5 } + + + + +Sahita, et. al. Informational [Page 54] + +RFC 3318 Framework Policy Information Base March 2003 + + + frwk802FilterVlanTagRequired OBJECT-TYPE + SYNTAX INTEGER { + taggedOnly(1), + priorityTaggedPlus(2), + untaggedOnly(3), + ignoreTag(4) + } + STATUS current + DESCRIPTION + "This object indicates whether the presence of an + IEEE 802.1Q VLAN tag in data link layer frames must + be considered when determining if a given frame + matches this 802 filter entry. + + A value of 'taggedOnly(1)' means that only frames + containing a VLAN tag with a non-Null VID (i.e., a + VID in the range 1..4094) will be considered a match. + + A value of 'priorityTaggedPlus(2)' means that only + frames containing a VLAN tag, regardless of the value + of the VID, will be considered a match. + + A value of 'untaggedOnly(3)' indicates that only + untagged frames will match this filter component. + + The presence of a VLAN tag is not taken into + consideration in terms of a match if the value is + 'ignoreTag(4)'." + + ::= { frwk802FilterEntry 6 } + + frwk802FilterEtherType OBJECT-TYPE + SYNTAX Integer32 (-1 | 0..'ffff'h) + STATUS current + DESCRIPTION + "This object specifies the value that will be compared + against the value contained in the EtherType field of an + IEEE 802 frame. Example settings would include 'IP' + (0x0800), 'ARP' (0x0806) and 'IPX' (0x8137). + + Setting the frwk802FilterEtherTypeMin object to -1 indicates + that EtherType data should not be considered during traffic + classification. + + Note that the position of the EtherType field depends on + the underlying frame format. For Ethernet-II encapsulation, + the EtherType field follows the 802 MAC source address. For + 802.2 LLC/SNAP encapsulation, the EtherType value follows + + + +Sahita, et. al. Informational [Page 55] + +RFC 3318 Framework Policy Information Base March 2003 + + + the Organization Code field in the 802.2 SNAP header. The + value that is tested with regard to this filter component + therefore depends on the data link layer frame format being + used. If this 802 filter component is active when there is + no EtherType field in a frame (e.g., 802.2 LLC), a match is + implied." + + ::= { frwk802FilterEntry 7 } + +frwk802FilterUserPriority OBJECT-TYPE + SYNTAX BITS { + matchPriority0(0), + matchPriority1(1), + matchPriority2(2), + matchPriority3(3), + matchPriority4(4), + matchPriority5(5), + matchPriority6(6), + matchPriority7(7) + } + STATUS current + DESCRIPTION + "The set of values, representing the potential range + of user priority values, against which the value contained + in the user priority field of a tagged 802.1 frame is + compared. A test for equality is performed when determining + if a match exists between the data in a data link layer + frame and the value of this 802 filter component. Multiple + values may be set at one time such that potentially several + different user priority values may match this 802 filter + component. + + Setting all of the bits that are associated with this + object causes all user priority values to match this + attribute. This essentially makes any comparisons + with regard to user priority values unnecessary. Untagged + frames are treated as an implicit match." + + ::= { frwk802FilterEntry 8 } + +-- +-- The Internal label filter extension +-- + +frwkILabelFilterTable OBJECT-TYPE + SYNTAX SEQUENCE OF FrwkILabelFilterEntry + PIB-ACCESS install + STATUS current + + + +Sahita, et. al. Informational [Page 56] + +RFC 3318 Framework Policy Information Base March 2003 + + + DESCRIPTION + "Internal label filter Table. This PRC is used to achieve + classification based on the internal flow label set by the + PEP possibly after ingress classification to avoid + re-classification at the egress interface on the same PEP." + + ::= { frwkClassifierClasses 4 } + +frwkILabelFilterEntry OBJECT-TYPE + SYNTAX FrwkILabelFilterEntry + STATUS current + DESCRIPTION + "Internal label filter entry definition." + + EXTENDS { frwkBaseFilterEntry } + UNIQUENESS { frwkBaseFilterNegation, + frwkILabelFilterILabel } + + ::= { frwkILabelFilterTable 1 } + +FrwkILabelFilterEntry ::= SEQUENCE { + frwkILabelFilterILabel OCTET STRING +} + +frwkILabelFilterILabel OBJECT-TYPE + SYNTAX OCTET STRING + STATUS current + DESCRIPTION + "The Label that this flow uses for differentiating traffic + flows. The flow labeling is meant for network device + internal usage. A value of zero length string matches all + internal labels." + ::= { frwkILabelFilterEntry 1 } + +-- +-- The Marker classes group +-- + +frwkMarkerClasses + OBJECT IDENTIFIER ::= { frameworkPib 4 } +-- +-- The 802 Marker Table +-- + +frwk802MarkerTable OBJECT-TYPE + SYNTAX SEQUENCE OF Frwk802MarkerEntry + PIB-ACCESS install + STATUS current + + + +Sahita, et. al. Informational [Page 57] + +RFC 3318 Framework Policy Information Base March 2003 + + + DESCRIPTION + "The 802 Marker class. An 802 packet can be marked with the + specified VLAN id, priority level." + + ::= { frwkMarkerClasses 1 } + +frwk802MarkerEntry OBJECT-TYPE + SYNTAX Frwk802MarkerEntry + STATUS current + DESCRIPTION + "frwk802Marker entry definition." + + PIB-INDEX { frwk802MarkerPrid } + UNIQUENESS { frwk802MarkerVlanId, + frwk802MarkerPriority } + + ::= { frwk802MarkerTable 1 } + +Frwk802MarkerEntry::= SEQUENCE { + frwk802MarkerPrid InstanceId, + frwk802MarkerVlanId Unsigned32, + frwk802MarkerPriority Unsigned32 +} + +frwk802MarkerPrid OBJECT-TYPE + SYNTAX InstanceId + STATUS current + DESCRIPTION + "An integer index to uniquely identify this 802 Marker." + + ::= { frwk802MarkerEntry 1 } + +frwk802MarkerVlanId OBJECT-TYPE + SYNTAX Unsigned32 (1..4094) + STATUS current + DESCRIPTION + "The VLAN ID (VID) that uniquely identifies a VLAN within + the device." + + ::= { frwk802MarkerEntry 2 } + +frwk802MarkerPriority OBJECT-TYPE + SYNTAX Unsigned32 (0..7) + STATUS current + DESCRIPTION + "The user priority field of a tagged 802.1 frame." + + ::= { frwk802MarkerEntry 3 } + + + +Sahita, et. al. Informational [Page 58] + +RFC 3318 Framework Policy Information Base March 2003 + + + +-- +-- The Internal Label Marker Table +-- + +frwkILabelMarkerTable OBJECT-TYPE + SYNTAX SEQUENCE OF FrwkILabelMarkerEntry + PIB-ACCESS install + STATUS current + DESCRIPTION + "The Internal Label Marker class. A flow in a PEP can be + marked with an internal label using this PRC." + + ::= { frwkMarkerClasses 2 } + +frwkILabelMarkerEntry OBJECT-TYPE + SYNTAX FrwkILabelMarkerEntry + STATUS current + DESCRIPTION + "frwkILabelkMarker entry definition." + + PIB-INDEX { frwkILabelMarkerPrid } + UNIQUENESS { frwkILabelMarkerILabel } + + ::= { frwkILabelMarkerTable 1 } + +FrwkILabelMarkerEntry::= SEQUENCE { + frwkILabelMarkerPrid InstanceId, + frwkILabelMarkerILabel OCTET STRING +} + +frwkILabelMarkerPrid OBJECT-TYPE + SYNTAX InstanceId + STATUS current + DESCRIPTION + "An integer index to uniquely identify this Label Marker." + + ::= { frwkILabelMarkerEntry 1 } + +frwkILabelMarkerILabel OBJECT-TYPE + SYNTAX OCTET STRING + STATUS current + DESCRIPTION + "This internal label is implementation specific and may be + used for other policy related functions like flow + accounting purposes and/or other data path treatments." + + ::= { frwkILabelMarkerEntry 2 } + + + +Sahita, et. al. Informational [Page 59] + +RFC 3318 Framework Policy Information Base March 2003 + + + +-- +-- Conformance Section +-- + +frwkBasePibConformance + OBJECT IDENTIFIER ::= { frameworkPib 5 } + +frwkBasePibCompliances + OBJECT IDENTIFIER ::= { frwkBasePibConformance 1 } + +frwkBasePibGroups + OBJECT IDENTIFIER ::= { frwkBasePibConformance 2 } + +frwkBasePibCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "Describes the requirements for conformance to the + Framework PIB." + + MODULE -- this module + MANDATORY-GROUPS { frwkPrcSupportGroup, + frwkPibIncarnationGroup, + frwkDeviceIdGroup, + frwkCompLimitsGroup, + frwkCapabilitySetGroup, + frwkRoleComboGroup, + frwkIfRoleComboGroup } + + OBJECT frwkPibIncarnationLongevity + PIB-MIN-ACCESS notify + DESCRIPTION + "Install support is required if policy expiration is to + be supported." + + OBJECT frwkPibIncarnationTtl + PIB-MIN-ACCESS notify + DESCRIPTION + "Install support is required if policy expiration is to + be supported." + + OBJECT frwkPibIncarnationInCtxtSet + PIB-MIN-ACCESS notify + DESCRIPTION + "Install support is required if configuration contexts + and outsourcing contexts are both to be supported." + + OBJECT frwkPibIncarnationFullState + + + +Sahita, et. al. Informational [Page 60] + +RFC 3318 Framework Policy Information Base March 2003 + + + PIB-MIN-ACCESS notify + DESCRIPTION + "Install support is required if incremental updates to + request states is to be supported." + + GROUP frwkReferenceGroup + DESCRIPTION + "The frwkReferenceGroup is mandatory if referencing + across PIB contexts for specific client-types is to be + supported." + + GROUP frwkErrorGroup + DESCRIPTION + "The frwkErrorGroup is mandatory sending errors in + decisions is to be supported." + + GROUP frwkBaseFilterGroup + DESCRIPTION + "The frwkBaseFilterGroup is mandatory if filtering + based on traffic components is to be supported." + + GROUP frwkIpFilterGroup + DESCRIPTION + "The frwkIpFilterGroup is mandatory if filtering + based on IP traffic components is to be supported." + + GROUP frwk802FilterGroup + DESCRIPTION + "The frwk802FilterGroup is mandatory if filtering + based on 802 traffic criteria is to be supported." + + GROUP frwkILabelFilterGroup + DESCRIPTION + "The frwkILabelFilterGroup is mandatory if filtering + based on PEP internal label is to be supported." + + GROUP frwk802MarkerGroup + DESCRIPTION + "The frwk802MarkerGroup is mandatory if marking a packet + with 802 traffic criteria is to be supported." + + GROUP frwkILabelMarkerGroup + DESCRIPTION + "The frwkILabelMarkerGroup is mandatory if marking a + flow with internal labels is to be supported." + + ::= { frwkBasePibCompliances 1 } + + + + +Sahita, et. al. Informational [Page 61] + +RFC 3318 Framework Policy Information Base March 2003 + + +frwkPrcSupportGroup OBJECT-GROUP + OBJECTS { + frwkPrcSupportPrid, + frwkPrcSupportSupportedPrc, + frwkPrcSupportSupportedAttrs } + STATUS current + DESCRIPTION + "Objects from the frwkPrcSupportTable." + + ::= { frwkBasePibGroups 1 } + +frwkPibIncarnationGroup OBJECT-GROUP + OBJECTS { + frwkPibIncarnationPrid, + frwkPibIncarnationName, + frwkPibIncarnationId, + frwkPibIncarnationLongevity, + frwkPibIncarnationTtl, + frwkPibIncarnationInCtxtSet, + frwkPibIncarnationActive, + frwkPibIncarnationFullState + } + STATUS current + DESCRIPTION + "Objects from the frwkDevicePibIncarnationTable." + + ::= { frwkBasePibGroups 2 } + +frwkDeviceIdGroup OBJECT-GROUP + OBJECTS { + frwkDeviceIdPrid, + frwkDeviceIdDescr, + frwkDeviceIdMaxMsg, + frwkDeviceIdMaxContexts } + STATUS current + DESCRIPTION + "Objects from the frwkDeviceIdTable." + + ::= { frwkBasePibGroups 3 } + +frwkCompLimitsGroup OBJECT-GROUP + OBJECTS { + frwkCompLimitsPrid, + frwkCompLimitsComponent, + frwkCompLimitsAttrPos, + frwkCompLimitsNegation, + frwkCompLimitsType, + frwkCompLimitsSubType, + + + +Sahita, et. al. Informational [Page 62] + +RFC 3318 Framework Policy Information Base March 2003 + + + frwkCompLimitsGuidance } + STATUS current + DESCRIPTION + "Objects from the frwkCompLimitsTable." + + ::= { frwkBasePibGroups 4 } + +frwkReferenceGroup OBJECT-GROUP + OBJECTS { + frwkReferencePrid, + frwkReferenceClientType, + frwkReferenceClientHandle, + frwkReferenceInstance } + STATUS current + DESCRIPTION + "Objects from the frwkReferenceTable." + + ::= { frwkBasePibGroups 5 } + +frwkErrorGroup OBJECT-GROUP + OBJECTS { + frwkErrorPrid, + frwkErrorCode, + frwkErrorSubCode, + frwkErrorPrc, + frwkErrorInstance } + STATUS current + DESCRIPTION + "Objects from the frwkErrorTable." + + ::= { frwkBasePibGroups 6 } + +frwkCapabilitySetGroup OBJECT-GROUP + OBJECTS { + frwkCapabilitySetPrid, + frwkCapabilitySetName, + frwkCapabilitySetCapability } + STATUS current + DESCRIPTION + "Objects from the frwkCapabilitySetTable." + + ::= { frwkBasePibGroups 7 } + +frwkRoleComboGroup OBJECT-GROUP + OBJECTS { + frwkRoleComboPrid, + frwkRoleComboRoles, + frwkRoleComboCapSetName } + + + +Sahita, et. al. Informational [Page 63] + +RFC 3318 Framework Policy Information Base March 2003 + + + STATUS current + DESCRIPTION + "Objects from the frwkRoleComboTable." + + ::= { frwkBasePibGroups 8 } + +frwkIfRoleComboGroup OBJECT-GROUP + OBJECTS { frwkIfRoleComboIfIndex } + STATUS current + DESCRIPTION + "Objects from the frwkIfRoleComboTable." + + ::= { frwkBasePibGroups 9 } + +frwkBaseFilterGroup OBJECT-GROUP + OBJECTS { + frwkBaseFilterPrid, + frwkBaseFilterNegation } + STATUS current + DESCRIPTION + "Objects from the frwkBaseFilterTable." + + ::= { frwkBasePibGroups 10 } + +frwkIpFilterGroup OBJECT-GROUP + OBJECTS { + frwkIpFilterAddrType, + frwkIpFilterDstAddr, + frwkIpFilterDstPrefixLength, + frwkIpFilterSrcAddr, + frwkIpFilterSrcPrefixLength, + frwkIpFilterDscp, + frwkIpFilterFlowId, + frwkIpFilterProtocol, + frwkIpFilterDstL4PortMin, + frwkIpFilterDstL4PortMax, + frwkIpFilterSrcL4PortMin, + frwkIpFilterSrcL4PortMax } + STATUS current + DESCRIPTION + "Objects from the frwkIpFilterTable." + + ::= { frwkBasePibGroups 11 } + +frwk802FilterGroup OBJECT-GROUP + OBJECTS { + frwk802FilterDstAddr, + frwk802FilterDstAddrMask, + + + +Sahita, et. al. Informational [Page 64] + +RFC 3318 Framework Policy Information Base March 2003 + + + frwk802FilterSrcAddr, + frwk802FilterSrcAddrMask, + frwk802FilterVlanId, + frwk802FilterVlanTagRequired, + frwk802FilterEtherType, + frwk802FilterUserPriority } + STATUS current + DESCRIPTION + "Objects from the frwk802FilterTable." + + ::= { frwkBasePibGroups 12 } + +frwkILabelFilterGroup OBJECT-GROUP + OBJECTS { frwkILabelFilterILabel } + STATUS current + DESCRIPTION + "Objects from the frwkILabelFilterTable." + + ::= { frwkBasePibGroups 13 } + +frwk802MarkerGroup OBJECT-GROUP + OBJECTS { + frwk802MarkerPrid, + frwk802MarkerVlanId, + frwk802MarkerPriority } + STATUS current + DESCRIPTION + "Objects from the frwk802MarkerTable." + + ::= { frwkBasePibGroups 14 } + +frwkILabelMarkerGroup OBJECT-GROUP + OBJECTS { + frwkILabelMarkerPrid, + frwkILabelMarkerILabel } + STATUS current + DESCRIPTION + "Objects from the frwkILabelMarkerTable." + + ::= { frwkBasePibGroups 15 } + +END + + + + + + + + + +Sahita, et. al. Informational [Page 65] + +RFC 3318 Framework Policy Information Base March 2003 + + +6. Security Considerations + + It is clear that this PIB is used for configuration using [COPS-PR], + and anything that can be configured can be misconfigured, with a + potentially disastrous effect. At this writing, no security holes + have been identified beyond those that the COPS base protocol + security is itself intended to address. These relate primarily to + controlled access to sensitive information and the ability to + configure a device - or which might result from operator error, which + is beyond the scope of any security architecture. + + There are a number of PRovisioning Classes defined in this PIB that + have a PIB-ACCESS clause of install and install-notify (read-create). + These are: + + frwkPibIncarnationTable: Malicious access of this PRC can cause the + PEP to use an incorrect context of policies. + + frwkReferenceTable: Malicious access of this PRC can cause the PEP to + interpret the installed policy in an incorrect manner. + + frwkErrorTable: Malicious access of this PRC can cause the PEP to + incorrectly assume that the PDP could not process its messages. + + FrwkCapabilitySetTable, frwkRoleComboTable and frwkIfRoleComboTable: + Malicious access of these PRCs can cause the PEP to apply policies to + the wrong interfaces. + + FrwkBaseFilterTable, frwkIpFilterTable, frwk802FilterTable and + frwkILabelFilterTable: Malicious access of these PRCs can cause + unintended classification of traffic on the PEP potentially leading + to incorrect policies being applied. + + frwk802MarkerTable, frwkILabelMarkerTable: Malicious access of these + PRCs can cause unintended marking of traffic on the PEP potentially + leading to incorrect policies being applied. + + Such objects may be considered sensitive or vulnerable in some + network environments. The support for "Install" or "Install-Notify" + decisions sent over [COPS-PR] in a non-secure environment without + proper protection can have a negative effect on network operations. + There are a number of PRovisioning Classes in this PIB that may + contain information that may be sensitive from a business + perspective, in that they may represent a customer's service contract + or the filters that the service provider chooses to apply to a + customer's ingress or egress traffic. There are no PRCs that are + sensitive in their own right, such as passwords or monetary amounts. + It may be important to control even "Notify"(read-only) access to + + + +Sahita, et. al. Informational [Page 66] + +RFC 3318 Framework Policy Information Base March 2003 + + + these PRCs and possibly to even encrypt the values of these PRIs when + sending them over the network via COPS-PR. The use of IPSEC between + the PDP and the PEP, as described in [COPS], provides the necessary + protection against security threats. However, even if the network + itself is secure, there is no control as to who on the secure network + is allowed to "Install/Notify" (read/change/create/delete) the PRIs + in this PIB. + + It is then a customer/user responsibility to ensure that the PEP/PDP + giving access to an instance of this PIB, is properly configured to + give access to only the PRIs and principals (users) that have + legitimate rights to indeed "Install" or "Notify" (change/create/ + delete) them. + +7. IANA Considerations + + This document describes the frameworkPib and frwkTcPib Policy + Information Base (PIB) modules for registration under the "pib" + branch registered with IANA. The IANA has assigned PIB numbers 2 and + 3, respectively. + + Both these PIBs use "all" in the SUBJECT-CATEGORIES clause, i.e., + they apply to all COPS client types. No new COPS client type is to + be registered for these two PIB modules. + +8. References + +8.1 Normative References + + [COPS] Boyle, J., Cohen, R., Durham, D., Herzog, S., Rajan, + R. and A. Sastry, "The COPS (Common Open Policy + Service) Protocol", RFC 2748, January 2000. + + [COPS-PR] Chan, K., Durham, D., Gai, S., Herzog, S., + McCloghrie, K., Reichmeyer, Seligson, J., Smith, A. + and R. Yavatkar, "COPS Usage for Policy + Provisioning", RFC 3084, March 2001. + + [SPPI] McCloghrie, K., Fine, M., Seligson, J., Chan, K., + Hahn, S., Sahita, R., Smith, A. and F. Reichmeyer, + "Structure of Policy Provisioning Information", RFC + 3159, August 2001. + + [SNMP-SMI] McCloghrie, K., Perkins, D., Schoenwaelder, J., + Case, J., Rose, M. and S. Waldbusser, "Structure of + Management Information Version 2 (SMIv2)", STD 58, + RFC 2578, April 1999. + + + + +Sahita, et. al. Informational [Page 67] + +RFC 3318 Framework Policy Information Base March 2003 + + + [INETADDR] Daniele, M., Haberman, B., Routhier, S. and J. + Schoenwaelder, "Textual Conventions for Internet + Network Addresses", RFC 3291, May 2002. + + [802] IEEE Standards for Local and Metropolitan Area + Networks: Overview and Architecture, ANSI/IEEE Std + 802, 1990. + + [SNMPFRWK] Harrington, D., Presuhn, R. and B. Wijnen, "An + Architecture for Describing Simple Network + Management Protocol (SNMP) Management Frameworks", + STD 62, RFC 3411, December 2002. + + [RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces + Group MIB", RFC 2863, June 2000. + + [DS-MIB] Baker, F., Chan, K. and A. Smith, "Management + Information Base for the Differentiated Services + Architecture", RFC 3289, May 2002. + + [SNMPv2TC] McCloghrie, K., Perkins, D., and J. Schoenwaelder, + "Textual Conventions for SMIv2", STD 58, RFC 2579, + April 1999. + + [RFC2279] Yergeau, F. "UTF-8, a transformation format of ISO + 10646", RFC 2279, January 1998. + + [RFC2119] Bradner, S., "Key words to use in the RFCs", BCP 14, + RFC 2119, March 1997. + +8.2 Informative References + + [RAP-FRAMEWORK] Yavatkar, R and D. Pendarakis, "A Framework for + Policy-based Admission Control", RFC 2753, January + 2000. + + [POLTERM] Westerinen, A., Schnizlein, J., Strassner, J., + Scherling, M., Quinn, B., Herzog, S., Huynh, A., + Carlson, M., Perry, J. and S. Waldbusser, + "Terminology for Policy-Based Management", RFC 3198, + November 2001. + +9. Acknowledgments + + Early versions of this specification were also co-authored by Michael + Fine, Francis Reichmeyer, John Seligson and Andrew Smith. + + + + + +Sahita, et. al. Informational [Page 68] + +RFC 3318 Framework Policy Information Base March 2003 + + + Special thanks to Carol Bell, David Durham and Bert Wijnen for their + many significant comments. + + Additional useful comments have been made by Diana Rawlins, Martin + Bokaemper, Tina Iliff, Pedro Da Silva, Juergen Schoenwaelder, + Noisette Yoann and Man Li. + +10. Authors' Addresses + + Ravi Sahita + Intel Labs. + 2111 NE 25th Avenue + Hillsboro, OR 97124 USA + + Phone: +1 503 712 1554 + EMail: ravi.sahita@intel.com + + + Scott Hahn + Intel Corp. + 2111 NE 25th Avenue + Hillsboro, OR 97124 USA + + Phone: +1 503 264 8231 + EMail: scott.hahn@intel.com + + + Kwok Ho Chan + Nortel Networks, Inc. + 600 Technology Park Drive + Billerica, MA 01821 USA + + Phone: +1 978 288 8175 + EMail: khchan@nortelnetworks.com + + + Keith McCloghrie + Cisco Systems, Inc. + 170 West Tasman Drive + San Jose, CA 95134-1706 USA + + Phone: +1 408 526 5260 + EMail: kzm@cisco.com + + + + + + + + +Sahita, et. al. Informational [Page 69] + +RFC 3318 Framework Policy Information Base March 2003 + + +11. Full Copyright Statement + + Copyright (C) The Internet Society (2003). All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that the above copyright notice and this paragraph are + included on all such copies and derivative works. However, this + document itself may not be modified in any way, such as by removing + the copyright notice or references to the Internet Society or other + Internet organizations, except as needed for the purpose of + developing Internet standards in which case the procedures for + copyrights defined in the Internet Standards process must be + followed, or as required to translate it into languages other than + English. + + The limited permissions granted above are perpetual and will not be + revoked by the Internet Society or its successors or assigns. + + This document and the information contained herein is provided on an + "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING + TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION + HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Acknowledgement + + Funding for the RFC Editor function is currently provided by the + Internet Society. + + + + + + + + + + + + + + + + + + + +Sahita, et. al. Informational [Page 70] + |