Network Working Group                                      T. Dietz, Ed.
Internet-Draft                                          NEC Europte Ltd.
Expires: April 27, 2006                                        B. Claise
                                                           Cisco Systems
                                                        October 24, 2005


           Definitions of Managed Objects for Packet Sampling
                      draft-ietf-psamp-mib-05.txt

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on April 27, 2006.

Copyright Notice

   Copyright (C) The Internet Society (2005).

Abstract

   This memo defines managed objects for sampling and filtering
   techniques for IP packet selection.  These objects provide
   information about managed nodes supporting packet sampling, including
   packet sampling capabilities, configuration and statistics.  They
   also allow to configure packet sampling concerning the IP interface
   at which packets are sampled, the packet selections methods used for
   sampling, and the collector to which packet samples are exported.



Dietz & Claise         draft-ietf-psamp-mib-05.txt              [Page 1]


Internet-Draft                  PSAMP MIB                   October 2005


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.1.  Points of Discussion . . . . . . . . . . . . . . . . . . .  3
   2.  PSAMP Documents Overview . . . . . . . . . . . . . . . . . . .  6
   3.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . . .  6
     3.1.  Base Association . . . . . . . . . . . . . . . . . . . . .  6
   4.  The Internet-Standard Management Framework . . . . . . . . . .  6
   5.  Structure of the PSAMP MIB module  . . . . . . . . . . . . . .  7
     5.1.  TEXTUAL CONVENTIONS  . . . . . . . . . . . . . . . . . . .  7
     5.2.  The Selection Methods  . . . . . . . . . . . . . . . . . .  8
       5.2.1.  Selecting All Packets  . . . . . . . . . . . . . . . .  8
       5.2.2.  Systematic Count-based Sampling  . . . . . . . . . . .  8
       5.2.3.  Systematic Time-based Sampling . . . . . . . . . . . .  9
       5.2.4.  Random n-out-of-N Sampling . . . . . . . . . . . . . .  9
       5.2.5.  Uniform Probabilistic Sampling . . . . . . . . . . . .  9
       5.2.6.  Non-Uniform Probabilistic Sampling . . . . . . . . . .  9
       5.2.7.  Flow State Sampling  . . . . . . . . . . . . . . . . . 10
       5.2.8.  Match Filtering  . . . . . . . . . . . . . . . . . . . 10
       5.2.9.  Hash Filtering . . . . . . . . . . . . . . . . . . . . 10
       5.2.10. Router State Filtering . . . . . . . . . . . . . . . . 11
     5.3.  The Hash Functions . . . . . . . . . . . . . . . . . . . . 12
     5.4.  The Reporting  . . . . . . . . . . . . . . . . . . . . . . 12
     5.5.  The Base Associations  . . . . . . . . . . . . . . . . . . 12
   6.  Definition . . . . . . . . . . . . . . . . . . . . . . . . . . 14
   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 60
   8.  Acknowledgment . . . . . . . . . . . . . . . . . . . . . . . . 60
   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 60
     9.1.  Normative References . . . . . . . . . . . . . . . . . . . 60
     9.2.  Informative References . . . . . . . . . . . . . . . . . . 61
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 62
   Intellectual Property and Copyright Statements . . . . . . . . . . 63



















Dietz & Claise         draft-ietf-psamp-mib-05.txt              [Page 2]


Internet-Draft                  PSAMP MIB                   October 2005


1.  Introduction

   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 RFC 2119 [8].

   This document is a product of the Packet Sampling (PSAMP) working
   group.  Its purpose is to define standards-based MIB modules for
   monitoring and configuring PSAMP devices performing packet selection
   by sampling, filtering and hashing.

   It is assumed that packet sampling is performed according to the
   framework defined in [1].  Packet selection methods considered in the
   MIB module are specified in [2].  Configuration of the export of
   packet samples to a collector is modeled according to [3].

1.1.  Points of Discussion

   This section covers the open issues, still to be resolved/updated in
   this draft.

   MIB-1: Title should include sampling and filtering not only sampling.
      The titles of all documents not only the MIB document should
      reflect that.

   MIB-2: We are missing some examples, such as slide 8 of PSAMP-MIB-
      IETF60.ppt.  It is planned to integrate a entity relationship
      diagram plus some examples in the next version.  Examples should
      always display named OIDs otherwise they are difficult to
      understand.

   MIB-3: Do we want to be consistent with the upper cases in the
      terminology?  Do we want to say a note about it in the terminology
      section.  Something such as: "all terms in upper cases are defined
      in..." or "all referenced terminology are written with an upper
      case"

   MIB-4: The following caese definitively requires some more
      explanation, with some examples.

      *  When you refers to an OID for the interface, you don't specify
         if we need the OID for the ifIndex, for the ifDescr, for
         something else

      *  When you refer to an OID for a function, an example is needed

      *  When you refer to an OID for set of input parameters, which OID
         do we need?  What if there are multiple indexes in the table?



Dietz & Claise         draft-ietf-psamp-mib-05.txt              [Page 3]


Internet-Draft                  PSAMP MIB                   October 2005


      Thus a new section about undefined function, parameters and
      observation point is really needed.

   MIB-5: The section on hash filtering is difficult to understand.  We
      have some terms defined.  And we don't use them.  Hence if I would
      have to implement this MIB, I would not be sure at all what to put
      in there.

     I would like to have a structure with:
     IN;
          Parameter1
          Parameter2
          ...
     OUT
          Parameter1
          Parameter2

   MIB-6: Question: as far as I recall (but I could be wrong), when
      using the RowStatus, we have to speficy the minimum set of MIB
      variables in that table that need to be set in order for the
      status to go to "create", i.e. the states information.  That's one
      of biggest missing things.

   MIB-7: psampSampNonUniProbFuncParam OBJECT-TYPE: here we must explain
      how to do when several input parameters references are needed!
      See also MIB-2 and MIB-4.

   MIB-8: psampFilterHashPayloadBytes OBJECT-TYPE: What does Payload
      mean?  Above layer 4?  It is not specified in [2].

   MIB-9: psampFilterRState OBJECT IDENTIFIER: Try to rename to
      RouterState if maximum OID name length of 32 chars is not
      exceeded.

   MIB-10: psampFilterRStateAvail OBJECT-TYPE: It should be specified
      when this object is "available".  It should be available when one
      of the given functions is available."

   MIB-11: PsampFilterRStateParamSetEntry: Specifically in this case, we
      need to define which minimum set of MIB variable should be set up
      for the entry to go "createandgo".  For example, is
      psampFilterRStateVendorFunc enough?  See aslo MIB-6.

   MIB-12: We are missing the observation domain in both the PSAMP-MIB
      PsampBaseAssocEntry and PSAMP-TECH document.






Dietz & Claise         draft-ietf-psamp-mib-05.txt              [Page 4]


Internet-Draft                  PSAMP MIB                   October 2005


   MIB-13: psampBaseAssoceObservationPoint OBJECT-TYPE: Where should the
      OID point to? ifIndex, ifDescr?

   MIB-14: Capitalization should be consistent throughout the document.
      Maybe the solution is to list all reference terms from PSAMP and
      IPFIX drafts (the ones used in the draft).  So just a list, with
      no definition, in the terminology section.  Feedback?

   MIB-15: Consistent usage of data types (especially Unsigned32 and
      Integer32 with ranges) must be checked!  Not sure if especially an
      index can be Unsigned32, if he must have a limited range, etc.
      Can some experts speak up?

   MIB-16: Hash filtering again (see also MIB-5).  The hash filtering
      group is confusing because it was specified before the hash
      function group.  We mainly care about the hash function defined in
      the appendix of PSAMP-TECH, so why do we have this group before
      the hash function group and do we have this group at all.  If
      someone would like to specify a new hash function, he will
      potentially have a new RFC and part of it, the new MIB OID for
      this specific hash function could be specified.

      So we could just introduce two hash filtering method (IPSX and
      Bob) specified in the PSAMP-TECH document and leave other hash
      functions to extended drafts.  But what about vendor specific hash
      functions??  How do we know they exist??

      Potentially because a vendor would produce a new private MIB?
      Maybe a question for the mailing list!  We mainly need the hash
      function in hardware, where it can not be changed so easily as
      changing a mib.

   MIB-17: Hash filtering again (see also MIB-5 and MIB-16).  Question
      of security!  Do we want to be able to read all of the values in
      PsampFilterHashParamSetEntry.  Including the output of the hash
      function?  Could an attacker with SNMP read access deduce what
      type of traffic to send to manipulate the NMS application?  Do we
      want to export all the 10 parameters in PSAMP export?  Does
      PSAMP-FW requires it?  See "6.2.2 Guarding Against Pitfalls and
      Vulnerabilities".  So the best thing to do is to ask Nick and
      Tanja.

   MIB-18: Router State Filtering (see also MIB-10).  It might be easier
      with subtables for each router state function.  That would also
      clarify the point of psampFilterRStateAvail: one capability per
      function -> that make more sense.  That would also solve MIB-10.
      We can extend with new methods easily.




Dietz & Claise         draft-ietf-psamp-mib-05.txt              [Page 5]


Internet-Draft                  PSAMP MIB                   October 2005


2.  PSAMP Documents Overview

   [PSAMP-FW]: "A Framework for Packet Selection and Reporting" The
      document describes the PSAMP framework for network elements to
      select subsets of packets by statistical and other methods, and to
      export a stream of reports on the selected packets to a collector.
      Definitions of terminology and the use of the terms "must",
      "should" and "may" in this document are informational only.

   [PSAMP-TECH]: "Sampling and Filtering Techniques for IP Packet
      Selection", describes the set of packet selection techniques
      supported by PSAMP.

   PSAMP-MIB: "Definitions of Managed Objects for Packet Sampling" (this
      document) describes the PSAMP Management Information Base.

   [PSAMP-PROTO]: "Packet Sampling (PSAMP) Protocol Specifications"
      specifies the export of packet information from a PSAMP Exporting
      Process to a PSAMP Colleting Process.

   [PSAMP-INFO]: "Information Model for Packet Sampling Exports" defines
      an information and data model for PSAMP.


3.  Terminology

   The PSAMP terminology defined here includes (and is consistent with)
   all terms listed in [2].  We here define additional terms required
   for the definition of managed objects.  An architecture overview and
   possible configurations of PSAMP elements can be found in [1].
   Detailed definitions of selectors can be found in [2].  PSAMP
   terminology also aims to be consistent with terms used in [9].  The
   relationship between some PSAMP and IPFIX terms is described in [1].

3.1.  Base Association

   The Base Association combines several values defined at a PSAMP
   device.  It is derived from the ASSOCIATION defined in [2] section 7.
   It contains references to an Observation Point, a template record, a
   list of Collectors, a list of Selectors and process ids of the
   metering and the reporting process.  It associates these values to
   specify one Measurement Process on the PSAMP device.  Several
   Measurement Processes can be defined on the PSAMP device and every
   Measurement Process will be described by a Base Association.


4.  The Internet-Standard Management Framework




Dietz & Claise         draft-ietf-psamp-mib-05.txt              [Page 6]


