tech-invite   World Map     

IETF     RFCs     Groups     SIP     ABNFs    |    3GPP     Specs     Glossaries     Architecture     IMS     UICC    |    search

RFC 4807

 
 
 

IPsec Security Policy Database Configuration MIB

Part 2 of 3, p. 8 to 37
Prev RFC Part       Next RFC Part

 


prevText      Top      Up      ToC       Page 8 
6.  MIB Definition

   The following MIB Module imports from: [RFC2578], [RFC2579],
   [RFC2580], [RFC2863], [RFC3289], [RFC3411], and [RFC4001].  It also
   uses definitions from [RFC1108], [RFC3060], and [RFC3629].


IPSEC-SPD-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, Integer32,
    Unsigned32, mib-2            FROM SNMPv2-SMI
                                        -- [RFC2578]

    TEXTUAL-CONVENTION, RowStatus, TruthValue,
    TimeStamp, StorageType, VariablePointer
                                        FROM SNMPv2-TC
                                        -- [RFC2579]

Top      Up      ToC       Page 9 
    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
                                        FROM SNMPv2-CONF
                                        -- [RFC2580]

    InterfaceIndex
                                        FROM IF-MIB
                                        -- [RFC2863]

    diffServMIBMultiFieldClfrGroup, IfDirection,
    diffServMultiFieldClfrNextFree
                                        FROM DIFFSERV-MIB
                                        -- [RFC3289]

    InetAddressType, InetAddress
                                        FROM INET-ADDRESS-MIB
                                        -- [RFC4001]

    SnmpAdminString                     FROM SNMP-FRAMEWORK-MIB
                                        -- [RFC3411]

    ;

--
-- module identity
--

spdMIB MODULE-IDENTITY
    LAST-UPDATED "200702070000Z"    -- 7 February 2007
    ORGANIZATION "IETF IP Security Policy Working Group"
    CONTACT-INFO "Michael Baer
                  P.O. Box 72682
                  Davis, CA 95617
                  Phone: +1 530 902 3131
                  Email: baerm@tislabs.com

                  Ricky Charlet
                  Email: rcharlet@alumni.calpoly.edu

                  Wes Hardaker
                  Sparta, Inc.
                  P.O. Box 382
                  Davis, CA  95617
                  Phone: +1 530 792 1913
                  Email: hardaker@tislabs.com

                  Robert Story
                  Revelstone Software
                  PO Box 1812

Top      Up      ToC       Page 10 
                  Tucker, GA 30085
                  Phone: +1 770 617 3722
                  Email: rstory@ipsp.revelstone.com

                  Cliff Wang
                  ARO
                  4300 S. Miami Blvd.
                  Durham, NC 27703
                  E-Mail: cliffwangmail@yahoo.com"
    DESCRIPTION
     "This MIB module defines configuration objects for managing
      IPsec Security Policies.  In general, this MIB can be
      implemented anywhere IPsec security services exist (e.g.,
      bump-in-the-wire, host, gateway, firewall, router, etc.).

      Copyright (C) The IETF Trust (2007).  This version of
      this MIB module is part of RFC 4807; see the RFC itself for
      full legal notices."

-- Revision History

    REVISION     "200702070000Z"    -- 7 February 2007
    DESCRIPTION  "Initial version, published as RFC 4807."

    ::= { mib-2 153 }

--
-- groups of related objects
--

spdConfigObjects         OBJECT IDENTIFIER
     ::= { spdMIB 1 }
spdNotificationObjects   OBJECT IDENTIFIER
     ::= { spdMIB 2 }
spdConformanceObjects    OBJECT IDENTIFIER
     ::= { spdMIB 3 }
spdActions               OBJECT IDENTIFIER
     ::= { spdMIB 4 }

--
-- Textual Conventions
--

SpdBooleanOperator ::= TEXTUAL-CONVENTION
    STATUS   current
    DESCRIPTION
        "The SpdBooleanOperator operator is used to specify
         whether sub-components in a decision-making process are

Top      Up      ToC       Page 11 
         ANDed or ORed together to decide if the resulting
         expression is true or false."
    SYNTAX      INTEGER { or(1), and(2) }

SpdAdminStatus ::= TEXTUAL-CONVENTION
    STATUS   current
    DESCRIPTION
        "The SpdAdminStatus is used to specify the administrative
         status of an object.  Objects that are disabled MUST NOT
         be used by the packet processing engine."
    SYNTAX      INTEGER { enabled(1), disabled(2) }

SpdIPPacketLogging ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS   current
    DESCRIPTION
        "SpdIPPacketLogging specifies whether an audit message
         SHOULD be logged if a packet is passed through a Security
         Association (SA) and if some of that packet is included in
         the log event.  A value of '-1' indicates no logging.  A
         value of '0' or greater indicates that logging SHOULD be
         done and indicates the number of bytes starting at the
         beginning of the packet to place in the log.  Values greater
         than the size of the packet being processed indicate that
         the entire packet SHOULD be sent.

         Examples:
         '-1' no logging
         '0'  log but do not include any of the packet in the log
         '20' log and include the first 20 bytes of the packet
              in the log."

    SYNTAX      Integer32 (-1..65535)


