Subject: Promised ABNF for draft-ietf-policy-qos-schema-00.txt

From: "Ryan Moats" <[email-masked]>
Date: Fri, 10 Mar 2000 10:29:48 -0600

Attached is the promised ABNF for the schema draft.
I still need to do ABNF for the IM draft, which
will be under separate cover (and I'll aim for
end of next week).  This ABNF needs OID
assignment at some point, right now the OIDs are
indicated by <...> placeholders.

Ryan

Some problems/issues I noted:

1. In sections 8.6, 8.7, and 8.12; you can only attach
auxiliary classes to a structural class, so I ignored
the auxiliary class line.  Let me know if these are actually structural
classes.

2. In section 8.6.1 why is the attribute multi-valued?

3. In general, why are you breaking the convention that
auxiliary classes end in auxclass?

4. Attribute definitions are global in LDAP.  Thus
the following sections were removed (I did not renumber
for clarity with the -00 draft): 8.7.1, 8.7.7, 8.7.8,
and 8.7.9

5. In 8.21.2, Equality needs to be caseIgnoreIA5Match

6. In 8.23, it is unclear how qosPolicyPHB hooks into
qosPolicyPHBSet, since the latter has no attributes.

7. In 8.25, this method of tagging won't work if the
directory implementation doesn't record the object class.  You should
consider adding an attribute.

=======ABNF

8.4. Class qosPolicyDomain

   ( <qos-oc-1> NAME 'qosPolicyDomain'
     DESC 'A class that is the root of an administrative QoS
           policy domain, which resides in the policyGroup container.
           It contains a group of named policy containers.'
     SUP policyGroup
     MAY ( qpDomainName $ qpPHBSet )
   )

   ( <qos-oc-1> NAME 'qosPolicyDomain'
     DESC 'Auxiliary classes that may be attached'
     AUX ( policyGroupContainmentAuxClass $
           policyRuleContainmentAuxClass $ policyElementAuxClass $
           qosPolicyElementAuxClass )
   )

8.4.1. The Attribute qpDomainName

   ( <qos-at-1> NAME 'qpDomainName'
     DESC 'A user-friendly name of the QoS policy domain.'
     SYNTAX IA5String SINGLE-VALUE
     EQUALITY CaseExactIA5Match
   )

8.4.2. The Attribute qpPHBSet

   ( <qos-at-2> NAME 'qpPHBSet'
     DESC 'DN reference to the PHB set defined for the domain.'
     SYNTAX DistinguishedName
     EQUALITY DistinguishedNameMatch
   )

8.5. Class qosNamedPolicyContainer

   ( <qos-oc-2> NAME 'qosNamedPolicyContainer'
     DESC 'A class that is a logical and physical container of policies.'
     SUP policyGroup
     MUST ( qpPriority $ qpPolicyRuleMatchMethod )
   )

   ( <qos-oc-2> NAME 'qosNamedPolicyContainer'
     DESC 'Auxiliary classes that may be attached'
     AUX ( policyRuleContainmentAuxClass $ policyElementAuxClass $
           qosPolicyElementAuxClass )
   )