Internet-Draft                  PSAMP MIB                   October 2005


   For a detailed overview of the documents that describe the current
   Internet-Standard Management Framework, please refer to section 7 of
   RFC 3410 [10].

   Managed objects are accessed via a virtual information store, termed
   the Management Information Base or MIB.  MIB objects are generally
   accessed through the Simple Network Management Protocol (SNMP).
   Objects in the MIB are defined using the mechanisms defined in the
   Structure of Management Information (SMI).  This memo specifies a MIB
   module that is compliant to the SMIv2, which is described in STD 58,
   RFC 2578 [4], STD 58, RFC 2579 [5] and STD 58, RFC 2580 [6].


5.  Structure of the PSAMP MIB module

   The PSAMP MIB module follows the structures given in [1] and [2].
   The psampBaseAssociations subtree builds the heart of the PSAMP MIB.
   This subtree models the values described by the Base Association.
   The psampBaseAssocTable contains one entry per Base Association.  The
   list of Selectors is modelled by a second table the
   psampSelectorListTable.  This table is linked to the
   psampBaseAssocTable by the first index which is the
   psampBaseAssocIndex.  A psampBaseAssocEntry also references an entry
   in the psampTemplateRecordTable and the psampCollectorGroupTable to
   link the metering process with the reporting process.

   Every selection method described in [2] gets its own subtree in the
   PSAMP MIB.  The subtree always contains a capability section and a
   parameter set table.  So several parameter sets can be defined for
   each selection method.  The parameter set is linked to the Base
   Association by an entry in the psampSelectorListTable.  The
   psampSelectorListMethod point to the first object id of a parameter
   set entry.  The hash functions proposed in [2] are modelled in a
   similar way as the selection methods and are referenced by a
   psampFilterHashParamSetEntry.

   The reporting and exporting processes are modeled by the
   psampCollectorTable, the psampCollectorGroupTable and the
   psampTemplateRecordTable.  The psampTemplateRecordTable contains
   Template Records as defined by the IPFIX protocol.  They are used to
   export the selected packets to the collectors.  The collectors itself
   are modelled in the psampCollectorTable and the
   psampCollectorGroupTable combines several Collectors to which the
   packet reports are sent simultaniously.

5.1.  TEXTUAL CONVENTIONS

   The PSAMP MIB defines one new textual convention, the



Dietz & Claise         draft-ietf-psamp-mib-05.txt              [Page 7]


Internet-Draft                  PSAMP MIB                   October 2005


   PsampMethodAvailability.  It is used as SYNTAX of all those objects
   that indicate if a selection method or hash function is available in
   a specific implementation of a PSAMP device.

5.2.  The Selection Methods

   The first group of objects contains information about sampling
   methods and filtering methods.  Each method is covered by an
   individual subtree.  Expect for the first method that corresponds to
   the exceptional selection of all packets, the following objects are
   defined for each method: a subtree of objects indicating specific
   capabilities and limits of the method that may be empty if no
   capabilities or limits are available, and a subtree specifying sets
   of parameters in a table.  Each row in the parameter set table
   uniquely specifies all parameters of a packet selection process of
   the method.  Also all parameters sets contain a row status.

   The PSAMP MIB covers all methods and their parameters specified in
   [2].  If the given methods could be extended by some implementation
   dependent functionality the MIB contains objects that reference an
   OBJECT IDENTIFIER.  These objects are used as pointers to functions
   or parameters that are out of the scope of this document.  These
   functions or parameters can be either vendor specific or may be
   documented in an additional standard document or an updated version
   of this document.  An implementer may specify e.g., one or more
   functions used for non-uniform probabilistic sampling, additional
   router state matches or additional hash functions for hash filtering.

5.2.1.  Selecting All Packets

   This is the most trivial packet selection method.  If it is applied,
   all packets will be selected.

5.2.2.  Systematic Count-based Sampling

   Count-based sampling means, that all packets that arrive in this
   packet interval are selected.  The spacing parameter defines the
   spacing in number of packets between the end of one sampling interval
   and the start of the next succeeding interval.  The systematic count-
   based sampling method has two capability objects: The
   psampSampCountBasedMaxInterval object indicates the maximum sampling
   interval supported by the implementation, whereas
   psampSampCountBasedMinSpacing indicates the minimum spacing supported
   by the implementation.

   Finally the psampSampCountBasedParamSetTable contains two parameters:
   the sampling interval length and the spacing specified in number of
   packets.



Dietz & Claise         draft-ietf-psamp-mib-05.txt              [Page 8]


Internet-Draft                  PSAMP MIB                   October 2005


5.2.3.  Systematic Time-based Sampling

   Time-based sampling means, that all packets that arrive in this time
   interval are selected.  The spacing parameter defines the spacing in
   time between the end of one sampling interval and the start of the
   next succeeding interval.  The systematic time-based sampling methods
   have two capability objects: The psampSampTimeBasedMaxInterval object
   indicates the maximum sampling interval supported by the
   implementation, whereas psampSampTimeBasedMinSpacing indicates the
   minimum spacing supported by the implementation: both MIB objects
   units are specified in microseconds.

   Finally the psampSampTimeBasedParamSetTable contains two parameters:
   the sampling interval length and the spacing specified in number of
   microseconds.

5.2.4.  Random n-out-of-N Sampling

   The random n-out-of-N sampling method has one capability object:
   psampSampRandOutOfNMaxPopulation specifying the maximum population N.

   The random n-out-of-N sampling method has also two parameter objects
   in the psampSampRandOutOfNParamSetTable.  The first one is
   psampSampRandOutOfNPopulation and gives the number of elements N in
   the parent population.  The second psampSampRandOutOfNSample gives
   the number of elements n taken from the parent population N. With
   these two parameters you sample n packets out of N.

5.2.5.  Uniform Probabilistic Sampling

   Capability objects are not specified for the uniform probabilistic
   sampling method.  It has only one parameter in the
   psampSampUniProbParamSetTable, the psampSampUniProbProbability.  This
   object gives the probability that a packet is sampled.  The
   probability is equal for every packet.  The given value must be
   divided by 4294967295 (=2^32-1), so a value of 0 means no packet is
   sampled (probability is 0) and a value of 4294967295 means every
   packet is sampled (probability is 1).

5.2.6.  Non-Uniform Probabilistic Sampling

   Capability objects are not specified for the non-uniform
   probabilistic sampling method.  The psampSampNonUniProbParamSetTable
   contains two parameters, the psampSampNonUniProbFunction and the
   psampSampNonUniProbFuncParam.  Those two objects point to the
   function that computes the probability that a packet is sampled and
   the parameters used for that function.  The definition of the
   function and its parameters is implementation dependent and beyond



Dietz & Claise         draft-ietf-psamp-mib-05.txt              [Page 9]


Internet-Draft                  PSAMP MIB                   October 2005


   the scope of this document.

5.2.7.  Flow State Sampling

   Capability objects are not specified for the flow state sampling
   method.  The psampSampFlowStateParamSetTable holds two parameters
   pointing to the flow state function and the parameters used by the
   flow state function (psampSampFlowStateFunction and
   psampSampFlowStateFuncParam).  Again the function and its parameters
   are implementation dependent and beyond the scope of this document.

5.2.8.  Match Filtering

   Capability objects are not specified for the match filtering method.
   It contains four parameters in the psampFilterMatchParamSetTable: The
   psampFilterMatchFieldId contain the PSAMP or IPFIX information
   element id defined in the information model [7], [11].  The
   psampFilterMatchStartValue and psampFilterMatchStopValue contain the
   start and stop value to match the content against.  In this way you
   can match e.g., a range x-z of transport protocol ports by specifying
   the field id that represents the transport protocol port and giving x
   as start value and y as stop value.  If a single value should be
   matched than start and stop value must be equal.  A mask
   psampFilterMatchMask can be applied if it is applicable for the field
   id.  The encoding of the values is dependent on the field id and has
   to be done according to the PSAMP protocol document.

5.2.9.  Hash Filtering

   Capability objects are not specified for the hash filtering method.
   But according to the sample tech document [2] ten parameters are
   defined in the psampFilterHashParamSetTable.  The
   psampFilterHashAddrType specifies the address type to hash - either
   IPv4 or IPv6.  Then psampFilterHashHeaderBits specifies a bit mask
   applied to the packet header selecting the bits to hash from the
   packet header.  Then psampFilterHashPayloadBytes gives the number of
   payload bytes that should be included in the hashing.  The final bits
   that are selected from the payload bytes are masked with the
   psampFilterHashPayloadBits.

   The above parameters specified what gets feed into the hash function.
   The following parameters specify the hash function itself.  The
   psampFilterHashFunction points to a hash function and
   psampFilterHashFuncParam point to a function specific parameter set
   for the hashing function.  The number of input and output bits for
   the hash function is specified with psampFilterHashInputBits and
   psampFilterHashOutputBits.  Finally the output may be masked with the
   psampFilterHashOutputMask.  The results gained by applying all those



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 10]


Internet-Draft                  PSAMP MIB                   October 2005


   parameters are then compared with the psampFilterHashSelection.  The
   psampFilterHashSelection contains the hash value ranges or single
   hash values that get selected.  The psampFilterHashSelection is a
   human readable string containing only the ASCII characters 0-9, a-f,
   comma(,) and dash(-).

   The two hash functions given in the sample tech document can be
   referenced within this parameter set table and are also contained in
   this PSAMP MIB document.

5.2.10.  Router State Filtering

   Capability objects are not specified for the router state filtering
   method.  The parameter table psampFilterRStateParamSetTable contains
   six parameters to specify the router state to filter against.  The
   first object psampFilterRStateFunction defines one of nine functions
   that may be used as router state.

   other: an other router state function that is not defined here.  Then
      psampFilterRStateVendorFunc points to the implementation specific
      function that is used.

   ingressIf: packets that enter the PSAMP device at the interface
      specified by psampFilterRStateIfIndex are matched.

   egressIf: packets that leave the PSAMP device at the interface
      specified by psampFilterRStateIfIndex are matched.

   aclViolation: packets that violate the access control list are
      matched.

   rpfFailure: packets for which the reverse path forwarding fails are
      matched.

   noResources: packets for which not enough resources are allocated
      will be matched.

   noRoute: packets that could not be routed further are matched.

   originAS: packets that originate in an autonomous system specified by
      the range of psampFilterRStateStartAS and psampFilterRStateStopAS
      are matched.

   destAS: packets whose destination is in an autonomous system
      specified by the range of psampFilterRStateStartAS and
      psampFilterRStateStopAS are matched.

   The parameter psampFilterRStateIfIndex defaults to 0 if not used.



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 11]


Internet-Draft                  PSAMP MIB                   October 2005


   The parameters psampFilterRStateStartAS and psampFilterRStateStopAS
   default to 0 if they are not used.  If a single autonomous system
   number should be matched psampFilterRStateStopAS remains 0.

5.3.  The Hash Functions

   The hash function subtree specifies the two hash functions defined in
   the sample tech document [2].  The hash functions are defined here so
   that they can be referenced by the hash filter above.  The design of
   the hash function part of the MIB SHOULD be taken as a guideline for
   vendor specific hash function definitions.

   The two hash functions IPSX and Bob have both an empty parameter set
   table since they both take now additional parameters than those
   specified in the hash filter method.  Other hash functions of course
   could specify additional parameters.