SpdTimePeriod ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "31t"
    STATUS       current
    DESCRIPTION
        "This property identifies an overall range of calendar dates
         and time.  In a boolean context, a value within this time
         range, inclusive, is considered true.

         This information is encoded as an octet string using
         the UTF-8 transformation format described in STD 63,
         RFC 3629.

         It uses the format suggested in RFC 3060.  An octet string

Top      Up      ToC       Page 12 
         represents a start date and time and an end date and time.
         For example:

         yyyymmddThhmmss/yyyymmddThhmmss

         Where: yyyy = year     mm = month     dd = day
                  hh = hour     mm = minute    ss = second

         The first 'yyyymmddThhmmss' sub-string indicates the start
         date and time.  The second 'yyyymmddThhmmss' sub-string
         indicates the end date and time.  The character 'T' within
         these sub-strings indicates the beginning of the time
         portion of each sub-string.  The solidus character '/'
         separates the start from the end date and time.  The end
         date and time MUST be subsequent to the start date and
         time.

         There are also two allowed substitutes for a
         'yyyymmddThhmmss' sub-string: one for the start date and
         time, and one for the end date and time.

         If the start date and time are replaced with the string
         'THISANDPRIOR', this sub-string would indicate the current
         date and time and the previous dates and time.

         If the end date and time are replaced with the string
         'THISANDFUTURE', this sub-string would indicate the current
         date and time and the subsequent dates and time.

         Any of the following SHOULD be considered a
         'wrongValue' error:
         - Setting a value with the end date and time earlier than
           or equal to the start date and time.
         - Setting the start date and time to 'THISANDFUTURE'.
         - Setting the end date and time to 'THISANDPRIOR'."
    REFERENCE "RFC 3060, 3269"
    SYNTAX      OCTET STRING (SIZE (0..31))
--
-- Policy group definitions
--

spdLocalConfigObjects OBJECT IDENTIFIER
     ::= { spdConfigObjects 1 }

spdIngressPolicyGroupName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..32))
    MAX-ACCESS  read-write
    STATUS      current

Top      Up      ToC       Page 13 
    DESCRIPTION
        "This object indicates the global system policy group that
        is to be applied on ingress packets (i.e., arriving at an
        interface from a network) when a given endpoint does not
        contain a policy definition in the spdEndpointToGroupTable.
        Its value can be used as an index into the
        spdGroupContentsTable to retrieve a list of policies.  A
        zero length string indicates that no system-wide policy exists
        and the default policy of 'drop' SHOULD be executed for
        ingress packets until one is imposed by either this object
        or by the endpoint processing a given packet.

        This object MUST be persistent"
    DEFVAL { "" }
    ::= { spdLocalConfigObjects 1 }