8.5.1. The Attribute qpPriority

   ( <qos-at-3> NAME 'qpPriority'
     DESC 'The priority of a named group of rules in one
           qosPolicyNamedContainer instance compared to other
           qosPolicyNamedContainer instances. If two or
           more qosPolicyNamedContainer objects have the
           same priority, this means that the order
           between these containers is of no importance,
           but that they must each be evaluated before
           other objects that have a numerically lower
           priority.'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.5.2. The Attribute qpPolicyRuleMatchMethod

   ( <qos-at-4> NAME 'qpPolicyRuleMatchMethod'
     DESC 'The decision strategy to be applied on this set
           of qos policy rules by policy servers. Values are
           1="First Match", 2="Match All". Default value is 1.'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.6. Class qosPolicyPRAction

   ( <qos-oc-3> NAME 'qosPolicyPRAction'
     DESC 'A class that defines provisioning DiffServ
           Traffic actions to be applied on a specific
           flow or group of flows, if a certain rule's
           condition is met.'
     SUP policyActionAuxClass AUXILIARY
     MAY ( qpDirection $ qpSetDSCPvalue $ qpMeter $
           qpMeterScope $ qpPRTrfcProf $
           qpOutOfProfileAction $ qpOutOfProfileRemarkValue )
   )

8.6.1. The Attribute qpDirection

   ( <qos-at-5> NAME 'qpDirection'
     DESC 'this attribute defines the direction of the action
           (e.g., the incoming or/and outgoing interfaces).
           Values are 0=In, 1=Out.'
     SYNTAX Integer
     EQUALITY IntegerMatch
   )

8.6.2. The Attribute qpSetDSCPvalue

   ( <qos-at-6> NAME 'qpSetDSCPvalue'
     DESC 'This attribute defines the DSCP value of the
           mark action.'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.6.3. The Attribute qpMeter

   ( <qos-at-7> NAME 'qpMeter'
     DESC 'A DN reference to a qosPolicyMeter object used in
           this provisioning action.'
     SYNTAX DistinguishedName SINGLE-VALUE
     EQUALITY DistinguishedNameMatch
   )

8.6.4. The Attribute qpMeterScope

   ( <qos-at-8> NAME 'qpMeterScope'
     DESC 'An integer that defines the scope of the metering
           action. Values are 0=flow, 1=interface, 2=device'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.6.5. The Attribute qpTrfcProf

   ( <qos-at-9> NAME 'qpTrfcProf'
     DESC 'This attribute contains the DiffServ / provisioning
           Policing instruction value, defined as a DN reference
           to a qosPolicyTrfcProf entry.'
     SYNTAX DistinguishedName SINGLE-VALUE
     EQUALITY DistinguishedNameMatch

8.6.6. The Attribute qpOutOfProfileAction

   ( <qos-at-10> NAME 'qpOutOfProfileAction'
     DESC 'The action to be applied to out of profile
           packets, as defined in the DiffServPolicer entry.
	   Values are 0=shape, 1=discard, 2=remark'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch

8.6.7. The Attribute qpOutOfProfileNetstedAction

   ( <qos-at-11> NAME 'qpOutOfProfileNestedAction'
     DESC 'A DN reference of a qosPolicyPRAction to be applied
           on out of band packets if the OutOfProfile action is
           defined for this flow.
     SYNTAX DistinguishedName SINGLE-VALUE
     EQUALITY DistinguishedNameMatch
   )

8.6.8. The Attribute qpOutOfProfileRemarkValue

   ( <qos-at-12> NAME 'qpOutOfProfileRemarkValue'
     DESC 'The DSCP value to be applied to out of profile
           packets if the OutOfProfile action is defined
           as REMARK.'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.7. Class qosPolicyRSVPAction

   ( <qos-oc-4> NAME 'qosPolicyRSVPAction'
     DESC 'A class that defines an RSVP action to be
           performed if a certain rule's condition is met.'
     SUP policyActionAuxClass AUXILIARY
     MAY ( qpDirection $ qpRSVPMessageType $ qpRSVPStyle $
           qpRSVPServiceType $ qpRSVPInstallAction $
	   qpRSVPCtrlAction $ qpMeter $ qpMeterScope $
	   qpTrfcProf )
   )

8.7.2. The Attribute qpRSVPMessageType

   ( <qos-at-13> NAME 'qpRSVPMessageType'
     DESC 'This attribute defines the type of RSVP message to be
           handled. Values are 0=Path, 1=Resv, 2=ResvErr,
	   3=PathErr'
     SYNTAX Integer
     EQUALITY IntegerMatch
   )

8.7.3. The Attribute qpRSVPStyle

   ( <qos-at-14> NAME 'qpRSVPStyle'
     DESC 'This Property limits the scope of the action to be
           enforced only on RSVP Requests with the specified
           reservation style. The allowed styles are Shared
           Explicit (SE), Fixed Filter (FF) and Wildcard Filter
           (WF) as defined in [RSVP]. Values are 0=SE, 1=FF,
	   2=WF'
     SYNTAX Integer
     EQUALITY IntegerMatch
   )

8.7.4. The Attribute qpRSVPServiceType

   ( <qos-at-15> NAME 'qpRSVPServiceType'
     DESC 'this Property limits the scope of the action to be
           enforced only on RSVP Requests asking for specified
           integrated service type. Values are 1=ControlledLoad
	   2=GuaranteedService, 3=NULL.'
     SYNTAX Integer
     EQUALITY IntegerMatch

8.7.5. The Attribute qpRSVPInstallAction

   ( <qos-at-16> NAME 'qpRSVPInstallAction'
     DESC 'A DN reference to a QosPolicyRSVPInstallAction object
           used in conjunction with the RSVP reservation.'
     SYNTAX DistinguishedName SINGLE-VALUE
     EQUALITY DistinguishedNameMatch
   )

8.7.6. The Attribute qpRSVPCtrlAction

   ( <qos-at-17> NAME 'qpRSVPCtrlAction'
     DESC 'A DN reference to a qpRSVPCtrlAction object used in
           conjunction with the RSVP reservation.'
     SYNTAX DistinguishedName SINGLE-VALUE
     EQUALITY DistinguishedNameMatch
   )

8.8. Class qosPolicyPRTrfcProf

   ( <qos-oc-5> NAME 'qosPolicyPRTrfcProf'
     DESC 'A class that defines the policer or shaper rate
           values to be enforced on a flow or a set of flows.'
     SUP Policy AUXILIARY
     MAY ( qpPRRate $ qpPRNormalBurst $ qpPRExcessBurst )
   )

8.8.1. The Attribute qpPRRate

   ( <qos-at-18> NAME 'qpPRRate'
     DESC 'The token rate used for policing this flow or set of
           flows. It is specified in units of bits/second. A
           rate of zero means that all packets will be out
           of profile.'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.8.2. The Attribute qpPRNormalBurst

   ( <qos-at-19> NAME 'qpPRNormalBurst'
     DESC 'The normal size of a burst measured in bytes'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.8.3. The Attribute qpPRExcessBurst

   ( <qos-at-20> NAME 'qpPRExcessBurst'
     DESC 'The excess size of a burst measured in bytes'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.9.  Class qosPolicyRSVPTrfcProf

   ( <qos-oc-6> NAME 'qosPolicyRSVPTrfcProf'
     DESC 'A class that defines rate limiting values for QoS
           requests for a flow or a set of flow via RSVP
     SUP Policy AUXILIARY
     MAY ( qpRSVPTokenRate $ qpRSVPPeakRate $
           qpRSVPBucketSize $ qpRSVPResvRate $
           qpRSVPResvSlack $ qpRSVPSessionNum $
           qpMinPolicedUnit $ qpMaxPktSize)
   )

8.9.1. The Attribute qpRSVPTokenRate

   ( <qos-at-21> NAME 'qpRSVPTokenRate'
     DESC 'Token Rate parameter, measured in bits/sec'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.9.2. The Attribute qpRSVPPeakRate

   ( <qos-at-22> NAME 'qpRSVPPeakRate'
     DESC 'Peak rate parameter, measured is bits/sec'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.9.3. The Attribute qpRSVPBucketSize

   ( <qos-at-23> NAME 'qpRSVPBucketSize'
     DESC 'Bucket Size, measured in bytes'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.9.4. The Attribute qpRSVPResvRate

   ( <qos-at-24> NAME 'qpRSVPResvRate'
     DESC 'Defines the RSVP Rate. This is the R-Spec parameter
           in the RSVP Guaranteed service reservation. Measured
           in bits/sec.'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.9.5. The Attribute qpRSVPResvSlack

   ( <qos-at-25> NAME 'qpRSVPResvSlack'
     DESC 'Defines the RSVP Slack Termparameter in the RSVP
           Guaranteed service reservation.
           Measured in microseconds.'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.9.6. The Attribute qpRSVPSessionNum

   ( <qos-at-26> NAME 'qpRSVPSessionNum'
     DESC 'The total number of allowed active RSVP sessions.'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.9.7. The Attribute qpMinPolicedUnit

   ( <qos-at-27> NAME 'qpMinPolicedUnit'
     DESC 'Defines the RSVP minimum policed unit, measured
           in bytes.'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.9.8. The Attribute qpMaxPktSize

   ( <qos-at-28> NAME 'qpMaxPktSize'
     DESC 'Defines the RSVP maximum allowed packet size,
           measured in bytes.'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.10. Class qosPolicyRSVPSignalCtrlAction

   ( <qos-oc-7> NAME 'qosPolicyRSVPSignalCtrlAction'
     DESC 'Actions modifying the behavior and content of RSVP
           Signaling flows.'
     SUP 'policyActionAuxClass' AUXILIARY
     MAY ( qpForwardingMode $ qpSendError $ qpReplaceDSCP $
           qpReplacePreemptionPriority $
	   qpReplaceDefendingPriority )
   )

8.10.1. The Attribute qpForwardingMode

   ( <qos-at-29> NAME 'qpForwardingMode'
     DESC 'Defines whether to forward or return RSVP signaling.
           Values are 1=Forward, 2=Proxy.'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.10.2. The Attribute qpSendError

   ( <qos-at-30> NAME 'qpSendError'
     DESC 'Defines whether to send an RSVP error and warning
           message. Values are 0=No, 1=Yes'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.10.3. The Attribute qpReplaceDSCP

   ( <qos-at-31> NAME 'qpReplaceDSCP'
     DESC 'This attribute allows the replacement of a DCLASS
           object carrying a DSCP value in an RSVP message.
	   Values are 0=Replace, 1=Don\'t Replace.'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.10.4. The Attribute qpReplacePreemptionPriority

   ( <qos-at-32> NAME 'qpReplacePreemptionPriority'
     DESC 'A positive integer value specifying the preemption
           priority that should be carried by RSVP messages.
	   Default value is 0.'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.10.5. The Attribute qpReplaceDefendingPriority

   ( <qos-at-33> NAME 'qpReplaceDefendingPriority'
     DESC 'This attribute allows replacing or adding of
           preemption priority [RSVP_PREEMP] objects to RSVP
           messages. It specifies the defending priority within
           the preemption object. Default value is 0'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.11. Class qosPolicyRSVPInstallAction

   ( <qos-oc-8> NAME 'qosPolicyRSVPInstallAction'
     DESC 'A class that defines actions to be administered on a PEP.'
     SUP policyActionAuxClass AUXILIARY
     MAY ( qpSetDSCPValue $ qpSetDefendingPriority $
           qpSetPreemptionPriority )

8.11.1. The Attribute qpSetDSCPValue

   ( <qos-at-34> NAME 'qpSetDSCPValue'
     DESC 'Defines the value the PEP must use to remark the flow
           signaled by the RSVP request.'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.11.2. The Attribute qpSetDefendingPriority

   ( <qos-at-35> NAME 'qpSetDefendingPriority'
     DESC 'This attribute allows setting the preemption priority
           [RSVP_PREEMP] of RSVP flows. It specifies the
           defending priority within the preemption object.
	   Default value is 0'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.11.3. The Attribute qpSetPreemptionPriority

   ( <qos-at-36> NAME 'qpSetPreemptionPriority'
     DESC 'This attribute allows setting the preemption priority
           [RSVP_PREEMP] of RSVP flows. Default value is 0.'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.12. Class qosPolicySimpleCondition (Aux)

   ( <qos-oc-9> NAME 'qosPolicySimpleCondition'
     DESC 'A class that represents a single Boolean condition. A
           group of conditions make up a Boolean expression.
           A simple condition is made of the triple
           <Variable - relation - Value>'
     SUP policyConditionAuxClass AUXILIARY
     MAY ( qpOperator $ qpVariableAtom $ qpValueAtom )

8.12.1. The Attribute qpOperator

   ( <qos-at-37> NAME 'qpOperator'
     DESC 'The relation between a variable and a value, stored
           in a directory entry. Default value is "match"'
     SYNTAX DirectoryString SINGLE-VALUE
     EQUALITY CaseIgnoreString
   )

8.12.2. The Attribute qpVariableAtom

   ( <qos-at-38> NAME 'qpVariableAtom'
     DESC 'A reference to a variable, stored in a directory
           entry'
     SYNTAX DistinguishedName SINGLE-VALUE
     EQUALITY DistinguishedNameMatch
   )

8.12.3. The Attribute qpValueAtom

   ( <qos-at-39> NAME 'qpValueAtom'
     DESC 'A reference to a value, stored in a directory entry'
     SYNTAX DistinguishedName SINGLE-VALUE
     EQUALITY DistinguishedNameMatch
   )

8.13. Class qosPolicyVariable

   ( <qos-oc-10> NAME 'qosPolicyVariable'
     DESC 'A class that represents a single variable in a
           Boolean condition'
     SUP Policy AUXILIARY
     MAY ( qpVariableName $ qpValueTypes $
           qpVariableDescription $ qpValueConstraints )
   )

8.13.1. The Attribute qpVariableName

   ( <qos-at-40> NAME 'qpVariableName'
     DESC 'A unique name for the variable.'
     SYNTAX IA5String SINGLE-VALUE
     EQUALITY CaseExactIA5Match
   )

8.13.2   The Attribute qpValueTypes

   ( <qos-at-41> NAME 'qpValueTypes'
     DESC 'A list of class names of possible value types
           that can be associated with this variable in a
           condition'
     SYNTAX IA5String
     EQUALITY caseIgnoreIA5StringMatch
   )

8.13.3.  The Attribute qpVariableDescription

   ( <qos-at-42> NAME 'qpVariableDescription'
     DESC 'A textual description of the variable'
     SYNTAX DirectoryString SINGLE-VALUE
     EQUALITY CaseIgnoreMatch
   )

8.13.4. The Attribute qpValueConstraints

   ( <qos-at-43> NAME 'qpValueConstraints'
     DESC 'A list of DNs of the objects serving
           as constraints for this variable.'
     SYNTAX DistinguishedName
     EQUALITY DistinguishedNameMatch
   )

8.14. Class qosPolicyValue

   ( <qos-oc-11> NAME 'qosPolicyValue'
     DESC 'This class is used as an abstract class for
           defining values and  constants used in policy
           conditions'
     SUP Policy ABSTRACT
   )

8.15. Class qosPolicyIPv4AddrValue

   ( <qos-oc-12> NAME 'qosPolicyIPv4AddrValue'
     DESC 'This class is used to define a list of IPv4
           addresses and address range values'
     SUP qosPolicyValue AUXILIARY
     MAY ( qpIPv4AddrList )
   )

8.15.1. The Attribute qpIPv4AddrList

   ( <qos-at-44> NAME 'qpIPv4AddrList'
     DESC 'A list of IP addresses and IP address ranges. The format
           for entries in this list is either:
           1. A single IPv4address in dot notation as defined above.
           Example: 121.1.1.2
           2. A single Hostname. Hostname format MUST follow
	   guidelines and restrictions specified in [NAMES].
           Example: www.bigcompany.com
           3. An IPv4range address range defined above, specified
	   by a start address in dot notation and an end address
	   in dot notation, separated by "..". The range includes
	   all addresses between the range's start and end addresses,
	   including the start and end addresses.
	   Example: 1.1.22.1..1.1.22.5
	   4. An IPv4maskedaddress address range defined above,
	   specified by an address and mask. The address and mask
	   are represented in dot notation separated by a comma ",".
	   Example: 2.3.128.0,255.255.248.0.
	   5. An IPv4prefix address range defined above specified by
	   an address and a prefix length separated by "/".
	   Example: 2.3.128.0/15'
     SYNTAX IA5String
     EQUALITY caseIgnoreIA5Match
   )

8.16. Class qosPolicyIPv6AddrValue

   ( <qos-oc-13> NAME 'qosPolicyIPv6AddrValue'
     DESC 'This class is used to define a list of IPv6
           addresses and IPv6 address range values.'
     SUP qosPolicyValue AUXILIARY
     MAY ( qpIPv6AddrList )
   )

8.16.1. The Attribute qpIPv6AddrList

   ( <qos-at-45> NAME 'qpIPv6AddrList'
     DESC 'A list of IPv6 addresses and IPv6 address ranges.
           An entry in this list may be one of the following:
	   1. A single IPv6address as defined by the following
	   ABNF:
	      IPv6address = hexpart [ ":" IPv4address ]
	      IPv4address = 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT
			   "." 1*3DIGIT
	      hexpart = hexseq | hexseq "::" [ hexseq ] |
		        "::" [ hexseq ]
	      hexseq  = hex4 *( ":" hex4)
	      hex4    = 1*4HEXDIG
	   2. A single Hostname. Hostname format MUST follow
	   guidelines and restrictions specified in [NAMES].
	   Example: www.bigcompany.com
	   3. An IPv6range address range, specified by a start
	   address in dot notation and an end address in dot
	   notation, separated by "..":
	   IPv6range = IPv6address".."IPv6address
	   The range includes all addresses between the range's
	   start and end addresses, including the start and end
	   addresses.
	   4. An IPv4maskedaddress address range defined above
	   specified by an address and mask. The address and mask
	   are represented in dot notation separated by a comma ",":
	   IPv6maskedaddress = IPv6address","IPv6address
	   5. A single IPv6prefix:
	   IPv6prefix  = hexpart "/" 1*2DIGIT'
     SYNTAX IA5String
     EQUALITY caseIgnoreIA5Match
   )

8.17. Class qosPolicyMACAddrValue

   ( qos-oc-14> NAME 'qosPolicyMACAddrValue'
     DESC 'This class is used to define a list of MAC
           addresses and MAC address range values.'
     SUP qosPolicyValue AUXILIARY
     MAY ( qpMACAddrList )
   )

8.17.1. The Attribute qpMACAddrList

   ( <qos-at-45> NAME 'qpMACAddrList'
     DESC 'A list of MAC addresses and MAC address ranges.
           Entries are MAC addresses or MAC address ranges:
	   1. A single MAC address.
	   Example: 0000:00A5:0000
	   2. A MACmaskedaddress address range defined specified
	   by an address and mask. The mask specifies the relevant
	   bits in the address.
	   Example: 0000:00A5:0000, FFFF:FFFF:0000 defines a range
	   of MAC addresses in which the first 4 8-bit bytes are
	   equal to 0000:00A5.'
     SYNTAX IA5String
     EQUALITY caseIgnoreIA5Match
   )

8.18. Class qosPolicyStringValue

   ( <qos-oc-15> NAME 'qosPolicyStringValue'
     DESC 'This class is used to define a list of string
           values with wildcards'
     SUP qosPolicyValue AUXILIARY
     MAY ( qpStringList )
   )

8.18.1. The Attribute qpStringList

   ( <qos-at-46> NAME 'qpStringList'
     DESC 'A list of string values with wildcards.'
     SYNTAX IA5String
     EQUALITY CaseIgnoreIA5Match
   )

8.19 Class qosPolicyBitStringValue

   ( <qos-oc-16> NAME 'qosPolicyBitStringValue'
     DESC 'This class is used to define a list of bit
           string values.'
     SUP qosPolicyValue AUXILIARY
     MAY ( qpBitStringList )
   )

8.19.1. The Attribute qpBitStringList

   ( <qos-at-47> NAME 'qpBitStringList'
     DESC 'A list of bit string values. Each string entry
           is either:
	   1. A single bit string. Example: 00111010
	   2. A range of bit strings specifies using a bit
	   string and a bit mask. The bit string and mask
	   must have the same number of bits specified. The
	   mask bit string specifies the significant bits in
	   the bit string value. For example, 110110, 100110
	   and 110111 would match the maskedBitString
	   100110,101110 but 100100 would not.'
     SYNTAX IA5String
     EQUALITY CaseIgnoreIA5Match
   )

8.20. Class qosPolicyDNValue

   ( <qos-oc-17> NAME 'qosPolicyDNValue'
     DESC 'This class is used to define a list of DN
           values with wildcards.'
     SUP qosPolicyValue AUXILIARY
     MAY ( qpDNList )
   )

8.20.1. The Attribute qpDNList

   ( <qos-at-48> NAME 'qpDNList'
     DESC 'A list of DN string values with wildcards'
     SYNTAX IA5String
     EQUALITY CaseIgnoreIA5Match
   )

8.21. Class qosPolicyAttributeValue

   ( <qos-oc-18> NAME 'qosPolicyAttributeValue'
     DESC 'This class is used to define an attribute and a
           list of its values.'
     SUP qosPolicyValue AUXILIARY
     MAY ( qpAttributeName $ qpAttributeValueList )
   )

8.21.1. The Attribute qpAttributeName

   ( <qos-at-49> NAME 'qpAttributeName'
     DESC 'This is the name of an attribute that the list
           of values should be compared with'
     SYNTAX IA5String SINGLE-VALUE
     EQUALITY CaseIgnoreIA5Match
   )

8.21.2. The Attribute qpAttributeValueList

   ( <qos-at-50> NAME 'qpAttributeValueList'
     DESC 'A list of attribute values. Each value is
           compared to a value of the attribute specified
           by qpAttributeName.'
     SYNTAX IA5String
     EQUALITY CaseIgnoreIA5Match
   )

8.22. Class qosPolicyIntegerValue

   ( <qos-oc-19> NAME 'qosPolicyIntegerValue'
     DESC 'This class is used to define Integer values'
     SUP 'qosPolicyValue' AUXILIARY
     MAY ( qpIntegerList )
   )

8.22.1. The Attribute qpIntegerList

   ( <qos-at-51> NAME 'qpIntegerList'
     DESC 'This attribute provides an unordered list of integers
	   and integer range values. The format of the attribute
	   can take on of the following forms:
	   1. An integer value.
	   2. A range of integers. The range is specifies by a
	   start integer and an end integer separated by "..".
	   The range includes all integers between start and end
	   integers, including the start and end integers. To
	   represent a range of integers that is not bounded, the
	   reserved word INFINITY can be used as the end range
	   integer.'
     SYNTAX IA5string
     EQUALITY caseIgnoreIA5Match
   )

8.23. Class qosPolicyPHBSet

   ( <qos-oc-20> NAME 'qosPolicyPHBSet'
     DESC 'This class defines a set of PHB definitions'
     SUP policy AUXILIARY
   )

8.24. Class qosPolicyPHB

   ( <qos-oc-21> NAME 'qosPolicyPHB'
     DESC 'This class defines a single service class in a
           PHB set.'
     SUP Policy ABSTRACT
     MAY ( qpDSCP )
   )

8.24.1. The attribute qpDSCP

   ( <qos-at-52> NAME 'qpDSCP'
     DESC 'An integer in the range 0..63, representing the
           service classes in the domain that are used for
           classification.'
     SYNTAX Integer SINGLE-VALUE
     EQUALITY IntegerMatch
   )

8.25. Class qosPolicyElementAuxClass

   ( <qos-oc-22> NAME 'qosPolicyElementAuxClass'
     DESC 'An auxiliary class used to tag instances of
           classes defined outside the realm of qos policy as
           relevant to a particular policy specification.'
     SUP policyElementAuxClass AUXILIARY
   )

---

From: "Yoram Snir" <[email-masked]>
Date: Sun, 12 Mar 2000 16:53:13 +0200

Ryan
Thanks for the ABNF representation and your valuable comments.
Please see my comments inline.

Yoram Snir
Cisco Systems
Tel.   972-9-9700085
Mobile 972-54-970085

> -----Original Message-----
> From: Ryan Moats [mailto:[email-masked]]
> Sent: Friday, March 10, 2000 6:30 PM
> To: Ron Cohen (E-mail); John Strassner; Yoram Ramberg; Yoram Snir
> Cc: Policy Mailing List
> Subject: Promised ABNF for draft-ietf-policy-qos-schema-00.txt
>
>
True, the idea here is that the traffic profiles and meter classes should be
attached to the same structural object the actions are attached to. Will be
fixed in our next version.

> 2. In section 8.6.1 why is the attribute multi-valued?

Because a policy action can be done on incoming flows (qpDirection = 0{IN}),
out going flows (qpDirection = 1{OUT}) or both, incoming AND out going
(qpDirection = 0{IN}, 1{out}).

> auxiliary classes end in auxclass?

It looked a bit awkward, especially when thinking that each of the auxiliary
object, can be instantiated as a reusable object (using the policy Instance
class). If people feel we should stick with the current convention, we will
add the auxclass suffix to the class names.

> for clarity with the -00 draft): 8.7.1, 8.7.7, 8.7.8,
True, these sections should refer to a single definition, will be fixed in
the next version.

> 5. In 8.21.2, Equality needs to be caseIgnoreIA5Match

True, will be fixed in the next version.

> qosPolicyPHBSet, since the latter has no attributes.

Please take a look at the PHB LDAP representation draft:
http://search.ietf.org/internet-drafts/draft-ronc-domain-phb-set-ldap-rep-00
.txt

We tried to allow different abstract definition of per hop behaviors, the
above is our proposal.

> consider adding an attribute.

We extended the PolicyElementAuxClass, that extends the Policy class, with
out adding any attributes, so we think we can follow the same mechanism as
defined in the core schema, i.e., add "QOS POLICY" to the keyword attribute
for such systems.
We will add this recommendation to the draft.

Thanks again.

---

From: "Yoram Snir" <[email-masked]>
Date: Mon, 13 Mar 2000 09:55:27 +0200

Please see inline.

Yoram Snir
Cisco Systems
Tel.   972-9-9700085
Mobile 972-54-970085

> From: Ryan Moats [mailto:[email-masked]]
> Sent: Monday, March 13, 2000 1:01 AM
> To: Ryan Moats; [email-masked]; [email-masked]; [email-masked];
> [email-masked]
> Cc: [email-masked]
> Subject: RE: Promised ABNF for draft-ietf-policy-qos-schema-00.txt
>
>
> My responses...
>
> | >
> | > 6. In 8.23, it is unclear how qosPolicyPHB hooks into
> | > qosPolicyPHBSet, since the latter has no attributes.
> |
> | Please take a look at the PHB LDAP representation draft:
> |
> |
> | We tried to allow different abstract definition of per hop
> behaviors, the
> | above is our proposal.
>
> Please add some text then to 8.23 because I looked through both
> the QoS Info Model and Schema drafts and didn't see the discussion
> in the URL above references clearly anywhere (it may have been there,
> but I certainly missed it.

OK, but this section, IMO, needs to remain just a place holder for PHB
definition which is of the scope of this draft.

>
> Having looked at the URL above, I've got some comments on it,
> but I'll put that under separate cover.

OK, great.