5.4.  The Reporting

   The reporting subtree of managed objects provides information on
   collectors to which selected packets (sampled, filtered, or hashed)
   are exported and they allow to configure collectors.  The group
   contains two tables, the psampCollectorTable and the
   psampCollectorGroupTable.

   Each entry in the psampCollectorTable specifies a collector by its IP
   address, used transport protocol and port number.  Also it contains
   the number of reports sent to this collector.  The default transport
   protocol is SCTP.

   The psampCollectorGroupTable groups one or more collectors to a set
   of collectors where sampled packets are sent to simultaneously.  Thus
   reporting to more than one collector at the same time is possible.

5.5.  The Base Associations

   The objects in the Base Asssociations subtree combine all the objects
   needed to model the measurement processes on the PSAMP device.  It
   contains three tables, the psampBaseAssocTable, the
   psampSelectorListTable and the psampTemplateRecordTable.  Each entry
   of the psampBaseAssocTable describes one measurement process on the
   PSAMP device.  The observation point is given as a pointer to another
   object in psampBaseAssoceObservationPoint.  This other object could
   be an entry in the mib-II interface table or any other interface
   point where you can observe packets.  The
   psampBaseAssocTemplateRecordId gives the template record id used to
   link the data gathered in the metering process to an export format
   described in the information model of the PSAMP framework.  The



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 12]


Internet-Draft                  PSAMP MIB                   October 2005


   collectors where the data packets should be sent are specified by
   their index in the psampCollectorGroupTable.  In addition the process
   id of the metering process and the process id of the exporting
   process used for this instance is saved in the instance table.  Last
   but not least statistical values about the packets observed at the
   observation point, packets dropped during the metering process and
   the reports sent to the collectors are maintained.

   The psampSelectorListTable describes the concatenation of methods for
   a given Base Association.  If concatenation of methods is not
   supported on the PSAMP device the table will hold exactly one entry
   per Base Association.

   The methods used for the metering process of an Base Association can
   be retrieved through the index given in the psampBaseAssocTable.  The
   index of the Base Association table is also the first index in the
   psampSelectorListTable.  So each method entry with the same (first)
   index as the Base Association is used to produce the data record for
   the reporting process.  The second index is the running index for the
   method.  The method itself is represented by a pointer (OID) to a
   parameter set.  The methods are applied in the order given by this
   second index psampSelectorListIndex.  Assume the following table:

   1.4.4.1.2.5.1 = 1 (second index)
   1.4.4.1.2.5.2 = 2 (second index)
   1.4.4.1.3.5.1 = 1.3.6.1.2.1.XXX.1.1.2.3.1.10
     (pointer to a parameter set psampSampTimeBasedParamSetTableEntry.10)
   1.4.4.1.3.5.2 = 1.3.6.1.2.1.XXX.1.1.1.3.1.4
     (pointer to a parameter set psampSampCountBasedParamSetTableEntry.4)
   1.4.4.1.4.5.1 = xxx (status of the row)
   1.4.4.1.4.5.2 = xxx (status of the row)

   This would mean that the method psampSampTimeBased with parameter set
   psampSampTimeBasedParamSetTableEntry.10 is applied prior to the
   method psampSampCountBased with parameter set
   psampSampCountBasedParamSetTableEntry.4 for the instance with index
   5.

   In addition every entry in the selector list table contains two
   statistical values: the packets observed at the entry point of the
   method and the packets dropped by the method.

   The psampTemplateRecordTable lists all data template records that are
   used by the PSAMP exporter.  It has two indexes.  The first one is
   the template record id and the second one is just a running index for
   the information element ids listed in the table.  So the
   psampTemplateRecordEntry.4.x will list all information element ids
   used for template record id 4 in the order given by x.



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 13]


Internet-Draft                  PSAMP MIB                   October 2005


6.  Definition
   PSAMP-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE, Integer32, Unsigned32, mib-2
           FROM SNMPv2-SMI                  -- RFC2578
       TEXTUAL-CONVENTION, DisplayString, RowStatus, TruthValue
           FROM SNMPv2-TC                   -- RFC2579
       MODULE-COMPLIANCE, OBJECT-GROUP
           FROM SNMPv2-CONF                 -- RFC2580
       InterfaceIndexOrZero
           FROM IF-MIB                      -- RFC2863
       InetAddressType, InetAddress, InetAutonomousSystemNumber
           FROM INET-ADDRESS-MIB;           -- RFC3291

   psampMIB MODULE-IDENTITY
       LAST-UPDATED "200502181600Z"         -- 18 February 2005
       ORGANIZATION "IETF Packet Sampling Working Group"
       CONTACT-INFO
           "WG charter:
              http://www.ietf.org/html.charters/psamp-charter.html

            Mailing Lists:
              General Discussion: psamp@ops.ietf.org
              To Subscribe: psamp-request@ops.ietf.org
              In Body: subscribe
              Archive: https://ops.ietf.org/lists/psamp/

            Editor:
              Thomas Dietz
              NEC Europe Ltd.
              Network Laboratories
              Kurfuersten-Anlage 36
              69115 Heidelberg
              Germany
              Phone: +49 6221 90511-28
              Email: dietz@netlab.nec.de"
       DESCRIPTION
            "The PSAMP MIB defines managed objects for packet sampling
            and filtering techniques for IP packet selection. These
            objects provide information about managed nodes supporting
            packet sampling, including packet sampling capabilities,
            configuration and statistics.  They also allow to configure
            packet sampling and filtering concerning the observation
            point at which packets are sampled, the packet selections
            methods used for sampling and filtering, and the collector
            to which packet samples are exported.




Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 14]


Internet-Draft                  PSAMP MIB                   October 2005


            Copyright (C) The Internet Society (2005).  This version
            of this MIB module is part of RFC yyyy;  see the RFC
            itself for full legal notices."
   -- RFC Ed.: replace yyyy with actual RFC number & remove this notice

        --  Revision history

        REVISION     "200502181600Z"         -- 18 February 2005
        DESCRIPTION
            "Initial version, published as RFC yyyy."
   -- RFC Ed.: replace yyyy with actual RFC number & remove this notice

       ::= { mib-2 4937 }
   -- XXX to be assigned by IANA.

   -- Textual Conventions

   PsampMethodAvailability ::= TEXTUAL-CONVENTION
       STATUS  current
       DESCRIPTION
           "Used to report the availability of a packet selection
            method:

             available (1) - the method is available on the PSAMP
                 device
             notAvailable (2) - the method is not available on the
                 PSAMP device"
       SYNTAX      INTEGER {
                       available(1),
                       notAvailable(2)
                   }

   -- Top level structure of the MIB

   psampObjects     OBJECT IDENTIFIER ::= { psampMIB 1 }
   psampConformance OBJECT IDENTIFIER ::= { psampMIB 2 }

   --==================================================================
   -- Packet selection sampling methods group of objects
   --==================================================================

   psampSamplingMethods OBJECT IDENTIFIER ::= { psampObjects 1 }

   --==================================================================
   --* Method 0: Selecting All Packets
   --==================================================================

   psampSelectAll OBJECT IDENTIFIER ::= { psampSamplingMethods 0 }



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 15]


Internet-Draft                  PSAMP MIB                   October 2005


   psampSelectAllAvail OBJECT-TYPE
       SYNTAX      PsampMethodAvailability
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the availability of the trivial
            method of selecting all packets."
       DEFVAL { notAvailable }
       ::= { psampSelectAll 1 }

   --==================================================================
   --* Method 1: Systematic Count-based Sampling
   --==================================================================

   psampSampCountBased OBJECT IDENTIFIER ::= { psampSamplingMethods 1 }

   psampSampCountBasedAvail OBJECT-TYPE
       SYNTAX      PsampMethodAvailability
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the availability of systematic
            count-based sampling at the managed node."
       DEFVAL { notAvailable }
       ::= { psampSampCountBased 1 }

   -- Capabilities ++++++++++++++++++++++++++++++++++++++++++++++++++++

   psampSampCountBasedCap OBJECT IDENTIFIER
       ::= { psampSampCountBased 2 }

   psampSampCountBasedMaxInterval OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "number of packets"
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the maximum number that can be
            specified for the sampling interval. Sampling means, that
            all packets that arrive in this interval are selected.
            The interval is given in number of packets."
       ::= { psampSampCountBasedCap 1 }

   psampSampCountBasedMinSpacing OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "packets"
       MAX-ACCESS  read-only
       STATUS      current



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 16]


Internet-Draft                  PSAMP MIB                   October 2005


       DESCRIPTION
           "This object indicates the minimum number that can be
            specified for the sampling spacing. The spacing parameter
            defines the spacing number of packets between the end of
            one sampling interval and the start of the next
            succeeding interval."
       ::= { psampSampCountBasedCap 2 }

   -- Parameter Set Table +++++++++++++++++++++++++++++++++++++++++++++

   psampSampCountBasedParamSetTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF
                   PsampSampCountBasedParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists configurations of systematic count-based
            packet sampling.  A parameter set describing a
            configuration contains two parameters: the sampling
            interval length and the spacing."
       ::= { psampSampCountBased 3 }

   psampSampCountBasedParamSetEntry OBJECT-TYPE
       SYNTAX      PsampSampCountBasedParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Defines an entry in the psampSampCountBasedParamSetTable."
       INDEX { psampSampCountBasedIndex }
       ::= { psampSampCountBasedParamSetTable 1 }

   PsampSampCountBasedParamSetEntry ::=
       SEQUENCE {
           psampSampCountBasedIndex     Integer32,
           psampSampCountBasedInterval  Unsigned32,
           psampSampCountBasedSpacing   Unsigned32,
           psampSampCountBasedRowStatus RowStatus
       }

   psampSampCountBasedIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier of an entry
            in this parameter set table.

            The value is expected to remain constant at least from one



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 17]


Internet-Draft                  PSAMP MIB                   October 2005


            re-initialization of the entity's network management system
            to the next re-initialization.

            It is used in entries of the psampSelectorListTable as
            reference to this method and its associated parameter set."
       ::= { psampSampCountBasedParamSetEntry 1 }

   psampSampCountBasedInterval OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "packets"
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "This object specifies the sampling interval for systematic
           count-based sampling. Sampling means, that all packets that
           arrive in this interval are selected. The interval is
           given in number of packets."
       REFERENCE
           "PSAMP-SAMPLE-TECH, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampSampCountBasedParamSetEntry 2 }

   psampSampCountBasedSpacing OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "packets"
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "This object specifies the sampling spacing for systematic
            count-based sampling. The spacing parameter defines the
            spacing number of packets between the end of one sampling
            interval and the start of the next succeeding interval."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampSampCountBasedParamSetEntry 3 }

   psampSampCountBasedRowStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The status of this row of the table."
       ::= { psampSampCountBasedParamSetEntry 4 }

   --==================================================================
   --* Method 2: Systematic Time-based Sampling
   --==================================================================



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 18]