spdEgressPolicyGroupName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(0..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object indicates the policy group containing the
         global system policy that is to be applied on egress
         packets (i.e., packets leaving an interface and entering a
         network) when a given endpoint does not contain a policy
         definition in the spdEndpointToGroupTable.  Its value can
         be used as an index into the spdGroupContentsTable to
         retrieve a list of policies.  A zero length string
         indicates that no system-wide policy exists and the default
         policy of 'drop' SHOULD be executed for egress packets
         until one is imposed by either this object or by the
         endpoint processing a given packet.

         This object MUST be persistent"
    DEFVAL { "" }
    ::= { spdLocalConfigObjects 2 }


spdEndpointToGroupTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF SpdEndpointToGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table maps policies (groupings) onto an endpoint
         (interface).  A policy group assigned to an endpoint is then
         used to control access to the network traffic passing
         through that endpoint.

Top      Up      ToC       Page 14 
         If an endpoint has been configured with a policy group and
         no rule within that policy group matches that packet, the
         default action in this case SHALL be to drop the packet.

         If no policy group has been assigned to an endpoint, then
         the policy group specified by spdIngressPolicyGroupName MUST
         be used on traffic inbound from the network through that
         endpoint, and the policy group specified by
         spdEgressPolicyGroupName MUST be used for traffic outbound
         to the network through that endpoint."
    ::= { spdConfigObjects 2 }

spdEndpointToGroupEntry OBJECT-TYPE
    SYNTAX      SpdEndpointToGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A mapping assigning a policy group to an endpoint."

    INDEX { spdEndGroupDirection, spdEndGroupInterface }
    ::= { spdEndpointToGroupTable 1 }

SpdEndpointToGroupEntry ::= SEQUENCE {
    spdEndGroupDirection                      IfDirection,
    spdEndGroupInterface                      InterfaceIndex,
    spdEndGroupName                           SnmpAdminString,
    spdEndGroupLastChanged                    TimeStamp,
    spdEndGroupStorageType                    StorageType,
    spdEndGroupRowStatus                      RowStatus
}

spdEndGroupDirection OBJECT-TYPE
    SYNTAX      IfDirection
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object indicates which direction of packets crossing
         the interface are associated with which spdEndGroupName
         object.  Ingress packets, or packets into the device match
         when this value is inbound(1).  Egress packets or packets
         out of the device match when this value is outbound(2)."
    ::= { spdEndpointToGroupEntry 1 }

spdEndGroupInterface OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION

Top      Up      ToC       Page 15 
        "This value matches the IF-MIB's ifTable's ifIndex column
         and indicates the interface associated with a given
         endpoint.  This object can be used to uniquely identify an
         endpoint that a set of policy groups are applied to."
    ::= { spdEndpointToGroupEntry 2 }

spdEndGroupName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(1..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The policy group name to apply at this endpoint.  The
         value of the spdEndGroupName object is then used as an
         index into the spdGroupContentsTable to come up with a list
         of rules that MUST be applied at this endpoint."
    ::= { spdEndpointToGroupEntry 3 }

spdEndGroupLastChanged OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of sysUpTime when this row was last modified
         or created either through SNMP SETs or by some other
         external means.

         If this row has not been modified since the last
         re-initialization of the network management subsystem, this
         object SHOULD have a zero value."
    ::= { spdEndpointToGroupEntry 4 }

spdEndGroupStorageType OBJECT-TYPE
    SYNTAX      StorageType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The storage type for this row.  Rows in this table that
         were created through an external process MAY have a storage
         type of readOnly or permanent.

         For a storage type of permanent, none of the columns have
         to be writable."
    DEFVAL { nonVolatile }
    ::= { spdEndpointToGroupEntry 5 }

spdEndGroupRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create

Top      Up      ToC       Page 16 
    STATUS      current
    DESCRIPTION
        "This object indicates the conceptual status of this row.

         The value of this object has no effect on whether other
         objects in this conceptual row can be modified.

         This object is considered 'notReady' and MUST NOT be set to
         active until one or more active rows exist within the
         spdGroupContentsTable for the group referenced by the
         spdEndGroupName object."
    ::= { spdEndpointToGroupEntry 6 }

--
-- policy group definition table
--

spdGroupContentsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF SpdGroupContentsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains a list of rules and/or subgroups
         contained within a given policy group.  For a given value
         of spdGroupContName, the set of rows sharing that value
         forms a 'group'.  The rows in a group MUST be processed
         according to the value of the spdGroupContPriority object
         in each row.  The processing MUST be executed starting with
         the lowest value of spdGroupContPriority and in ascending
         order thereafter.

         If an action is executed as the result of the processing of
         a row in a group, the processing of further rows in that
         group MUST stop.  Iterating to the next policy group row by
         finding the next largest spdGroupContPriority object SHALL
         only be done if no actions were run while processing the
         current row for a given packet."
    ::= { spdConfigObjects 3 }

spdGroupContentsEntry OBJECT-TYPE
    SYNTAX      SpdGroupContentsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Defines a given sub-component within a policy group.  A
         sub-component is either a rule or another group as
         indicated by spdGroupContComponentType and referenced by
         spdGroupContComponentName."

Top      Up      ToC       Page 17 
    INDEX   { spdGroupContName, spdGroupContPriority }
    ::= { spdGroupContentsTable 1 }

SpdGroupContentsEntry ::= SEQUENCE {
    spdGroupContName                        SnmpAdminString,
    spdGroupContPriority                    Integer32,
    spdGroupContFilter                      VariablePointer,
    spdGroupContComponentType               INTEGER,
    spdGroupContComponentName               SnmpAdminString,
    spdGroupContLastChanged                 TimeStamp,
    spdGroupContStorageType                 StorageType,
    spdGroupContRowStatus                   RowStatus
}

spdGroupContName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(1..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The administrative name of the group associated with this
        row.  A 'group' is formed by all the rows in this table that
        have the same value of this object."
    ::= { spdGroupContentsEntry 1 }

spdGroupContPriority OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The priority (sequence number) of the sub-component in
         a group that this row represents.  This value indicates
         the order that each row of this table MUST be processed
         from low to high.  For example, a row with a priority of 0
         is processed before a row with a priority of 1, a 1 before
         a 2, etc."
    ::= { spdGroupContentsEntry 2 }

spdGroupContFilter OBJECT-TYPE
    SYNTAX      VariablePointer
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "spdGroupContFilter points to a filter that is evaluated
         to determine whether the spdGroupContComponentName within
         this row is exercised.  Managers can use this object to
         classify groups of rules, or subgroups, together in order to
         achieve a greater degree of control and optimization over
         the execution order of the items within the group.  If the

Top      Up      ToC       Page 18 
         filter evaluates to false, the rule or subgroup will be
         skipped and the next rule or subgroup will be evaluated
         instead.  This value can be used to indicate a scalar or
         row in a table.  When indicating a row in a table, this
         value MUST point to the first column instance in that row.

         An example usage of this object would be to limit a
         group of rules to executing only when the IP packet
         being processed is designated to be processed by IKE.
         This effectively creates a group of IKE-specific rules.

         The following tables and scalars can be pointed to by this
         column.  All but diffServMultiFieldClfrTable are defined in
         this MIB:

                diffServMultiFieldClfrTable
                spdIpOffsetFilterTable
                spdTimeFilterTable
                spdCompoundFilterTable
                spdTrueFilter
                spdIpsoHeaderFilterTable

         Implementations MAY choose to provide support for other
         filter tables or scalars.

         If this column is set to a VariablePointer value, which
         references a non-existent row in an otherwise supported
         table, the inconsistentName exception MUST be returned.  If
         the table or scalar pointed to by the VariablePointer is
         not supported at all, then an inconsistentValue exception
         MUST be returned.

         If, during packet processing, a row in this table is applied
         to a packet and the value of this column in that row
         references a non-existent or non-supported object, the
         packet MUST be dropped."
    REFERENCE "RFC 3289"
    DEFVAL { spdTrueFilterInstance }
    ::= { spdGroupContentsEntry 3 }

spdGroupContComponentType OBJECT-TYPE
    SYNTAX      INTEGER { group(1), rule(2) }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Indicates whether the spdGroupContComponentName object
         is the name of another group defined within the
         spdGroupContentsTable or is the name of a rule defined

Top      Up      ToC       Page 19 
         within the spdRuleDefinitionTable."
    DEFVAL { rule }
    ::= { spdGroupContentsEntry 4 }

spdGroupContComponentName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(1..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The name of the policy rule or subgroup contained within
         this row, as indicated by the spdGroupContComponentType
         object."
    ::= { spdGroupContentsEntry 5 }

spdGroupContLastChanged OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of sysUpTime when this row was last modified
         or created either through SNMP SETs or by some other
         external means.

         If this row has not been modified since the last
         re-initialization of the network management subsystem,
         this object SHOULD have a zero value."
    ::= { spdGroupContentsEntry 6 }

spdGroupContStorageType OBJECT-TYPE
    SYNTAX      StorageType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The storage type for this row.  Rows in this table that
         were created through an external process MAY have a storage
         type of readOnly or permanent.

         For a storage type of permanent, none of the columns have
         to be writable."
    DEFVAL { nonVolatile }
    ::= { spdGroupContentsEntry 7 }

spdGroupContRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object indicates the conceptual status of this row.

Top      Up      ToC       Page 20 
         The value of this object has no effect on whether other
         objects in this conceptual row can be modified.

         This object MUST NOT be set to active until the row to
         which the spdGroupContComponentName points to exists and is
         active.

         If active, this object MUST remain active unless one of the
         following two conditions are met:

         I.  No active row in spdEndpointToGroupTable exists that
             references this row's group (i.e., indicate this row's
             spdGroupContName).

         II. Or at least one other active row in this table has a
             matching spdGroupContName.

         If neither condition is met, an attempt to set this row to
         something other than active MUST result in an
         inconsistentValue error."
    ::= { spdGroupContentsEntry 8 }


--
-- policy definition table
--

spdRuleDefinitionTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF SpdRuleDefinitionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table defines a rule by associating a filter
         or a set of filters to an action to be executed."
    ::= { spdConfigObjects 4 }

spdRuleDefinitionEntry OBJECT-TYPE
    SYNTAX      SpdRuleDefinitionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A row defining a particular rule definition.  A rule
         definition binds a filter pointer to an action pointer."
    INDEX   { spdRuleDefName }
    ::= { spdRuleDefinitionTable 1 }

SpdRuleDefinitionEntry ::= SEQUENCE {
    spdRuleDefName                          SnmpAdminString,

Top      Up      ToC       Page 21 
    spdRuleDefDescription                   SnmpAdminString,
    spdRuleDefFilter                        VariablePointer,
    spdRuleDefFilterNegated                 TruthValue,
    spdRuleDefAction                        VariablePointer,
    spdRuleDefAdminStatus                   SpdAdminStatus,
    spdRuleDefLastChanged                   TimeStamp,
    spdRuleDefStorageType                   StorageType,
    spdRuleDefRowStatus                     RowStatus
}

spdRuleDefName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(1..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "spdRuleDefName is the administratively assigned name of
         the rule referred to by the spdGroupContComponentName
         object."
    ::= { spdRuleDefinitionEntry 1 }

spdRuleDefDescription OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A user defined string.  This field MAY be used for
         administrative tracking purposes."
    DEFVAL { "" }
    ::= { spdRuleDefinitionEntry 2 }

spdRuleDefFilter OBJECT-TYPE
    SYNTAX      VariablePointer
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "spdRuleDefFilter points to a filter that is used to
         evaluate whether the action associated with this row is
         executed or not.  The action will only execute if the
         filter referenced by this object evaluates to TRUE after
         first applying any negation required by the
         spdRuleDefFilterNegated object.

         The following tables and scalars can be pointed to by this
         column.  All but diffServMultiFieldClfrTable are defined in
         this MIB.  Implementations MAY choose to provide support
         for other filter tables or scalars as well:

                diffServMultiFieldClfrTable

Top      Up      ToC       Page 22 
                spdIpOffsetFilterTable
                spdTimeFilterTable
                spdCompoundFilterTable
                spdTrueFilter

         If this column is set to a VariablePointer value, which
         references a non-existent row in an otherwise supported
         table, the inconsistentName exception MUST be returned.  If
         the table or scalar pointed to by the VariablePointer is
         not supported at all, then an inconsistentValue exception
         MUST be returned.

         If, during packet processing, this column has a value that
         references a non-existent or non-supported object, the
         packet MUST be dropped."
    REFERENCE "RFC 3289"
    ::= { spdRuleDefinitionEntry 3 }

spdRuleDefFilterNegated OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "spdRuleDefFilterNegated specifies whether or not the results of
         the filter referenced by the spdRuleDefFilter object is
         negated."
    DEFVAL { false }
    ::= { spdRuleDefinitionEntry 4 }

spdRuleDefAction OBJECT-TYPE
    SYNTAX      VariablePointer
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This column points to the action to be taken.  It MAY,
         but is not limited to, point to a row in one of the
         following tables:

            spdCompoundActionTable
            ipsaSaPreconfiguredActionTable
            ipiaIkeActionTable
            ipiaIpsecActionTable

         It MAY also point to one of the scalar objects beneath
         spdStaticActions.

         If this object is set to a pointer to a row in an
         unsupported (or unknown) table, an inconsistentValue

Top      Up      ToC       Page 23 
         error MUST be returned.

         If this object is set to point to a non-existent row in an
         otherwise supported table, an inconsistentName error MUST
         be returned.

         If, during packet processing, this column has a value that
         references a non-existent or non-supported object, the
         packet MUST be dropped."
    ::= { spdRuleDefinitionEntry 5 }

spdRuleDefAdminStatus OBJECT-TYPE
    SYNTAX      SpdAdminStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Indicates whether the current rule definition is considered
         active.  If the value is enabled, the rule MUST be evaluated
         when processing packets.  If the value is disabled, the
         packet processing MUST continue as if this rule's filter
         had effectively failed."
    DEFVAL { enabled }
    ::= { spdRuleDefinitionEntry 6 }

spdRuleDefLastChanged OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of sysUpTime when this row was last modified
         or created either through SNMP SETs or by some other
         external means.

         If this row has not been modified since the last
         re-initialization of the network management subsystem, this
         object SHOULD have a zero value."
    ::= { spdRuleDefinitionEntry 7 }

spdRuleDefStorageType OBJECT-TYPE
    SYNTAX      StorageType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The storage type for this row.  Rows in this table that
         were created through an external process MAY have a
         storage type of readOnly or permanent.

         For a storage type of permanent, none of the columns have

Top      Up      ToC       Page 24 
         to be writable."
    DEFVAL { nonVolatile }
    ::= { spdRuleDefinitionEntry 8 }

spdRuleDefRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object indicates the conceptual status of this row.

         The value of this object has no effect on whether other
         objects in this conceptual row can be modified.

         This object MUST NOT be set to active until the containing
         conditions, filters, and actions have been defined.  Once
         active, it MUST remain active until no active
         policyGroupContents entries are referencing it.  A failed
         attempt to do so MUST return an inconsistentValue error."
    ::= { spdRuleDefinitionEntry 9 }

--
-- Policy compound filter definition table
--

spdCompoundFilterTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF SpdCompoundFilterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table defining compound filters and their associated
         parameters.  A row in this table can be pointed to by a
         spdRuleDefFilter object."
    ::= { spdConfigObjects 5 }

spdCompoundFilterEntry OBJECT-TYPE
    SYNTAX      SpdCompoundFilterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the spdCompoundFilterTable.  Each entry in this
         table represents a compound filter.  A filter defined by
         this table is considered to have a TRUE return value if and
         only if:

         spdCompFiltLogicType is AND and all of the sub-filters
         associated with it, as defined in the spdSubfiltersTable,
         are all true themselves (after applying any required

Top      Up      ToC       Page 25 
         negation, as defined by the ficFilterIsNegated object).

         spdCompFiltLogicType is OR and at least one of the
         sub-filters associated with it, as defined in the
         spdSubfiltersTable, is true itself (after applying any
         required negation, as defined by the ficFilterIsNegated
         object."
    INDEX       { spdCompFiltName }
    ::= { spdCompoundFilterTable 1 }

SpdCompoundFilterEntry ::= SEQUENCE {
    spdCompFiltName                          SnmpAdminString,
    spdCompFiltDescription                   SnmpAdminString,
    spdCompFiltLogicType                     SpdBooleanOperator,
    spdCompFiltLastChanged                   TimeStamp,
    spdCompFiltStorageType                   StorageType,
    spdCompFiltRowStatus                     RowStatus
}

spdCompFiltName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(1..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A user definable string.  This value is used as an index
         into this table."
    ::= { spdCompoundFilterEntry 1 }

spdCompFiltDescription OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A user definable string.  This field MAY be used for
         your administrative tracking purposes."
    DEFVAL { "" }
    ::= { spdCompoundFilterEntry 2 }

spdCompFiltLogicType OBJECT-TYPE
    SYNTAX      SpdBooleanOperator
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Indicates whether the sub-component filters of this
         compound filter are functionally ANDed or ORed together."
    DEFVAL { and }
    ::= { spdCompoundFilterEntry 3 }

Top      Up      ToC       Page 26 
spdCompFiltLastChanged OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of sysUpTime when this row was last modified
         or created either through SNMP SETs or by some other
         external means.

         If this row has not been modified since the last
         re-initialization of the network management subsystem, this
         object SHOULD have a zero value."
    ::= { spdCompoundFilterEntry 4 }

spdCompFiltStorageType OBJECT-TYPE
    SYNTAX      StorageType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The storage type for this row.  Rows in this table that
         were created through an external process MAY have a
         storage type of readOnly or permanent.

         For a storage type of permanent, none of the columns have
         to be writable."
    DEFVAL { nonVolatile }
    ::= { spdCompoundFilterEntry 5 }

spdCompFiltRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object indicates the conceptual status of this row.

         The value of this object has no effect on whether other
         objects in this conceptual row can be modified.

         Once active, it MUST NOT have its value changed if any
         active rows in the spdRuleDefinitionTable are currently
         pointing at this row."
    ::= { spdCompoundFilterEntry 6 }

--
-- Policy filters in a cf table
--

spdSubfiltersTable OBJECT-TYPE

Top      Up      ToC       Page 27 
    SYNTAX      SEQUENCE OF SpdSubfiltersEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table defines a list of filters contained within a
         given compound filter defined in the
         spdCompoundFilterTable."
    ::= { spdConfigObjects 6 }

spdSubfiltersEntry OBJECT-TYPE
    SYNTAX      SpdSubfiltersEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the spdSubfiltersTable.  There is an entry in
         this table for each sub-filter of all compound filters
         present in the spdCompoundFilterTable."
    INDEX       {  spdCompFiltName, spdSubFiltPriority }
    ::= { spdSubfiltersTable 1 }

SpdSubfiltersEntry ::= SEQUENCE {
    spdSubFiltPriority                      Integer32,
    spdSubFiltSubfilter                     VariablePointer,
    spdSubFiltSubfilterIsNegated            TruthValue,
    spdSubFiltLastChanged                   TimeStamp,
    spdSubFiltStorageType                   StorageType,
    spdSubFiltRowStatus                     RowStatus
}

spdSubFiltPriority OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The priority of a given filter within a compound filter.
         The order of execution is from lowest to highest priority
         value (i.e., priority 0 before priority 1, 1 before 2,
         etc.).  Implementations MAY choose to follow this ordering,
         as set by the manager that created the rows.  This can allow
         a manager to intelligently construct filter lists such that
         faster filters are evaluated first."
    ::= { spdSubfiltersEntry 1 }

spdSubFiltSubfilter OBJECT-TYPE
    SYNTAX      VariablePointer
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION

Top      Up      ToC       Page 28 
        "The OID of the contained filter.  The value of this
         object is a VariablePointer that references the filter to
         be included in this compound filter.

         The following tables and scalars can be pointed to by this
         column.  All but diffServMultiFieldClfrTable are defined in
         this MIB.  Implementations MAY choose to provide support
         for other filter tables or scalars as well:

                diffServMultiFieldClfrTable
                spdIpsoHeaderFilterTable
                spdIpOffsetFilterTable
                spdTimeFilterTable
                spdCompoundFilterTable
                spdTrueFilter

         If this column is set to a VariablePointer value that
         references a non-existent row in an otherwise supported
         table, the inconsistentName exception MUST be returned.  If
         the table or scalar pointed to by the VariablePointer is
         not supported at all, then an inconsistentValue exception
         MUST be returned.

         If, during packet processing, this column has a value that
         references a non-existent or non-supported object, the
         packet MUST be dropped."
    REFERENCE "RFC 3289"
    ::= { spdSubfiltersEntry 2 }

spdSubFiltSubfilterIsNegated OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Indicates whether or not the result of applying this sub-filter
         is negated."
    DEFVAL { false }
    ::= { spdSubfiltersEntry 3 }

spdSubFiltLastChanged OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of sysUpTime when this row was last modified
         or created either through SNMP SETs or by some other
         external means.

Top      Up      ToC       Page 29 
         If this row has not been modified since the last
         re-initialization of the network management subsystem, this
         object SHOULD have a zero value."
    ::= { spdSubfiltersEntry 4 }

spdSubFiltStorageType OBJECT-TYPE
    SYNTAX      StorageType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The storage type for this row.  Rows in this table that
         were created through an external process MAY have a
         storage type of readOnly or permanent.

         For a storage type of permanent, none of the columns have
         to be writable."
    DEFVAL { nonVolatile }
    ::= { spdSubfiltersEntry 5 }

spdSubFiltRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object indicates the conceptual status of this row.

         The value of this object has no effect on whether other
         objects in this conceptual row can be modified.

         This object cannot be made active until a filter
         referenced by the spdSubFiltSubfilter object is both
         defined and active.  An attempt to do so MUST result in
         an inconsistentValue error.

         If active, this object MUST remain active unless one of the
         following two conditions are met:

         I.  No active row in the SpdCompoundFilterTable exists
             that has a matching spdCompFiltName.

         II. Or, at least one other active row in this table has a
             matching spdCompFiltName.

         If neither condition is met, an attempt to set this row to
         something other than active MUST result in an
         inconsistentValue error."
    ::= { spdSubfiltersEntry 6 }

Top      Up      ToC       Page 30 
--
-- Static Filters
--

spdStaticFilters OBJECT IDENTIFIER ::= { spdConfigObjects 7 }

spdTrueFilter OBJECT-TYPE
        SYNTAX      Integer32 (1)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "This scalar indicates a (automatic) true result for
             a filter.  That is, this is a filter that is always
             true; it is useful for adding as a default filter for a
             default action or a set of actions."
        ::= { spdStaticFilters 1 }


spdTrueFilterInstance OBJECT IDENTIFIER ::= { spdTrueFilter 0 }


--
-- Policy IP Offset filter definition table
--

spdIpOffsetFilterTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF SpdIpOffsetFilterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains a list of filter definitions to be
         used within the spdRuleDefinitionTable or the
         spdSubfiltersTable.

         This type of filter is used to compare an administrator
         specified octet string to the octets at a particular
         location in a packet."
    ::= { spdConfigObjects 8 }

spdIpOffsetFilterEntry OBJECT-TYPE
    SYNTAX      SpdIpOffsetFilterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A definition of a particular filter."
    INDEX       {  spdIpOffFiltName }
    ::= { spdIpOffsetFilterTable 1 }

Top      Up      ToC       Page 31 
SpdIpOffsetFilterEntry ::= SEQUENCE {
    spdIpOffFiltName                         SnmpAdminString,
    spdIpOffFiltOffset                       Unsigned32,
    spdIpOffFiltType                         INTEGER,
    spdIpOffFiltValue                        OCTET STRING,
    spdIpOffFiltLastChanged                  TimeStamp,
    spdIpOffFiltStorageType                  StorageType,
    spdIpOffFiltRowStatus                    RowStatus
}

spdIpOffFiltName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(1..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The administrative name for this filter."
    ::= { spdIpOffsetFilterEntry 1 }

spdIpOffFiltOffset OBJECT-TYPE
    SYNTAX      Unsigned32 (0..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This is the byte offset from the front of the entire IP
         packet where the value or arithmetic comparison is done.  A
         value of '0' indicates the first byte of the packet header.
         If this value is greater than the length of the packet, the
         filter represented by this row should be considered to
         fail."
    ::= { spdIpOffsetFilterEntry 2 }

spdIpOffFiltType OBJECT-TYPE
    SYNTAX INTEGER { equal(1),
                     notEqual(2),
                     arithmeticLess(3),
                     arithmeticGreaterOrEqual(4),
                     arithmeticGreater(5),
                     arithmeticLessOrEqual(6) }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This defines the various tests that are used when
         evaluating a given filter.

         The various tests definable in this table are as follows:

         equal:
           - Tests if the OCTET STRING, 'spdIpOffFiltValue', matches

Top      Up      ToC       Page 32 
             a value in the packet starting at the given offset in
             the packet and comparing the entire OCTET STRING of
             'spdIpOffFiltValue'.  Any values compared this way are
             assumed to be unsigned integer values in network byte
             order of the same length as 'spdIpOffFiltValue'.

         notEqual:
           - Tests if the OCTET STRING, 'spdIpOffFiltValue', does
             not match a value in the packet starting at the given
             offset in the packet and comparing to the entire OCTET
             STRING of 'spdIpOffFiltValue'.  Any values compared
             this way are assumed to be unsigned integer values in
             network byte order of the same length as
             'spdIpOffFiltValue'.

         arithmeticLess:
           - Tests if the OCTET STRING, 'spdIpOffFiltValue', is
             arithmetically less than ('<') the value starting at
             the given offset within the packet.  The value in the
             packet is assumed to be an unsigned integer in network
             byte order of the same length as 'spdIpOffFiltValue'.

         arithmeticGreaterOrEqual:
           - Tests if the OCTET STRING, 'spdIpOffFiltValue', is
             arithmetically greater than or equal to ('>=') the
             value starting at the given offset within the packet.
             The value in the packet is assumed to be an unsigned
             integer in network byte order of the same length as
             'spdIpOffFiltValue'.

         arithmeticGreater:
           - Tests if the OCTET STRING, 'spdIpOffFiltValue', is
             arithmetically greater than ('>') the value starting at
             the given offset within the packet.  The value in the
             packet is assumed to be an unsigned integer in network
             byte order of the same length as 'spdIpOffFiltValue'.

         arithmeticLessOrEqual:
           - Tests if the OCTET STRING, 'spdIpOffFiltValue', is
             arithmetically less than or equal to ('<=') the value
             starting at the given offset within the packet.  The
             value in the packet is assumed to be an unsigned
             integer in network byte order of the same length as
             'spdIpOffFiltValue'."

    ::= { spdIpOffsetFilterEntry 3 }

spdIpOffFiltValue OBJECT-TYPE

Top      Up      ToC       Page 33 
    SYNTAX      OCTET STRING (SIZE(1..1024))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "spdIpOffFiltValue is used for match comparisons of a
         packet at spdIpOffFiltOffset."
    ::= { spdIpOffsetFilterEntry 4 }

spdIpOffFiltLastChanged OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of sysUpTime when this row was last modified
         or created either through SNMP SETs or by some other
         external means.

         If this row has not been modified since the last
         re-initialization of the network management subsystem, this
         object SHOULD have a zero value."
    ::= { spdIpOffsetFilterEntry 5 }


spdIpOffFiltStorageType OBJECT-TYPE
    SYNTAX      StorageType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The storage type for this row.  Rows in this table that
         were created through an external process MAY have a
         storage type of readOnly or permanent.

         For a storage type of permanent, none of the columns have
         to be writable."
    DEFVAL { nonVolatile }
    ::= { spdIpOffsetFilterEntry 6 }

spdIpOffFiltRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object indicates the conceptual status of this row.

         The value of this object has no effect on whether other
         objects in this conceptual row can be modified.

         If active, this object MUST remain active if it is

Top      Up      ToC       Page 34 
         referenced by an active row in another table.  An attempt
         to set it to anything other than active while it is
         referenced by an active row in another table MUST result in
         an inconsistentValue error."
    ::= { spdIpOffsetFilterEntry 7 }


--
-- Time/scheduling filter table
--

spdTimeFilterTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF SpdTimeFilterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Defines a table of filters that can be used to
         effectively enable or disable policies based on a valid
         time range."
    ::= { spdConfigObjects 9 }

spdTimeFilterEntry OBJECT-TYPE
    SYNTAX      SpdTimeFilterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A row describing a given time frame for which a policy
         is filtered on to activate or deactivate the rule.

         If all the column objects in a row are true for the current
         time, the row evaluates as 'true'.  More explicitly, the
         time matching column objects in a row MUST be logically
         ANDed together to form the boolean true/false for the row."
    INDEX   { spdTimeFiltName }
    ::= { spdTimeFilterTable 1 }

SpdTimeFilterEntry ::= SEQUENCE {
    spdTimeFiltName                 SnmpAdminString,
    spdTimeFiltPeriod               SpdTimePeriod,
    spdTimeFiltMonthOfYearMask      BITS,
    spdTimeFiltDayOfMonthMask       OCTET STRING,
    spdTimeFiltDayOfWeekMask        BITS,
    spdTimeFiltTimeOfDayMask        SpdTimePeriod,
    spdTimeFiltLastChanged          TimeStamp,
    spdTimeFiltStorageType          StorageType,
    spdTimeFiltRowStatus            RowStatus
}

Top      Up      ToC       Page 35 
spdTimeFiltName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(1..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An administratively assigned name for this filter."
    ::= { spdTimeFilterEntry 1 }


spdTimeFiltPeriod OBJECT-TYPE
    SYNTAX      SpdTimePeriod
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The valid time period for this filter.  This column is
         considered 'true' if the current time is within the range of
         this object."
    DEFVAL { "THISANDPRIOR/THISANDFUTURE" }
    ::= { spdTimeFilterEntry 2 }


spdTimeFiltMonthOfYearMask OBJECT-TYPE
    SYNTAX      BITS { january(0), february(1), march(2),
                       april(3), may(4), june(5), july(6),
                       august(7), september(8), october(9),
                       november(10), december(11) }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A bit mask that indicates acceptable months of the year.
         This column evaluates to 'true' if the current month's bit
         is set."
    DEFVAL { { january, february, march, april, may, june, july,
               august, september, october, november, december } }
    ::= { spdTimeFilterEntry 3 }

spdTimeFiltDayOfMonthMask OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(8))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Defines which days of the month the current time is
         valid for.  It is a sequence of 64 BITS, where each BIT
         represents a corresponding day of the month in forward or
         reverse order.  Starting from the left-most bit, the first
         31 bits identify the day of the month, counting from the
         beginning of the month.  The following 31 bits (bits 32-62)
         indicate the day of the month, counting from the end of the

Top      Up      ToC       Page 36 
         month.  For months with fewer than 31 days, the bits that
         correspond to the non-existent days of that month are
         ignored (e.g., for non-leap year Februarys, bits 29-31 and
         60-62 are ignored).

         This column evaluates to 'true' if the current day of the
         month's bit is set.

         For example, a value of 0X'80 00 00 01 00 00 00 00'
         indicates that this column evaluates to true on the first
         and last days of the month.

         The last two bits in the string MUST be zero."
    DEFVAL { 'fffffffffffffffe'H }
    ::= { spdTimeFilterEntry 4 }

spdTimeFiltDayOfWeekMask OBJECT-TYPE
    SYNTAX      BITS { sunday(0), monday(1), tuesday(2),
                       wednesday(3), thursday(4), friday(5),
                       saturday(6) }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A bit mask that defines which days of the week that the current
         time is valid for.  This column evaluates to 'true' if the
         current day of the week's bit is set."
    DEFVAL { { monday, tuesday, wednesday, thursday, friday,
               saturday, sunday } }
    ::= { spdTimeFilterEntry 5 }

spdTimeFiltTimeOfDayMask OBJECT-TYPE
    SYNTAX      SpdTimePeriod
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Indicates the start and end time of the day for which this
         filter evaluates to true.  The date portions of the
         spdTimePeriod TC are ignored for purposes of evaluating this
         mask, and only the time-specific portions are used.

         This column evaluates to 'true' if the current time of day
         is within the range of the start and end times of the day
         indicated by this object."
    DEFVAL { "00000000T000000/00000000T240000" }
    ::= { spdTimeFilterEntry 6 }

spdTimeFiltLastChanged OBJECT-TYPE
    SYNTAX      TimeStamp

Top      Up      ToC       Page 37 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of sysUpTime when this row was last modified
         or created either through SNMP SETs or by some other
         external means.

         If this row has not been modified since the last
         re-initialization of the network management subsystem, this
         object SHOULD have a zero value."
    ::= { spdTimeFilterEntry 7 }

spdTimeFiltStorageType OBJECT-TYPE
    SYNTAX      StorageType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The storage type for this row.  Rows in this table that
         were created through an external process MAY have a storage
         type of readOnly or permanent.

         For a storage type of permanent, none of the columns have
         to be writable."
    DEFVAL { nonVolatile }
    ::= { spdTimeFilterEntry 8 }

spdTimeFiltRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object indicates the conceptual status of this
         row.

         The value of this object has no effect on whether other
         objects in this conceptual row can be modified.

         If active, this object MUST remain active if it is
         referenced by an active row in another table.  An attempt
         to set it to anything other than active while it is
         referenced by an active row in another table MUST result in
         an inconsistentValue error."
    ::= { spdTimeFilterEntry 9 }

--
-- IPSO protection authority filtering
--


Next RFC Part