Internet-Draft                  PSAMP MIB                   October 2005


   psampSampTimeBased OBJECT IDENTIFIER ::= { psampSamplingMethods 2 }

   psampSampTimeBasedAvail OBJECT-TYPE
       SYNTAX      PsampMethodAvailability
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the availability of systematic
            time-based sampling at the managed node."
       DEFVAL { notAvailable }
       ::= { psampSampTimeBased 1 }

   -- Capabilities ++++++++++++++++++++++++++++++++++++++++++++++++++++

   psampSampTimeBasedCap OBJECT IDENTIFIER
       ::= { psampSampTimeBased 2 }

   psampSampTimeBasedMaxInterval OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "micro-seconds"
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the maximum number that can be
            specified for the sampling interval. Sampling means, that
            all packets that arrive in an interval are selected. The
            interval is given in micro-seconds."
       ::= { psampSampTimeBasedCap 1 }

   psampSampTimeBasedMinSpacing OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "micro-seconds"
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the minimum number that can be
            specified for the sampling spacing. The spacing parameter
            defines the spacing in micro-seconds between the end of
            one sampling interval and the start of the next
            succeeding interval."
       ::= { psampSampTimeBasedCap 2 }

   -- Parameter Set Table +++++++++++++++++++++++++++++++++++++++++++++

   psampSampTimeBasedParamSetTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF
                   PsampSampTimeBasedParamSetEntry
       MAX-ACCESS  not-accessible



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 19]


Internet-Draft                  PSAMP MIB                   October 2005


       STATUS      current
       DESCRIPTION
           "This table lists configurations of systematic time-based
            packet sampling. A parameter set describing a configuration
            contains two parameters: the sampling interval length and
            the spacing."
       ::= { psampSampTimeBased 3 }

   psampSampTimeBasedParamSetEntry OBJECT-TYPE
       SYNTAX      PsampSampTimeBasedParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Defines an entry in the psampSampTimeBasedParamSetTable."
       INDEX { psampSampTimeBasedIndex }
       ::= { psampSampTimeBasedParamSetTable 1 }

   PsampSampTimeBasedParamSetEntry ::=
       SEQUENCE {
           psampSampTimeBasedIndex     Integer32,
           psampSampTimeBasedInterval  Unsigned32,
           psampSampTimeBasedSpacing   Unsigned32,
           psampSampTimeBasedRowStatus RowStatus
       }

   psampSampTimeBasedIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier of an entry
            in this parameter set table.

            The value is expected to remain constant at least from one
            re-initialization of the entity's network management system
            to the next re-initialization.

            It is used in entries of the psampSelectorListTable as
            reference to this method and its associated parameter set."
       ::= { psampSampTimeBasedParamSetEntry 1 }

   psampSampTimeBasedInterval OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "micro-seconds"
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "This object specifies a sampling interval for systematic



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 20]


Internet-Draft                  PSAMP MIB                   October 2005


           time-based sampling. Sampling means, that all packets that
           arrive in this interval are selected. The interval is
           given in micro-seconds."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampSampTimeBasedParamSetEntry 2 }

   psampSampTimeBasedSpacing OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "micro-seconds"
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "This object specifies a sampling spacing for systematic
            time-based sampling. The spacing parameter defines the
            spacing in micro-seconds between the end of one sampling
            interval and the start of the next succeeding interval."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampSampTimeBasedParamSetEntry 3 }

   psampSampTimeBasedRowStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The status of this row of the table."
       ::= { psampSampTimeBasedParamSetEntry 4 }

   --==================================================================
   --* Method 3: Random n-out-of-N Sampling
   --==================================================================

   psampSampRandOutOfN OBJECT IDENTIFIER ::= { psampSamplingMethods 3 }

   psampSampRandOutOfNAvail OBJECT-TYPE
       SYNTAX      PsampMethodAvailability
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the availability of random
            n-out-of-N sampling at the managed node."
       DEFVAL { notAvailable }
       ::= { psampSampRandOutOfN 1 }

   -- Capabilities ++++++++++++++++++++++++++++++++++++++++++++++++++++



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 21]


Internet-Draft                  PSAMP MIB                   October 2005


   psampSampRandOutOfNCap OBJECT IDENTIFIER
       ::= { psampSampRandOutOfN 2 }

   psampSampRandOutOfNMaxPopulation OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "packets"
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the maximum number of packets that
           can be specified for the population size."
       ::= { psampSampRandOutOfNCap 1 }

   -- Parameter Set Table +++++++++++++++++++++++++++++++++++++++++++++

   psampSampRandOutOfNParamSetTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF
                   PsampSampRandOutOfNParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "This table lists configurations of random n-out-of-N
           sampling.  A parameter set describing a configuration
           contains a two parameters: the population size and the
           sample size."
       ::= { psampSampRandOutOfN 3 }

   psampSampRandOutOfNParamSetEntry OBJECT-TYPE
       SYNTAX      PsampSampRandOutOfNParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Defines an entry in the psampSampRandOutOfNParamSetTable."
       INDEX { psampSampRandOutOfNIndex }
       ::= { psampSampRandOutOfNParamSetTable 1 }

   PsampSampRandOutOfNParamSetEntry ::=
       SEQUENCE {
           psampSampRandOutOfNIndex      Integer32,
           psampSampRandOutOfNPopulation Unsigned32,
           psampSampRandOutOfNSample     Unsigned32,
           psampSampRandOutOfNRowStatus  RowStatus
       }

   psampSampRandOutOfNIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 22]


Internet-Draft                  PSAMP MIB                   October 2005


       DESCRIPTION
           "The locally arbitrary, but unique identifier of an entry
            in this parameter set table.

            The value is expected to remain constant at least from one
            re-initialization of the entity's network management system
            to the next re-initialization.

            It is used in entries of the psampSelectorListTable as
            reference to this method and its associated parameter set."
       ::= { psampSampRandOutOfNParamSetEntry 1 }

   psampSampRandOutOfNPopulation OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "packets"
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "This object specifies the number of packets in the parent
          population of the sampling algorithm."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampSampRandOutOfNParamSetEntry 2 }

   psampSampRandOutOfNSample OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "packets"
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "This object specifies the number of packets that are
            sampled from the parent population of the sampling
            algorithm."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampSampRandOutOfNParamSetEntry 3 }

   psampSampRandOutOfNRowStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The status of this row of the table."
       ::= { psampSampRandOutOfNParamSetEntry 4 }

   --==================================================================



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 23]


Internet-Draft                  PSAMP MIB                   October 2005


   --* Method 4: Uniform Probabilistic Sampling
   --==================================================================

   psampSampUniProb OBJECT IDENTIFIER ::= { psampSamplingMethods 4 }

   psampSampUniProbAvail OBJECT-TYPE
       SYNTAX      PsampMethodAvailability
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the availability of uniform
            probabilistic sampling at the managed node."
       DEFVAL { notAvailable }
       ::= { psampSampUniProb 1 }

   psampSampUniProbCap OBJECT IDENTIFIER
       ::= { psampSampUniProb 2 }

   -- Capabilities ++++++++++++++++++++++++++++++++++++++++++++++++++++

   -- Parameter Set Table +++++++++++++++++++++++++++++++++++++++++++++

   psampSampUniProbParamSetTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF
                   PsampSampUniProbParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists configurations of uniform probabilistic
            sampling.  A parameter set describing a configuration
            contains a single parameter only: the sampling
            probability."
       ::= { psampSampUniProb 3 }

   psampSampUniProbParamSetEntry OBJECT-TYPE
       SYNTAX      PsampSampUniProbParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Defines an entry in the psampSampUniProbParamSetTable."
       INDEX { psampSampUniProbIndex }
       ::= { psampSampUniProbParamSetTable 1 }

   PsampSampUniProbParamSetEntry ::=
       SEQUENCE {
           psampSampUniProbIndex       Integer32,
           psampSampUniProbProbability Unsigned32,
           psampSampUniProbRowStatus   RowStatus



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 24]


Internet-Draft                  PSAMP MIB                   October 2005


       }

   psampSampUniProbIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier of an entry
            in this parameter set table.

            The value is expected to remain constant at least from one
            re-initialization of the entity's network management system
            to the next re-initialization.

            It is used in entries of the psampSelectorListTable as
            reference to this method and its associated parameter set."
       ::= { psampSampUniProbParamSetEntry 1 }

   psampSampUniProbProbability OBJECT-TYPE
       SYNTAX      Unsigned32 (0..4294967295)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "This object gives the probability that a packet is sampled.
           The probability is equal for every packet. The given value
           must be divided by 4294967295 (=2^32-1), so a value of 0
           means no packet is sampled (probability is 0) and a value of
           4294967295 means every packet is sampled (probability is
           1)."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampSampUniProbParamSetEntry 2 }

   psampSampUniProbRowStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The status of this row of the table."
       ::= { psampSampUniProbParamSetEntry 3 }

   --==================================================================
   --* Method 5: Non-Uniform Probabilistic Sampling
   --==================================================================

   psampSampNonUniProb OBJECT IDENTIFIER ::= { psampSamplingMethods 5 }




Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 25]


Internet-Draft                  PSAMP MIB                   October 2005


   psampSampNonUniProbAvail OBJECT-TYPE
       SYNTAX      PsampMethodAvailability
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the availability of non-uniform
            probabilistic sampling at the managed node."
       DEFVAL { notAvailable }
       ::= { psampSampNonUniProb 1 }

   -- Capabilities ++++++++++++++++++++++++++++++++++++++++++++++++++++

   -- Parameter Set Table +++++++++++++++++++++++++++++++++++++++++++++

   psampSampNonUniProbParamSetTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF
                   PsampSampNonUniProbParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists configurations of non-uniform
            probabilistic sampling.  A parameter set describing a
            configuration contains two parameter: a pointer to a
            probability function and a pointer to an associated
            parameter set."
       ::= { psampSampNonUniProb 3 }

   psampSampNonUniProbParamSetEntry OBJECT-TYPE
       SYNTAX      PsampSampNonUniProbParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Defines an entry in the psampSampNonUniProbParamSetTable."
       INDEX { psampSampNonUniProbIndex }
       ::= { psampSampNonUniProbParamSetTable 1 }

   PsampSampNonUniProbParamSetEntry ::=
       SEQUENCE {
           psampSampNonUniProbIndex     Integer32,
           psampSampNonUniProbFunction  OBJECT IDENTIFIER,
           psampSampNonUniProbFuncParam OBJECT IDENTIFIER,
           psampSampNonUniProbRowStatus RowStatus
       }

   psampSampNonUniProbIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 26]


Internet-Draft                  PSAMP MIB                   October 2005


       DESCRIPTION
           "The locally arbitrary, but unique identifier of an entry
            in this parameter set table.

            The value is expected to remain constant at least from one
            re-initialization of the entity's network management system
            to the next re-initialization.

            It is used in entries of the psampSelectorListTable as
            reference to this method and its associated parameter set."
       ::= { psampSampNonUniProbParamSetEntry 1 }

   psampSampNonUniProbFunction OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "This object specifies the function that is used to compute
            the probability for sampling."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampSampNonUniProbParamSetEntry 2 }

   psampSampNonUniProbFuncParam OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "This object specifies the parameters set for the function
            specified with psampSampNonUniProbFunction that is used to
            compute the probability for sampling."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampSampNonUniProbParamSetEntry 3 }

   psampSampNonUniProbRowStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The status of this row of the table."
       ::= { psampSampNonUniProbParamSetEntry 4 }

   --==================================================================
   --* Method 6: Flow State Sampling
   --==================================================================



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 27]


Internet-Draft                  PSAMP MIB                   October 2005


   psampSampFlowState OBJECT IDENTIFIER ::= { psampSamplingMethods 6 }

   psampSampFlowStateAvail OBJECT-TYPE
       SYNTAX      PsampMethodAvailability
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the availability of flow state
            sampling at the managed node."
       DEFVAL { notAvailable }
       ::= { psampSampFlowState 1 }

   -- Capabilities ++++++++++++++++++++++++++++++++++++++++++++++++++++

   -- Parameter Set Table +++++++++++++++++++++++++++++++++++++++++++++

   psampSampFlowStateParamSetTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF
                   PsampSampFlowStateParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists configurations of flow state sampling.  A
            parameter set describing a configuration contains two
            parameter: a pointer to a flow state function and a pointer
            to an associated parameter set."
       ::= { psampSampFlowState 3 }

   psampSampFlowStateParamSetEntry OBJECT-TYPE
       SYNTAX      PsampSampFlowStateParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Defines an entry in the psampSampFlowStateParamSetTable."
       INDEX { psampSampFlowStateIndex }
       ::= { psampSampFlowStateParamSetTable 1 }

   PsampSampFlowStateParamSetEntry ::=
       SEQUENCE {
           psampSampFlowStateIndex     Integer32,
           psampSampFlowStateFunction  OBJECT IDENTIFIER,
           psampSampFlowStateFuncParam OBJECT IDENTIFIER,
           psampSampFlowStateRowStatus RowStatus
       }

   psampSampFlowStateIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 28]


Internet-Draft                  PSAMP MIB                   October 2005


       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier of an entry
            in this parameter set table.

            The value is expected to remain constant at least from one
            re-initialization of the entity's network management system
            to the next re-initialization.

            It is used in entries of the psampSelectorListTable as
            reference to this method and its associated parameter set."
       ::= { psampSampFlowStateParamSetEntry 1 }

   psampSampFlowStateFunction OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "This object specifies the function that is used to check
            the flow state for sampling."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampSampFlowStateParamSetEntry 2 }

   psampSampFlowStateFuncParam OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "This object specifies the parameter set for the function
            specified with psampSampFlowStateFunction that is used to
            determine the packet that is to be sampled."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampSampFlowStateParamSetEntry 3 }

   psampSampFlowStateRowStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The status of this row of the table."
       ::= { psampSampFlowStateParamSetEntry 4 }

   --==================================================================
   -- Packet selection filtering methods group of objects



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 29]


Internet-Draft                  PSAMP MIB                   October 2005


   --==================================================================

   psampFilteringMethods        OBJECT IDENTIFIER ::= { psampObjects 2 }

   --==================================================================
   --* Method 0: Match filtering
   --==================================================================

   psampFilterMatch OBJECT IDENTIFIER ::= { psampFilteringMethods 0 }

   psampFilterMatchAvail OBJECT-TYPE
       SYNTAX      PsampMethodAvailability
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the availability of match filtering
            at the managed node."
       DEFVAL { notAvailable }
       ::= { psampFilterMatch 1 }

   -- Capabilities ++++++++++++++++++++++++++++++++++++++++++++++++++++

   -- Parameter Set Table +++++++++++++++++++++++++++++++++++++++++++++

   psampFilterMatchParamSetTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF
                   PsampFilterMatchParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists configurations of match filtering. The
            match filtering is based on the IPFIX/PSAMP Information
            Elements. The parameter set contains the Information
            Element Id, a value or value range and a mask."
       ::= { psampFilterMatch 3 }

   psampFilterMatchParamSetEntry OBJECT-TYPE
       SYNTAX      PsampFilterMatchParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Defines an entry in the psampFilterMatchParamSetTable."
       INDEX { psampFilterMatchIndex }
       ::= { psampFilterMatchParamSetTable 1 }

   PsampFilterMatchParamSetEntry ::=
       SEQUENCE {
           psampFilterMatchIndex         Integer32,



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 30]


Internet-Draft                  PSAMP MIB                   October 2005


           psampFilterMatchInfoElementId Integer32,
           psampFilterMatchStartValue    OCTET STRING,
           psampFilterMatchEndValue      OCTET STRING,
           psampFilterMatchMask          OCTET STRING,
           psampFilterMatchRowStatus     RowStatus
       }

   psampFilterMatchIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier of an entry
            in this parameter set table.

            The value is expected to remain constant at least from one
            re-initialization of the entity's network management system
            to the next re-initialization.

            It is used in entries of the psampSelectorListTable as
            reference to this method and its associated parameter set."
       ::= { psampFilterMatchParamSetEntry 1 }

   psampFilterMatchInfoElementId OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The id of the information element that is encoded as the
            InfoElementId defined in the IPFIX/PSAMP Information
            Models."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1, ipfix and
            psamp info model!!"
   -- Editor Note: get reference right!
       ::= { psampFilterMatchParamSetEntry 2 }

   psampFilterMatchStartValue OBJECT-TYPE
       SYNTAX      OCTET STRING
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The value of the information element or the start of the
            value range. If psampFilterMatchEndValue is defined then
            this value is the start value of a value range. If
            psampFilterMatchMask is defined then
            psampFilterMatchEndValue is ignored. In this case the
            packet is selected if the masked value exactly matches the



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 31]


Internet-Draft                  PSAMP MIB                   October 2005


            start value psampFilterMatchStartValue. The data type and
            its encoding is the same as in PSAMP-PROTO."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1, PROTO!!"
   -- Editor Note: get reference right!
       ::= { psampFilterMatchParamSetEntry 3 }

   psampFilterMatchEndValue OBJECT-TYPE
       SYNTAX      OCTET STRING
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The final value of a value range. It should be equal to
           it's default value (''H) if a single value should be
           encoded. It is ignored if psampFilterMatchMask is defined.
           The data type and its encoding is the same as in
           PSAMP-PROTO."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1, PROTO!!"
   -- Editor Note: get reference right!
       DEFVAL      { ''H }
       ::= { psampFilterMatchParamSetEntry 4 }

   psampFilterMatchMask OBJECT-TYPE
       SYNTAX      OCTET STRING
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The selected value of the given information element is
           masked with this value. The resulting value is compared to
           psampFilterMatchStartValue and the packet is selected if
           they match. If psampFilterMatchEndValue and
           psampFilterMatchMask are defined at the same time
           psampFilterMatchEndValue is ignored. Note that a mask does
           not make sense for all information elements and if it is
           specified the mask has the same data type and encoding as
           the information element referenced by the
           psampFilterMatchInfoElementId."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1, PROTO!!"
   -- Editor Note: get reference right!
       DEFVAL      { ''H }
       ::= { psampFilterMatchParamSetEntry 5 }

   psampFilterMatchRowStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS      current



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 32]


Internet-Draft                  PSAMP MIB                   October 2005


       DESCRIPTION
           "The status of this row of the table."
       ::= { psampFilterMatchParamSetEntry 6 }

   --==================================================================
   --* Method 1: Hash filtering
   --==================================================================

   psampFilterHash OBJECT IDENTIFIER ::= { psampFilteringMethods 1 }

   psampFilterHashAvail OBJECT-TYPE
       SYNTAX      PsampMethodAvailability
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the availability of hash filtering
            at the managed node."
       DEFVAL { notAvailable }
       ::= { psampFilterHash 1 }

   psampFilterHashCapabilities OBJECT IDENTIFIER
       ::= { psampFilterHash 2 }

   -- Capabilities ++++++++++++++++++++++++++++++++++++++++++++++++++++

   -- Parameter Set Table +++++++++++++++++++++++++++++++++++++++++++++

   psampFilterHashParamSetTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF
                   PsampFilterHashParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists configurations of hash filtering. A
            parameter set describing a configuration contains ten
            parameter describing the hash function, the input bits feed
            into the hash function and the output of the function."
       ::= { psampFilterHash 3 }

   psampFilterHashParamSetEntry OBJECT-TYPE
       SYNTAX      PsampFilterHashParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Defines an entry in the psampFilterHashParamSetTable."
       INDEX { psampFilterHashIndex }
       ::= { psampFilterHashParamSetTable 1 }




Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 33]


Internet-Draft                  PSAMP MIB                   October 2005


   PsampFilterHashParamSetEntry ::=
       SEQUENCE {
           psampFilterHashIndex        Integer32,
           psampFilterHashAddrType     InetAddressType,
           psampFilterHashHeaderBits   OCTET STRING,
           psampFilterHashPayloadBytes Integer32,
           psampFilterHashPayloadBits  OCTET STRING,
           psampFilterHashFunction     OBJECT IDENTIFIER,
           psampFilterHashFuncParam    OBJECT IDENTIFIER,
           psampFilterHashInputBits    Integer32,
           psampFilterHashOutputBits   Integer32,
           psampFilterHashOutputMask   OCTET STRING,
           psampFilterHashSelection    DisplayString,
           psampFilterHashRowStatus    RowStatus
       }

   psampFilterHashIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier of an entry
            in this parameter set table.

            The value is expected to remain constant at least from one
            re-initialization of the entity's network management system
            to the next re-initialization.

            It is used in entries of the psampSelectorListTable as
            reference to this method and its associated parameter set."
       ::= { psampFilterHashParamSetEntry 1 }

   psampFilterHashAddrType OBJECT-TYPE
       SYNTAX      InetAddressType
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The address type the hash function is applied to (either
            IPv4 or IPv6 packets). If a hash function applies to both
            IPv4 and IPv6 addresses two entries in this table are
            needed."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampFilterHashParamSetEntry 2 }

   psampFilterHashHeaderBits OBJECT-TYPE
       SYNTAX      OCTET STRING (SIZE (40))



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 34]


Internet-Draft                  PSAMP MIB                   October 2005


       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The object specifies the header bits of the layer 3 header
            used for hashing. The size is 40 bytes but when
            psampFilterHashAddrType is IPv4 then only the first 20
            bytes are used."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampFilterHashParamSetEntry 3 }

   psampFilterHashPayloadBytes OBJECT-TYPE
       SYNTAX      Integer32 (0..2147483647)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The number of bytes of payload used as input to the hash
            function."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampFilterHashParamSetEntry 4 }

   psampFilterHashPayloadBits OBJECT-TYPE
       SYNTAX      OCTET STRING
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The object specifies the payload bits used for hashing. The
            size depends on the value of psampFilterHashPayloadBytes."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampFilterHashParamSetEntry 5 }

   psampFilterHashFunction OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "This object specifies the hash function executed by the
            current filtering method."
       ::= { psampFilterHashParamSetEntry 6 }

   psampFilterHashFuncParam OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-create



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 35]


Internet-Draft                  PSAMP MIB                   October 2005


       STATUS      current
       DESCRIPTION
           "This object specifies the parameters used in addition to
            those specified in this table."
       ::= { psampFilterHashParamSetEntry 7 }

   psampFilterHashInputBits OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The number of bits used as input key to the hash function.
            Usually this should be in the form of 2^x."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampFilterHashParamSetEntry 8 }

   psampFilterHashOutputBits OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The number of bits that form the output value of the hash
            function."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampFilterHashParamSetEntry 9 }

   psampFilterHashOutputMask OBJECT-TYPE
       SYNTAX      OCTET STRING
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The mask applied to the output bits of the hash function.
            If less hash values are needed the number of hashes can be
            reduced by masking the output value. The size is dependent
            on the number of output bits. If the output mask is empty
            then no mask is applied."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1"
   -- Editor Note: get reference right!
       DEFVAL      { ''H }
       ::= { psampFilterHashParamSetEntry 10 }

   psampFilterHashSelection OBJECT-TYPE
       SYNTAX      DisplayString



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 36]


Internet-Draft                  PSAMP MIB                   October 2005


       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "This object represents the hash values that select a
            packet. It is represented in a human readable form. The
            only allowed characters are [0-9a-f,-x]. A single hash
            value is represented by its decimal ASCII notation or if
            prefixed with 0x by its hexadecimal ASCII notation. A range
            can be given by hash_value - hash_value and several single
            values or ranges are separated by , (comma). The ASCII
            string is defined as follows:

              selections := selection | selections,selection
              selection  := range | value
              range      := value-value
              value      := 0x[0-9,a-f]* | [1-9][0-9]*

            So, if you with to select hash values 0, 5 - 10 and 250-255
            you could specify: 0,5-10,0xfa-0xff"
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampFilterHashParamSetEntry 11 }

   psampFilterHashRowStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The status of this row of the table."
       ::= { psampFilterHashParamSetEntry 12 }

   --==================================================================
   --* Method 2: Router State filtering
   --==================================================================

   psampFilterRState OBJECT IDENTIFIER ::= { psampFilteringMethods 2 }

   psampFilterRStateAvail OBJECT-TYPE
       SYNTAX      PsampMethodAvailability
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the availability of router state
            filtering at the managed node."
       DEFVAL { notAvailable }
       ::= { psampFilterRState 1 }




Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 37]


Internet-Draft                  PSAMP MIB                   October 2005


   -- Capabilities ++++++++++++++++++++++++++++++++++++++++++++++++++++

   -- Parameter Set Table +++++++++++++++++++++++++++++++++++++++++++++

   psampFilterRStateParamSetTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF
                   PsampFilterRStateParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists configurations of router state filtering.
            A parameter set describing a configuration contains six
            parameters: the router state function executed, and then
            some parameters that are used dependent on the router state
            function, like interface index or autonomous system number
            range."
       ::= { psampFilterRState 3 }

   psampFilterRStateParamSetEntry OBJECT-TYPE
       SYNTAX      PsampFilterRStateParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Defines an entry in the psampFilterRStateParamSetTable."
       INDEX { psampFilterRStateIndex }
       ::= { psampFilterRStateParamSetTable 1 }

   PsampFilterRStateParamSetEntry ::=
       SEQUENCE {
           psampFilterRStateIndex      Integer32,
           psampFilterRStateFunction   INTEGER,
           psampFilterRStateNegate     TruthValue,
           psampFilterRStateIfIndex    InterfaceIndexOrZero,
           psampFilterRStateStartAS    InetAutonomousSystemNumber,
           psampFilterRStateEndAS      InetAutonomousSystemNumber,
           psampFilterRStateVendorFunc OBJECT IDENTIFIER,
           psampFilterRStateRowStatus  RowStatus
       }

   psampFilterRStateIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier of an entry
            in this parameter set table.

            The value is expected to remain constant at least from one



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 38]


Internet-Draft                  PSAMP MIB                   October 2005


            re-initialization of the entity's network management system
            to the next re-initialization.

            It is used in entries of the psampSelectorListTable as
            reference to this method and its associated parameter set."
       ::= { psampFilterRStateParamSetEntry 1 }

   psampFilterRStateFunction OBJECT-TYPE
       SYNTAX      INTEGER {
                       other        (1),
                       ingressIf    (2),
                       egressIf     (3),
                       aclViolation (4),
                       rpfFailure   (5),
                       noResources  (6),
                       noRoute      (7),
                       originAS     (8),
                       destAS       (9)
                   }
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "This object indicates which function is applied to the
            router state. The validity of the following objects depends
            on the function selected here. The psampFilterRStateIfIndex
            is only valid if the function is ingressIf or egressIf. The
            psampFilterRstateStartAS/StopAS objects are only valid if
            the function is originAS or destAS. The
            psampFilterRStateVendor object is only valid if the function
            other is chosen; in that case it points to a vendor specific
            function."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampFilterRStateParamSetEntry 2 }

   psampFilterRStateNegate OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "If set to true this object will negate the output of the
            psampFilterRStateFunction."
       DEFVAL      { false }
       ::= { psampFilterRStateParamSetEntry 3 }

   psampFilterRStateIfIndex OBJECT-TYPE
       SYNTAX      InterfaceIndexOrZero



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 39]


Internet-Draft                  PSAMP MIB                   October 2005


       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "Used if the function is egressIf or ingressIf. Selects
            the packet if the egressIf/ingressIf is the same as the
            interface indicated by this object. If the object is not
            used it contains a value of 0."
       DEFVAL      { 0 }
       ::= { psampFilterRStateParamSetEntry 4 }

   psampFilterRStateStartAS OBJECT-TYPE
       SYNTAX      InetAutonomousSystemNumber
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "Used if the function is originAS or destAS. Selects the
            packet if the AS Number lies in the range of
            psampFilterRStateStartAS and psampFilterRStateEndAS. If
            the object is not used it default to 0."
       DEFVAL      { 0 }
       ::= { psampFilterRStateParamSetEntry 5 }

   psampFilterRStateEndAS OBJECT-TYPE
       SYNTAX      InetAutonomousSystemNumber
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "Used if the function is originAS or destAS. Selects the
            packet if the AS Number lies in the range of
            psampFilterRStateStartAS and psampFilterRStateStopAS. If
            psampFilterRStateStartAS is not 0 and this object is 0 then
            the range is single value, the value given in
            psampFilterRStateStartAS."
       DEFVAL      { 0 }
       ::= { psampFilterRStateParamSetEntry 6 }

   psampFilterRStateVendorFunc OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "Used if the function is any other than those defined here.
            In this case a vendor specific router state function is
            used. If the object is not used it defaults to
            psampFilterRState."
       DEFVAL      { psampFilterRState }
       ::= { psampFilterRStateParamSetEntry 7 }




Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 40]


Internet-Draft                  PSAMP MIB                   October 2005


   psampFilterRStateRowStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The status of this row of the table."
       ::= { psampFilterRStateParamSetEntry 8 }

   --==================================================================
   -- Hash Function Group
   --==================================================================

   psampHashFunctions    OBJECT IDENTIFIER ::= { psampObjects 3 }

   --==================================================================
   --* Hash Function 0: IPSX
   --==================================================================

   psampHashIPSX OBJECT IDENTIFIER ::= { psampHashFunctions 0 }

   psampHashIPSXAvail OBJECT-TYPE
       SYNTAX      PsampMethodAvailability
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the availability of the IPSX hash
            function at the managed node."
       DEFVAL { notAvailable }
       ::= { psampHashIPSX 1 }

   -- Capabilities ++++++++++++++++++++++++++++++++++++++++++++++++++++

   -- Parameter Set Table +++++++++++++++++++++++++++++++++++++++++++++

   psampHashIPSXParamSetTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF
                   PsampHashIPSXParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists configurations the IPSX hash function.
            Since this hash function takes no additional parameters the
            table if available contains only one entry indicating that
            the functions exists and can be referenced by the
            psampFilterHashParamSetTable."
       ::= { psampHashIPSX 3 }

   psampHashIPSXParamSetEntry OBJECT-TYPE



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 41]


Internet-Draft                  PSAMP MIB                   October 2005


       SYNTAX      PsampHashIPSXParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Defines an entry in the psampHashIPSXParamSetTable."
       INDEX { psampHashIPSXIndex }
       ::= { psampHashIPSXParamSetTable 1 }

   PsampHashIPSXParamSetEntry ::=
       SEQUENCE {
           psampHashIPSXIndex     Integer32,
           psampHashIPSXRowStatus RowStatus
       }

   psampHashIPSXIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier of an entry
            in this parameter set table.

            The value is expected to remain constant at least from one
            re-initialization of the entity's network management system
            to the next re-initialization.

            It is used in entries of the psampFilterHashParamSetTable
            as reference to this method and its associated parameter
            set."
       ::= { psampHashIPSXParamSetEntry 1 }

   psampHashIPSXRowStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The status of this row of the table."
       ::= { psampHashIPSXParamSetEntry 2 }

   --==================================================================
   --* Hash Function 1: Bob
   --==================================================================

   psampHashBob OBJECT IDENTIFIER ::= { psampHashFunctions 1 }

   psampHashBobAvail OBJECT-TYPE
       SYNTAX      PsampMethodAvailability
       MAX-ACCESS  read-only



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 42]


Internet-Draft                  PSAMP MIB                   October 2005


       STATUS      current
       DESCRIPTION
           "This object indicates the availability of the Bob hash
            function at the managed node."
       DEFVAL { notAvailable }
       ::= { psampHashBob 1 }

   -- Capabilities ++++++++++++++++++++++++++++++++++++++++++++++++++++

   -- Parameter Set Table +++++++++++++++++++++++++++++++++++++++++++++

   psampHashBobParamSetTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF
                   PsampHashBobParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists configurations the Bob hash function.
            Since this hash function takes no additional parameters the
            table if available contains only one entry indicating that
            the functions exists and can be referenced by the
            psampFilterHashParamSetTable."
       ::= { psampHashBob 3 }

   psampHashBobParamSetEntry OBJECT-TYPE
       SYNTAX      PsampHashBobParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Defines an entry in the psampHashBobParamSetTable."
       INDEX { psampHashBobIndex }
       ::= { psampHashBobParamSetTable 1 }

   PsampHashBobParamSetEntry ::=
       SEQUENCE {
           psampHashBobIndex     Integer32,
           psampHashBobRowStatus RowStatus
       }

   psampHashBobIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier of an entry
            in this parameter set table.

            The value is expected to remain constant at least from one



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 43]


Internet-Draft                  PSAMP MIB                   October 2005


            re-initialization of the entity's network management system
            to the next re-initialization.

            It is used in entries of the psampFilterHashParamSetTable
            as reference to this method and its associated parameter
            set."
       ::= { psampHashBobParamSetEntry 1 }

   psampHashBobRowStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The status of this row of the table."
       ::= { psampHashBobParamSetEntry 2 }

   --==================================================================
   -- Reporting Group
   --==================================================================

   psampReporting        OBJECT IDENTIFIER ::= { psampObjects 4 }

   -- Collector Table +++++++++++++++++++++++++++++++++++++++++++++++++

   psampCollectorTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF PsampCollectorEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists collectors to which PSAMP selected
            packets are exported."
       ::= { psampReporting 1 }

   psampCollectorEntry OBJECT-TYPE
       SYNTAX      PsampCollectorEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Defines an entry in the psampCollectorTable."
       INDEX { psampCollectorIndex }
       ::= { psampCollectorTable 1 }

   PsampCollectorEntry ::= SEQUENCE {
           psampCollectorIndex             Integer32,
           psampCollectorDstIpAddressType  InetAddressType,
           psampCollectorDstIpAddress      InetAddress,
           psampCollectorDstProtocol       Integer32,
           psampCollectorDstPort           Integer32,



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 44]


Internet-Draft                  PSAMP MIB                   October 2005


           psampCollectorReportsSent       Integer32,
           psampCollectorRowStatus         RowStatus
       }

   psampCollectorIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier of an entry
            in this collector table.

            The value is expected to remain constant at least from one
            re-initialization of the entity's network management system
            to the next re-initialization.

            It is used in entries of the psampCollectorGroupTable as
            reference to this collector and its associated parameters."
       ::= { psampCollectorEntry 1 }

   psampCollectorDstIpAddressType OBJECT-TYPE
       SYNTAX      InetAddressType
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The IP address type of the collector. The value for IPv4
            is ipv4(1). The value for IPv6 is ipv6(2)."
       ::= { psampCollectorEntry 2 }

   psampCollectorDstIpAddress OBJECT-TYPE
       SYNTAX      InetAddress
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The IP address of the collector."
       ::= { psampCollectorEntry 3 }

   psampCollectorDstProtocol OBJECT-TYPE
       SYNTAX      Integer32 (0..256)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The transport protocol used for exporting sampled packets
            to the collector. The recommended protocols are TCP (6),
            UDP (17) and SCTP (132). The default is SCTP."
       DEFVAL      { 132 }
       ::= { psampCollectorEntry 4 }




Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 45]


Internet-Draft                  PSAMP MIB                   October 2005


   psampCollectorDstPort OBJECT-TYPE
       SYNTAX      Integer32 (0..65535)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The transport protocol port number of the collector."
       ::= { psampCollectorEntry 5 }

   psampCollectorReportsSent OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of packet reports sent to the collector."
       ::= { psampCollectorEntry 6 }

   psampCollectorRowStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The status of this row of the table."
       ::= { psampCollectorEntry 7 }

   -- Collector Group Table +++++++++++++++++++++++++++++++++++++++++++

   psampCollectorGroupTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF PsampCollectorGroupEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists groups of collectors to which PSAMP
            selected packets are exported simultaneously. If PSAMP
            selected packets are exported to only one collector the
            group consists of exactly one collector."
       ::= { psampReporting 2 }

   psampCollectorGroupEntry OBJECT-TYPE
       SYNTAX      PsampCollectorGroupEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Defines an entry in the psampCollectorGroupTable."
       INDEX { psampCollectorGroupIndex, psampCollectorIndex }
       ::= { psampCollectorGroupTable 1 }

   PsampCollectorGroupEntry ::= SEQUENCE {
           psampCollectorGroupIndex                Integer32,



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 46]


Internet-Draft                  PSAMP MIB                   October 2005


           psampCollectorGroupRowStatus            RowStatus
       }

   psampCollectorGroupIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier of an entry
            in this parameter set table.

            The value is expected to remain constant at least from one
            re-initialization of the entity's network management system
            to the next re-initialization.

            It is used in entries of the psampBaseAssocTable as
            reference to this collector group and its associated
            parameters."
       ::= { psampCollectorGroupEntry 1 }

   psampCollectorGroupRowStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The status of this row of the table."
       ::= { psampCollectorGroupEntry 3 }

   -- (Data) Template Record Table

   psampTemplateRecordTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF PsampTemplateRecordEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists templates used by the exporter."
       ::= { psampReporting 3 }

   psampTemplateRecordEntry OBJECT-TYPE
       SYNTAX      PsampTemplateRecordEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Defines an entry in the psampTemplateTable."
       INDEX { psampTemplateRecordId, psampTemplateRecordIndex }
       ::= { psampTemplateRecordTable 1 }

   PsampTemplateRecordEntry ::= SEQUENCE {



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 47]


Internet-Draft                  PSAMP MIB                   October 2005


           psampTemplateRecordId             Integer32,
           psampTemplateRecordIndex          Integer32,
           psampTemplateRecordInfoElementId  Integer32,
           psampTemplateRecordRowStatus      RowStatus
       }

   psampTemplateRecordId OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier of an entry
            in this template record table.

            The value is expected to remain constant at least from one
            re-initialization of the entity's network management system
            to the next re-initialization.

            It is used in entries of the psampBaseAssocTable as
            reference to this template record and its associated
            parameters. It groups the information element ids in a
            template record."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampTemplateRecordEntry 1 }

   psampTemplateRecordIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier of a
            information element id in the template record identified by
            psampTemplateRecordId.

            The value is expected to remain constant at least from one
            re-initialization of the entity's network management system
            to the next re-initialization.

            The psampTemplateRecordIndex specifies the order in which
            the informatation element ids are used in the template
            record."
       ::= { psampTemplateRecordEntry 2 }

   psampTemplateRecordInfoElementId OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 48]


Internet-Draft                  PSAMP MIB                   October 2005


       STATUS      current
       DESCRIPTION
           "The Information Element Id at position
            psampTemplateRecordIndex in the template
            psampTemplateRecordId. This implicitly gives the data type
            and state values that are exported."
       REFERENCE
           "draft-ietf-psamp-sample-tech-07.txt, IPFIX/PSAMP INFO MODEL"
   -- Editor Note: get reference right!
       ::= { psampTemplateRecordEntry 3 }

   psampTemplateRecordRowStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The status of this row of the table."
       ::= { psampTemplateRecordEntry 4 }

   --==================================================================
   -- Base Associations Group
   --==================================================================

   psampBaseAssociations OBJECT IDENTIFIER ::= { psampObjects 5 }

   psampBaseAssociationTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF PsampBaseAssociationEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists all base associations at the managed
            node."
       ::= { psampBaseAssociations 1 }

   psampBaseAssociationEntry OBJECT-TYPE
       SYNTAX      PsampBaseAssociationEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Defines an entry in the psampInstanceTable."
       INDEX { psampBaseAssocIndex }
       ::= { psampBaseAssociationTable 1 }

   PsampBaseAssociationEntry ::= SEQUENCE {
           psampBaseAssocIndex              Integer32,
           psampBaseAssocObservationPoint   OBJECT IDENTIFIER,
           psampBaseAssocTemplateRecordId   Integer32,
           psampBaseAssocCollectorGrpIndex  Integer32,



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 49]


Internet-Draft                  PSAMP MIB                   October 2005


           psampBaseAssocPacketsObserved    Integer32,
           psampBaseAssocPacketsDropped     Integer32,
           psampBaseAssocMeteringProcessId  Integer32,
           psampBaseAssocReportingProcessId Integer32,
           psampBaseAssocReportsSent        Integer32,
           psampBaseAssocRowStatus          RowStatus
       }

   psampBaseAssocIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier of the base
            associations.

            The value is expected to remain constant at least from one
            re-initialization of the entity's network management system
            to the next re-initialization."
       ::= { psampBaseAssociationEntry 1 }

   psampBaseAssocObservationPoint OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The point where the packet is observed. If it is e.g, an
            interface it points to the mib-II object of the interface."
       ::= { psampBaseAssociationEntry 2 }

   psampBaseAssocTemplateRecordId OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The Id of a template in the template table. This implies
            the knowledge about the method chain from the method chain
            table. Furthermore it links the instance, method chain
            (selector) and template together.

            The identified template is applied to the stream of
            filtered/sampled packets observed after applying the method
            chain at the observation point."
       ::= { psampBaseAssociationEntry 3 }

   psampBaseAssocCollectorGrpIndex OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-create



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 50]


Internet-Draft                  PSAMP MIB                   October 2005


       STATUS      current
       DESCRIPTION
           "The index of the collector group to which packet reports
            are sent."
       ::= { psampBaseAssociationEntry 4 }

   psampBaseAssocPacketsObserved OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of packets passing at the observation point."
       ::= { psampBaseAssociationEntry 5 }

   psampBaseAssocPacketsDropped OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of packets dropped while filtering/sampling
            packets due to lack of resources."
       ::= { psampBaseAssociationEntry 6 }

   psampBaseAssocMeteringProcessId OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The process id of the metering process used by this
            Base Association."
       ::= { psampBaseAssociationEntry 7 }

   psampBaseAssocReportingProcessId OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The process id of the reporting process used by this
            Base Association."
       ::= { psampBaseAssociationEntry 8 }

   psampBaseAssocReportsSent OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of packet reports on sampled packets sent to
            the collector."



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 51]


Internet-Draft                  PSAMP MIB                   October 2005


       ::= { psampBaseAssociationEntry 9 }

   psampBaseAssocRowStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The status of this row of the table."
       ::= { psampBaseAssociationEntry 10 }

   -- Selector List Table ++++++++++++++++++++++++++++++++++++++++++++++

   psampSelectorListTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF PsampSelectorListEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table contains lists of selectors and connects them
            to the base associations where they are applied to
            different observation points. The packets that are selected
            by the last selection method are then exported."
       ::= { psampBaseAssociations 4 }

   psampSelectorListEntry OBJECT-TYPE
       SYNTAX      PsampSelectorListEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Defines an entry in the psampSelectorListTable."
       INDEX { psampBaseAssocIndex, psampSelectorListIndex }
       ::= { psampSelectorListTable 1 }

   PsampSelectorListEntry ::= SEQUENCE {
           psampSelectorListIndex           Integer32,
           psampSelectorListMethod          OBJECT IDENTIFIER,
           psampSelectorListPacketsObserved Integer32,
           psampSelectorListPacketsDropped  Integer32,
           psampSelectorListRowStatus       RowStatus
       }

   psampSelectorListIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier of an entry
            in this selector list table.




Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 52]


Internet-Draft                  PSAMP MIB                   October 2005


            The value is expected to remain constant at least from one
            re-initialization of the entity's network management system
            to the next re-initialization.

            It is used in entries of the psampBaseAssocTable as
            reference to this selector list and its associated
            parameters."
       ::= { psampSelectorListEntry 2 }

   psampSelectorListMethod OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The selector used at a certain position in the selector
            list."
       ::= { psampSelectorListEntry 3 }

   psampSelectorListPacketsObserved OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of packets observed at the method entry point."
       ::= { psampSelectorListEntry 4 }

   psampSelectorListPacketsDropped OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of packets dropped due to lack of resources by
            this selection method."
       ::= { psampSelectorListEntry 5 }

   psampSelectorListRowStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The status of this row of the table."
       ::= { psampSelectorListEntry 6 }

   --==================================================================
   -- Conformance information
   --==================================================================

   psampCompliances OBJECT IDENTIFIER ::= { psampConformance 1 }



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 53]


Internet-Draft                  PSAMP MIB                   October 2005


   psampGroups      OBJECT IDENTIFIER ::= { psampConformance 2 }

   --==================================================================
   -- Compliance statements
   --==================================================================

   psampCompliance MODULE-COMPLIANCE
       STATUS  current
       DESCRIPTION
           "An implementation that complies to this module must
            implement the objects defined in the mandatory groups
            psampGroupMetering and psampGroupReporting. The
            implementation of all other objects depends on the
            implementation of the corresponding functionality in the
            equipment."
       MODULE  -- this module
           MANDATORY-GROUPS {
                              psampGroupMetering,
                              psampGroupReporting
                            }
           GROUP psampGroupSampCountBased
           DESCRIPTION
               "These objects must be implemented if the corresponding
                sampling function is implemented in the equipment."
           GROUP psampGroupSampTimeBased
           DESCRIPTION
               "These objects must be implemented if the corresponding
                sampling function is implemented in the equipment."
           GROUP psampGroupSampRandOutOfN
           DESCRIPTION
               "These objects must be implemented if the corresponding
                sampling function is implemented in the equipment."
           GROUP psampGroupSampUniProb
           DESCRIPTION
               "These objects must be implemented if the corresponding
                sampling function is implemented in the equipment."
           GROUP psampGroupSampNonUniProb
           DESCRIPTION
               "These objects must be implemented if the corresponding
                sampling function is implemented in the equipment."
           GROUP psampGroupSampFlowState
           DESCRIPTION
               "These objects must be implemented if the corresponding
                sampling function is implemented in the equipment."
           GROUP psampGroupFilterMatch
           DESCRIPTION
               "These objects must be implemented if the corresponding
                filter function is implemented in the equipment."



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 54]


Internet-Draft                  PSAMP MIB                   October 2005


           GROUP psampGroupFilterHash
           DESCRIPTION
               "These objects must be implemented if the corresponding
                filter function is implemented in the equipment."
           GROUP psampGroupFilterRState
           DESCRIPTION
               "These objects must be implemented if the corresponding
                filter function is implemented in the equipment."
           GROUP psampGroupHashIPSX
           DESCRIPTION
               "These objects must be implemented if the corresponding
                hash function is implemented in the equipment."
           GROUP psampGroupHashBob
           DESCRIPTION
               "These objects must be implemented if the corresponding
                hash function is implemented in the equipment."
           GROUP psampGroupStatistics
           DESCRIPTION
               "These objects must be implemented if statistics are
                implemented on the equipment."
       ::= { psampCompliances 1 }

   --==================================================================
   -- MIB groupings
   --==================================================================

   psampGroupMetering OBJECT-GROUP
       OBJECTS {
                 psampSelectAllAvail,
                 psampSampCountBasedAvail,
                 psampSampTimeBasedAvail,
                 psampSampRandOutOfNAvail,
                 psampSampUniProbAvail,
                 psampSampNonUniProbAvail,
                 psampSampFlowStateAvail,
                 psampFilterMatchAvail,
                 psampFilterHashAvail,
                 psampFilterRStateAvail,
                 psampHashIPSXAvail,
                 psampHashBobAvail,

                 psampTemplateRecordInfoElementId,
                 psampTemplateRecordRowStatus,

                 psampSelectorListMethod,
                 psampSelectorListRowStatus,

                 psampBaseAssocObservationPoint,



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 55]


Internet-Draft                  PSAMP MIB                   October 2005


                 psampBaseAssocTemplateRecordId,
                 psampBaseAssocCollectorGrpIndex,
                 psampBaseAssocMeteringProcessId,
                 psampBaseAssocReportingProcessId,
                 psampBaseAssocRowStatus
               }
       STATUS  current
       DESCRIPTION
          "All objects that are basic for the metering process. It
           contains a basic metering function (psampSelectAll), The
           template definitions needed for the export of data, the
           method chain that fixes the metering functions applied to
           the observation point and several parameters concering
           the export process and the collectors."
       ::= { psampGroups 1 }

   psampGroupSampCountBased OBJECT-GROUP
       OBJECTS {
                 psampSampCountBasedMaxInterval,
                 psampSampCountBasedMinSpacing,
                 psampSampCountBasedInterval,
                 psampSampCountBasedSpacing,
                 psampSampCountBasedRowStatus
               }
       STATUS  current
       DESCRIPTION
          "These objects are needed if count based sampling is
           implemented."
       ::= { psampGroups 2 }

   psampGroupSampTimeBased OBJECT-GROUP
       OBJECTS {
                 psampSampTimeBasedMaxInterval,
                 psampSampTimeBasedMinSpacing,
                 psampSampTimeBasedInterval,
                 psampSampTimeBasedSpacing,
                 psampSampTimeBasedRowStatus
               }
       STATUS  current
       DESCRIPTION
          "These objects are needed if time based sampling is
           implemented."
       ::= { psampGroups 3 }

   psampGroupSampRandOutOfN OBJECT-GROUP
       OBJECTS {
                 psampSampRandOutOfNMaxPopulation,
                 psampSampRandOutOfNPopulation,



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 56]


Internet-Draft                  PSAMP MIB                   October 2005


                 psampSampRandOutOfNSample,
                 psampSampRandOutOfNRowStatus
               }
       STATUS  current
       DESCRIPTION
          "These objects are needed if random n-out-of-N sampling is
           implemented."
       ::= { psampGroups 4 }

   psampGroupSampUniProb OBJECT-GROUP
       OBJECTS {
                 psampSampUniProbProbability,
                 psampSampUniProbRowStatus
               }
       STATUS  current
       DESCRIPTION
          "These objects are needed if uniform probabilistic sampling
           is implemented."
       ::= { psampGroups 5 }

   psampGroupSampNonUniProb OBJECT-GROUP
       OBJECTS {
                 psampSampNonUniProbFunction,
                 psampSampNonUniProbFuncParam,
                 psampSampNonUniProbRowStatus
               }
       STATUS  current
       DESCRIPTION
          "These objects are needed if non-uniform probabilistic
           sampling is implemented."
       ::= { psampGroups 6 }

   psampGroupSampFlowState OBJECT-GROUP
       OBJECTS {
                 psampSampFlowStateFunction,
                 psampSampFlowStateFuncParam,
                 psampSampFlowStateRowStatus
               }
       STATUS  current
       DESCRIPTION
          "These objects are needed if flow state sampling is
           implemented."
       ::= { psampGroups 7 }

   psampGroupFilterMatch OBJECT-GROUP
       OBJECTS {
                 psampFilterMatchInfoElementId,
                 psampFilterMatchStartValue,



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 57]


Internet-Draft                  PSAMP MIB                   October 2005


                 psampFilterMatchEndValue,
                 psampFilterMatchMask,
                 psampFilterMatchRowStatus
               }
       STATUS  current
       DESCRIPTION
          "These objects are needed if match filtering is implemented."
       ::= { psampGroups 8 }

   psampGroupFilterHash OBJECT-GROUP
       OBJECTS {
                 psampFilterHashAddrType,
                 psampFilterHashHeaderBits,
                 psampFilterHashPayloadBytes,
                 psampFilterHashPayloadBits,
                 psampFilterHashFunction,
                 psampFilterHashFuncParam,
                 psampFilterHashInputBits,
                 psampFilterHashOutputBits,
                 psampFilterHashOutputMask,
                 psampFilterHashSelection,
                 psampFilterHashRowStatus
               }
       STATUS  current
       DESCRIPTION
          "These objects are needed if hash filtering is implemented."
       ::= { psampGroups 9 }

   psampGroupFilterRState OBJECT-GROUP
       OBJECTS {
                 psampFilterRStateFunction,
                 psampFilterRStateNegate,
                 psampFilterRStateIfIndex,
                 psampFilterRStateStartAS,
                 psampFilterRStateEndAS,
                 psampFilterRStateVendorFunc,
                 psampFilterRStateRowStatus
               }
       STATUS  current
       DESCRIPTION
          "These objects are needed if router state filtering is
           implemented."
       ::= { psampGroups 10 }

   psampGroupHashIPSX OBJECT-GROUP
       OBJECTS {
                 psampHashIPSXRowStatus
               }



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 58]


Internet-Draft                  PSAMP MIB                   October 2005


       STATUS  current
       DESCRIPTION
          "These objects are needed if the IPSX hash function is
           implemented."
       ::= { psampGroups 11 }

   psampGroupHashBob OBJECT-GROUP
       OBJECTS {
                 psampHashBobRowStatus
               }
       STATUS  current
       DESCRIPTION
          "These objects are needed if the Bob hash function is
           implemented."
       ::= { psampGroups 12 }

   psampGroupReporting OBJECT-GROUP
       OBJECTS {
                 psampCollectorDstIpAddressType,
                 psampCollectorDstIpAddress,
                 psampCollectorDstProtocol,
                 psampCollectorDstPort,
                 psampCollectorRowStatus,

                 psampCollectorGroupRowStatus
               }
       STATUS  current
       DESCRIPTION
          "These objects define the collectors i.e., the destinations
           of the exporting process."
       ::= { psampGroups 13 }

   psampGroupStatistics OBJECT-GROUP
       OBJECTS {
                 psampCollectorReportsSent,

                 psampSelectorListPacketsObserved,
                 psampSelectorListPacketsDropped,

                 psampBaseAssocPacketsObserved,
                 psampBaseAssocReportsSent,
                 psampBaseAssocPacketsDropped
               }
       STATUS  current
       DESCRIPTION
          "These objects contain statistical values gathered at
           different points in the metering process."
       ::= { psampGroups 14 }



Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 59]


Internet-Draft                  PSAMP MIB                   October 2005


   END


7.  Security Considerations

   There are a number of management objects defined in this MIB module
   with a MAX-ACCESS clause of read-write and/or read-create.  Such
   objects may be considered sensitive or vulnerable in some network
   environments.  The support for SET operations in a non-secure
   environment without proper protection can have a negative effect on
   network operations.


8.  Acknowledgment

   This document is a product of the PSAMP working group.


9.  References

9.1.  Normative References

   [1]  Duffield, N., "A Framework for Packet Selection and Reporting",
        draft-ietf-psamp-framework-10 (work in progress), January 2005.

   [2]  Zseby, T., "Sampling and Filtering Techniques for IP Packet
        Selection", draft-ietf-psamp-sample-tech-07 (work in progress),
        July 2005.

   [3]  Claise, B., "Packet Sampling (PSAMP) Protocol Specifications",
        draft-ietf-psamp-protocol-01 (work in progress), February 2004.

   [4]  McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
        McCloghrie, K., Rose, M., and S. Waldbusser, "Structure of
        Management Information Version 2 (SMIv2)", STD 58, RFC 2578,
        April 1999.

   [5]  McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
        McCloghrie, K., Rose, M., and S. Waldbusser, "Textual
        Conventions for SMIv2", STD 58, RFC 2579, April 1999.

   [6]  McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Conformance
        Statements for SMIv2", STD 58, RFC 2580, April 1999.

   [7]  Dietz, T., "Information Model for Packet Sampling Exports",
        draft-ietf-psamp-info-02 (work in progress), July 2004.





Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 60]


Internet-Draft                  PSAMP MIB                   October 2005


9.2.  Informative References

   [8]   Bradner, S., "Key words for use in RFCs to Indicate Requirement
         Levels", BCP 14, RFC 2119, March 1997.

   [9]   Quittek, J., "Requirements for IP Flow Information Export",
         draft-ietf-ipfix-reqs-16 (work in progress), June 2004.

   [10]  Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction
         and Applicability Statements for Internet-Standard Management
         Framework", RFC 3410, December 2002.

   [11]  Quittek, J., "Information Model for IP Flow Information
         Export", draft-ietf-ipfix-info-11 (work in progress),
         September 2005.

   [12]  Sadasivan, G., "Architecture for IP Flow Information Export",
         draft-ietf-ipfix-architecture-09 (work in progress),
         August 2005.
































Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 61]


Internet-Draft                  PSAMP MIB                   October 2005


Authors' Addresses

   Thomas Dietz (editor)
   NEC Europte Ltd.
   Network Laboratories
   Kurfuersten-Anlage 36
   69115 Heidelberg
   Germany

   Phone: +49 6221 90511-28
   Email: dietz@netlab.nec.de


   Benoit Claise
   Cisco Systems
   De Kleetlaan 6a b1
   1831 Degem
   Belgium

   Phone: +32 2 704 5622
   Email: bclaise@cisco.com






























Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 62]


Internet-Draft                  PSAMP MIB                   October 2005


Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.


Disclaimer of Validity

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM 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.


Copyright Statement

   Copyright (C) The Internet Society (2005).  This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.


Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.




Dietz & Claise         draft-ietf-psamp-mib-05.txt             [Page 63]