Network Working Group                                      T. Dietz, Ed.
Internet-Draft                                          NEC Europte Ltd.
Expires: Dezember 30, 2004 August 22, 2005                                       B. Claise
                                                           Cisco Systems
                                                               July 2004
                                                       February 18, 2005

           Definitions of Managed Objects for Packet Sampling
                     <draft-ietf-psamp-mib-03.txt>
                     <draft-ietf-psamp-mib-04.txt>

Status of this Memo

   This document is an Internet-Draft and is in full conformance with subject to all provisions
   of Section 10 3 of RFC 3667.  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 RFC2026.
   which he or she become aware will be disclosed, in accordance with
   RFC 3668.

   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.
   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 Dezember 30, 2004. August 22, 2005.

Copyright Notice

   Copyright (C) The Internet Society (2004). All Rights Reserved. (2005).

Abstract

   This memo defines managed objects for sampling and filtering
   techniques for IP packet sampling. 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.

Table of Contents

   1.   Introduction . . . . . . . . . . . . . . . . . . . . . . . .   3
     1.1  Points of Discussion . . . . . . . . . . . . . . . . . . .   3

   2.   PSAMP Documents Overview . . . . . . . . . . . . . . . . . .   5

   3.   Terminology  . . . . . . . . . . . . . . . . . . . . . . . .   5
     3.1  Base Association . . . . . . . . . . . . . . . . . . . . .   6

   4.   The Internet-Standard Management Framework . . . . . . . . .  3

   3.   6

   5.   Structure of the PSAMP MIB module  . . . . . . . . . . . . .  3
   3.1   The Sampling Methods Group .   6
     5.1  TEXTUAL CONVENTIONS  . . . . . . . . . . . . . . . .  4
   3.1.1 Selecting All Packets . . .   7
     5.2  The Selection Methods  . . . . . . . . . . . . . . . .  4
   3.1.2 Systematic Count-based Sampling . .   7
       5.2.1  Selecting All Packets  . . . . . . . . . . . .  4
   3.1.3 Systematic Time-based Sampling . . . .   8
       5.2.2  Systematic Count-based Sampling  . . . . . . . . . . .  5
   3.1.4 Random n-out-of-N   8
       5.2.3  Systematic Time-based Sampling . . . . . . . . . . . . . . . . .  5
   3.1.5 Uniform Probabilistic   8
       5.2.4  Random n-out-of-N Sampling . . . . . . . . . . . . . . .  5
   3.1.6 Non-Uniform   8
       5.2.5  Uniform Probabilistic Sampling . . . . . . . . . . . . .  6
   3.1.7 Flow State   9
       5.2.6  Non-Uniform Probabilistic Sampling . . . . . . . . . .   9
       5.2.7  Flow State Sampling  . . . . . . . . . .  6
   3.2   The Filtering Methods Group . . . . . . .   9
       5.2.8  Match Filtering  . . . . . . . . .  6
   3.2.1 Mask Filtering . . . . . . . . . .   9
       5.2.9  Hash Filtering . . . . . . . . . . . . .  6
   3.2.2 Hash Filtering . . . . . . .  10
       5.2.10   Router State Filtering . . . . . . . . . . . . . . .  10
     5.3  The Hash Functions .  6
   3.2.3 Router State Filtering . . . . . . . . . . . . . . . . . . .  7
   3.3  11
     5.4  The Reporting Group  .  . . . . . . . . . . . . . . . . . . .  7
   3.4   The Instance Group . . .  11
     5.5  The Base Associations  . . . . . . . . . . . . . . . . . .  7

   4.  12

   6.   Definition . . . . . . . . . . . . . . . . . . . . . . . . .  8

   5.  13

   7.   Security Considerations  . . . . . . . . . . . . . . . . . . 38

   6.    Open Issues  59

   8.   Acknowledgment . . . . . . . . . . . . . . . . . . . . . . .  59

   9.   References . . 38

   7.    Acknowledgment . . . . . . . . . . . . . . . . . . . . . . . 39  59
     9.1  Normative References . . . . . . . . . . . . . . . . . . . . 39  59
     9.2  Informative References . . . . . . . . . . . . . . . . . . . 39  60

        Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 40  60

        Intellectual Property and Copyright Statements . . . . . . . 41  62

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 [RFC2119].

   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 managed nodes PSAMP devices performing packet sampling. selection
   by sampling, filtering and hashing.

   It is assumed that packet sampling is performed according to the
   framework defined in [I-D.ietf-psamp-framework]. [PSAMP-FW].  Packet selection methods considered
   in the MIB module are specified in
   [I-D.ietf-psamp-sample-tech]. [PSAMP-TECH].  Configuration of
   the export of packet samples to a collector is modeled according to [I-D.ietf-psamp-protocol].

   Section 3 describes the structure
   [PSAMP-PROTO].

1.1  Points of the PSAMP MIB module and Discussion

   This section
   4 contains covers the formal definition. Security issues are discussed open issues, still to be resolved/updated in
   section 5.

2.
   this draft.
   MIB-1: Title should include sampling and filtering not only sampling.
      The Internet-Standard Management Framework

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

   Managed objects MIB document should
      reflect that.
   MIB-2: We are accessed via missing some examples, such as slide 8 of
      PSAMP-MIB-IETF60.ppt.  It is planned to integrate a virtual information store, termed entity
      relationship diagram plus some examples in the Management Information Base or MIB.  MIB objects next version.
      Examples should always display named OIDs otherwise they are generally
   accessed through
      difficult to understand.
   MIB-3: Do we want to be consistent with the Simple Network Management Protocol (SNMP).
   Objects upper cases in the MIB
      terminology? Do we want to say a note about it in the terminology
      section.  Something such as: "all terms in upper cases are defined using
      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 mechanisms defined in interface, you don't specify
         if we need the
   Structure of Management Information (SMI).  This memo specifies OID for the ifIndex, for the ifDescr, for
         something else
      *  When you refer to an OID for a MIB
   module that function, an example is compliant needed
      *  When you refer to the SMIv2, an OID for set of input parameters, which is described OID
         do we need? What if there are multiple indexes in STD 58,
   RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580
   [RFC2580].

3. Structure of the PSAMP MIB module

   This draft does still not contain table?
      Thus a complete PSAMP MIB module
   definition, but some essential components of it sketching the
   structure of the complete module. new section about undefined function, parameters and
      observation point is really needed.
   MIB-5: The sketch serves as input section on hash filtering is difficult to a
   discussion of the MIB module structure, particular of the modeling of
   capabilities and configured packet sampling instances. Please find a
   (not complete) list of open issues 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 end of RowStatus, we have to speficy the document.

   The PSAMP-MIB module defined below contains four groups minimum set of objects:
   the sampling methods group, the filtering methods group, MIB
      variables in that table that need to be set in order for the
   reporting group, and
      status to go to "create", i.e.  the instances group.

3.1 The Sampling Methods Group

   The first group states information.  That's
      one of objects contains information about sampling
   methods. Each sampling method 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 covered by an individual sub-tree not specified in [PSAMP-TECH].
   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 group. For each method a single object indicating the
   availability is "available".  It should be available when one
      of the method given functions is defined. Furthermore, available."
   MIB-11: PsampFilterRStateParamSetEntry: Specifically in this case, we
      need to define which minimum set of MIB variable should be set up
      for the following
   objects entry to go "createandgo".  For example, is
      psampFilterRStateVendorFunc enough? See aslo MIB-6.
   MIB-12: We are defined for each method except missing the first: a sub-group of
   objects indicating specific capabilities and limits of observation domain in both the method, PSAMP-MIB
      PsampBaseAssocEntry and a sub-group specifying sets of parameters in a table. Each
   parameter set uniquely specifies all parameters of a packet sampling
   instance of PSAMP-TECH document.
   MIB-13: psampBaseAssoceObservationPoint OBJECT-TYPE: Where should the method. Also
      OID point to? ifIndex, ifDescr?
   MIB-14: Capitalization should be consistent throughout the document.
      Maybe the solution is to list all parameters sets contain a row
   status.

   Methods reference terms from PSAMP and parameters of methods are specified
      IPFIX drafts (the ones used in
   [I-D.ietf-psamp-sample-tech]. the draft).  So far, objects for six methods defined
   in this Internet drafts are contained just a list, with
      no definition, in the PSAMP MIB module plus an
   additional trivial method. Some terminology section.  Feedback?
   MIB-15: Consistent usage of the methods cannot data types (especially Unsigned32 and
      Integer32 with ranges) must be finished
   within the PSAMP framework because they need checked! Not sure if especially an
      index can be Unsigned32, if he must have a limited range, etc.
      Can some assistance from the
   vendor side. experts speak up?
   MIB-16: Hash filtering again (see also MIB-5).  The vendor must specify e.g., hash filtering
      group is confusing because it was specified before the algorithm used for
   non-uniform probabilistic sampling. The seven methods are selecting
   all, systematic count-based sampling, systematic time-based sampling,
   random n-out-of-N sampling, uniform probabilistic sampling,
   non-uniform probabilistic sampling and flow state sampling.

   All methods - except hash
      function group.  We mainly care about the selecting all method - hash function defined in
      the appendix of PSAMP-TECH, so why do we have an object called
   psampSamp"MethodName"Avail indicating if 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 is implemented (IPSX and available
      Bob) specified in the managed node. The capability objects are
   following after that object. These objects depend on the sampling
   method. After 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 capabilities mailing list! We mainly need the parameter set table follows. The
   objects hash
      function in the table also depend on the sampling method. These
   parameter sets are hardware, where it can not necessarily instantiated at the managed node,
   but for each instantiated parameter set of be changed so easily as
      changing a method, there MUST mib.
   MIB-17: Hash filtering again (see also MIB-5 and MIB-16).  Question
      of security! Do we want to be an
   entry able to read all of the values in
      PsampFilterHashParamSetEntry.  Including the corresponding table.

   EDITOR NOTE: TBD define usage output of RowStatus. The whole paragraph must
   be reviewed before the final version hash
      function? Could an attacker with SNMP read access deduce what type
      of traffic to remove remarks for final
   refinements that must be ready/solved 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 final version.

3.1.1 Selecting All Packets

   This trivial packet selection method is alway available. If it best thing to do is
   applied, all packets will to ask Nick and
      Tanja.
   MIB-18: Router State Filtering (see also MIB-10).  It might be selected.

3.1.2 Systematic Count-based Sampling

   The systematic count-based sampling method has two easier
      with subtables for each router state function.  That would also
      clarify the point of psampFilterRStateAvail: one capability
   objects: per
      function -> that make more sense.  That would also solve MIB-10.
      We can extend with new methods easily.

2.  PSAMP Documents Overview

   [PSAMP-FW]: "A Framework for Packet Selection and Reporting" The psampSampCountBasedMaxInterval object indicates
      document describes the
   maximum sampling interval in PSAMP framework for network elements to
      select subsets of packets supported by statistical and other methods, and to
      export a stream of reports on the implementation,
   whereas psampSampCountBasedMaxSpacing indicates the maximum spacing
   in selected packets supported by the implementation.

   Finally the psampSampCountBasedParamSetTable contains two parameters:
   the sampling interval length to a collector.
      Definitions of terminology and the spacing specified in numbers use of
   packets.

3.1.3 Systematic Time-based Sampling

   The systematic time-based sampling method has two capability objects:
   psampSampTimeBasedMaxInterval indicates the maximum sampling interval
   in microseconds supported by the implementation, whereas
   psampSampTimeBasedMaxSpacing indicates the maximum spacing in
   microseconds supported by the implementation.

   Finally the psampSampTimeBasedParamSetTable contains two parameters:
   the sampling interval length terms "must",
      "should" and the spacing specified "may" in
   microseconds.

3.1.4 Random n-out-of-N Sampling

   The random n-out-of-N sampling method has two capability objects:
   psampSampRandOutOfNMaxPopulation specifying the maximum population N, this document are informational only.
   [PSAMP-TECH]: "Sampling and psampSampRandOutOfNMaxSize Filtering Techniques for IP Packet
      Selection", describes the maximum size set of n packet selection techniques
      supported by the
   implementation.

   EDITOR NOTE: maximum size PSAMP.
   PSAMP-MIB: "Definitions of n should be naturally the same as Managed Objects for Packet Sampling" (this
      document) describes the
   maximum population N! So we may drop psampSampRandOutOfNMaxSize in PSAMP Management Information Base.
   [PSAMP-PROTO]: "Packet Sampling (PSAMP) Protocol Specifications"
      specifies the next version. 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 random n-out-of-N sampling method has also two parameter objects PSAMP terminology defined here includes (and is consistent with)
   all terms listed in [PSAMP-TECH].  We here define additional terms
   required for the psampSampRandOutOfNParamSetTable. The first one is
   psampSampRandOutOfNPopulation definition of managed objects.  An architecture
   overview and gives the number possible configurations of PSAMP elements N can be found
   in
   the parent population. [PSAMP-FW].  Detailed definitions of selectors can be found in
   [PSAMP-TECH].  PSAMP terminology also aims to be consistent with
   terms used in [I-D.ietf-ipfix-reqs].  The second psampSampRandOutOfNSize gives relationship between some
   PSAMP and IPFIX terms is described in [PSAMP-FW].

3.1  Base Association

   The Base Association combines several values defined at a PSAMP
   device.  It is derived from the
   number ASSOCIATION defined in [PSAMP-TECH]
   section 7.  It contains references to an Observation Point, a
   template record, a list of Collectors, a list of Selectors and
   process ids of elements n taken from the parent population N. With metering and the reporting process.  It associates
   these
   two parameters you sample n packets out of N.

3.1.5 Uniform Probabilistic Sampling

   So far, values to specify one Measurement Process on the sub-group of objects specifying capabilities is empty for
   this method.

   EDITOR NOTE: this must be changed since we somehow PSAMP device.
   Several Measurement Processes can define some
   constraints now.

   The psampSampUniProbParamSetTable contains one parameters, be defined on the
   psampSampUniProbProbability PSAMP device and gives the probability that a packet
   is sampled. The probability is equal for
   every packet. The given
   value must Measurement Process will be divided described by 4294967295 (=2^32-1), so a value of 0 means
   no packet is sampled (probability is 0) and Base Association.

4.  The Internet-Standard Management Framework

   For a value of 4294967295
   means every packet is sampled (probability is 1).

3.1.6 Non-Uniform Probabilistic Sampling

   So far, the sub-group detailed overview of objects specifying capabilities is empty for
   this method.

   The psampSampNonUniProbParamSetTable contains one parameters, the
   psampSampNonUniProbFunction object documents that points to another object
   (OID) describing describe the function that computes the propability that a
   packet is sampled.

   EDITOR NOTE: Do we need current
   Internet-Standard Management Framework, please refer to define section 7 of
   RFC 3410 [RFC3410].

   Managed objects are accessed via a standard function?

3.1.7 Flow State Sampling

   So far, virtual information store, termed
   the sub-group of Management Information Base or MIB.  MIB objects specifying capabilities is empty for
   this method.

   The psampSampFlowStateParamSetTable contains one parameters, are generally
   accessed through the
   psampSampFlowStateFunction object that points to another object (OID)
   describing Simple Network Management Protocol (SNMP).
   Objects in the function that checks MIB are defined using the flow state and decides if mechanisms defined in the
   Structure of Management Information (SMI).  This memo specifies a
   packet MIB
   module that is sampled.

   EDITOR NOTE: Do we need compliant to define a standard function?

3.2 the SMIv2, which is described in STD 58,
   RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580
   [RFC2580].

5.  Structure of the PSAMP MIB module

   The Filtering Methods Group

   EDITOR NOTE: This section does need a complete rewrite. PSAMP MIB module follows the structures given in [PSAMP-FW] and
   [PSAMP-TECH].  The rewrite
   is deferred until psampBaseAssociations subtree builds the input for heart of
   the filtering methods from PSAMP MIB.  This subtree models the other
   WG documents is stable. values described by the Base
   Association.  The second group psampBaseAssocTable contains information about one entry per Base
   Association.  The list of Selectors is modelled by a second table the filtering methods.
   psampSelectorListTable.  This group table is build up similarly linked to the sampling methods group. It
   currently contains three filtering methods,
   psampBaseAssocTable by the mask filtering, first index which is the
   hash filtering
   psampBaseAssocIndex.  A psampBaseAssocEntry also references an entry
   in the psampTemplateRecordTable and the router state filtering.

3.2.1 Mask Filtering psampCollectorGroupTable to be done...

3.2.2 Hash Filtering

   The first object in this group is psampHashFilteringAvailability
   indicating
   link the availability of this method. So far, metering process with the sub-group of
   objects specifying capabilities is empty for this method.

   EDITOR NOTE: The capabilites should somehow say what hash functions
   are available. reporting process.

   Every selection method described in [PSAMP-TECH] gets its own subtree
   in the PSAMP MIB.  The psampHashFilteringParameterSetTable subtree always contains a capability section
   and a parameter set in
   each of its entries that completely specifies a configuration of an
   instance of the packet filtering method. These table.  So several parameter sets are not
   necessarily instantiated at the managed node, but can be defined
   for each
   instantiated selection method.  The parameter set of this method, there MUST be is linked to the Base
   Association by an entry in
   this table. The parameter set contains one parameters, the
   psampHashFilteringFunction contains an object ID poiting psampSelectorListTable.  The
   psampSelectorListMethod point to the hash
   function used.

3.2.3 Router State Filtering

   to be done...

3.3 The Reporting Group

   The reporting group first object id of managed objects provides information on
   collectors to which sampled packets a parameter
   set entry.  The hash functions proposed in [PSAMP-TECH] are exported modelled
   in a similar way as the selection methods and they allow to
   configure collectors. are referenced by a
   psampFilterHashParamSetEntry.

   The group contains three tables, reporting and exporting processes are modeled by the
   psampCollectorTable, the psampCollectorGroupTable and the psampTemplateTable.

   Each entry in the psampCollectorTable specifies a collector by its IP
   address, used transport protocol and port number. Also it
   psampTemplateRecordTable.  The psampTemplateRecordTable contains
   Template Records as defined by the number of reports sent to this collector.

   The psampCollectorGroupTable groups one or more collectors IPFIX protocol.  They are used to a set
   of collectors where sampled
   export the selected packets are sent to. Thus reporting to
   more than one collector at the same time is possible. collectors.  The psampTemplateTable lists all data templates that collectors itself
   are used by modelled in the
   PSAMP exporter.

   EDITOR NOTE: These table must be completed psampCollectorTable and the templates must be
   somehow linked
   psampCollectorGroupTable combines several Collectors to which the collector and an instance.

3.4 The Instance Group

   The instance group of managed objects provides information about
   active
   packet sampling instances at reports are sent simultaniously.

5.1  TEXTUAL CONVENTIONS

   The PSAMP MIB defines one new textual convention, the managed node.
   PsampMethodAvailability.  It also allows
   to create new instances and to terminate them.

   The group contains two tables, the psampInstanceTable and the
   psampMethodChainTable. Each entry of the psampInstanceTable describes
   an instance by the IP interface it is acting at and by the collector
   group to which reports on sampled packets are sent. Furthermore used as SYNTAX of all those objects
   that indicate if a
   start and stop time can be given when the sampling selection method should run.
   The collectors are specified by their index in the
   psampCollectorGroupTable. The number of packets sampled and sent by
   the instance or hash function is available as statistical value
   psampInstancePacketsObserved for each instance.

   The methods used for the instance can be retrieved through the index
   given in the psampInstanceTable.
   a specific implementation of a PSAMP device.

5.2  The index Selection Methods

   The first group of the instance table objects contains information about sampling
   methods and filtering methods.  Each method is
   also covered by an
   individual subtree.  Expect for the first index in the psampMethodChainTable. So each method
   entry with the same (first) index as the instance is used that corresponds to produce
   the data record for the instance.

   The psampMethodChainTable describes
   the concatenation exceptional selection of methods all packets, the following objects are
   defined for each method: a given instance. If concatenation subtree of methods is not supported on the
   managed node the table will hold exactly one entry per instance.

   The table has two indexes: the first one references an entry in the
   instance table objects indicating specific
   capabilities and limits of the second one is the running index for the
   method. The method itself is represented by that may be empty if no
   capabilities or limits are available, and a pointer (OID) to subtree specifying sets
   of parameters in a
   paremeter set. The methods are applied table.  Each row in the order indicated by the
   second index psampMethodChainIndex. Assume the following table:

   1.4.4.1.2.5.1 = 1 (second index) 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
   [PSAMP-TECH].  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.

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
   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 [PSAMP-INFO],
   [I-D.ietf-ipfix-info].  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 [PSAMP-TECH] 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
   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.
   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 [PSAMP-TECH].  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
   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 (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.

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.

            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 XXX }
   -- 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 }

   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."
       ::= { psampSampCountBasedCap 1 }

   psampSampCountBasedMinSpacing OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "number of packets"
       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 time or 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
            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       "number of 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."
       REFERENCE
           "PSAMP-SAMPLE-TECH, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampSampCountBasedParamSetEntry 2 }

   psampSampCountBasedSpacing OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "number of 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 in time or number of packets between the end of one
            sampling interval and the start of the next succeeding
            interval."
       REFERENCE
           "draft-ietf-psamp-sample-tech-04.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
   --==================================================================

   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       "microseconds"
       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."
       ::= { psampSampTimeBasedCap 1 }

   psampSampTimeBasedMinSpacing OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "microseconds"
       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 time or number of packets 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
       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       "microseconds"
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "This object specifies a sampling interval for systematic
           time-based sampling. Sampling means, that all packets that
           arrive in this interval are selected."
       REFERENCE
           "draft-ietf-psamp-sample-tech-04.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampSampTimeBasedParamSetEntry 2 }

   psampSampTimeBasedSpacing OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "microseconds"
       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 time or number of packets between the end of one
            sampling interval and the start of the next succeeding
            interval."
       REFERENCE
           "draft-ietf-psamp-sample-tech-04.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 ++++++++++++++++++++++++++++++++++++++++++++++++++++

   psampSampRandOutOfNCap OBJECT IDENTIFIER
       ::= { psampSampRandOutOfN 2 }

   psampSampRandOutOfNMaxPopulation 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 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
       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 elements in the parent
           population of the sampling algorithm."
       REFERENCE
           "draft-ietf-psamp-sample-tech-04.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 elements that are
            sampled from the parent population of the sampling
            algorithm."
       REFERENCE
           "draft-ietf-psamp-sample-tech-04.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 }

   --==================================================================
   --* 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
       }

   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-04.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 }

   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
       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-04.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-04.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
   --==================================================================

   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 parmeter 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
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier of an entry
            in this 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 table.

            The value is expected to a parmeter 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-04.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 psampSampCountBasedParamSetTableEntry.4)
   1.4.4.1.4.5.1 = xxx (status for the function
            specified with psampSampFlowStateFunction that is used to
            determine the packet that is to be sampled."
       REFERENCE
           "draft-ietf-psamp-sample-tech-04.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
   --==================================================================

   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 row)
   1.4.4.1.4.5.2 = xxx (status availability of match filtering
            at the row)

   This would mean that the method psampSampTimeBased with parameter set
   psampSampTimeBasedParamSetTableEntry.10 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 applied prior to based on the
   method psampSampCountBased with IPFIX/PSAMP Information
            Elements. The parameter set
   psampSampCountBasedParamSetTableEntry.4 for contains the instance with index
   5.

4. Definition
   PSAMP-MIB DEFINITIONS Information
            Element Id, a value or value range and a mask."
       ::= BEGIN

   IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE, { 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, Unsigned32, mib-2
           FROM SNMPv2-SMI                  -- RFC2578
       TEXTUAL-CONVENTION, DateAndTime,
           psampFilterMatchInfoElementId Integer32,
           psampFilterMatchStartValue    OCTET STRING,
           psampFilterMatchStopValue     OCTET STRING,
           psampFilterMatchMask          OCTET STRING,
           psampFilterMatchRowStatus     RowStatus
           FROM SNMPv2-TC                   -- RFC2579
       MODULE-COMPLIANCE, OBJECT-GROUP
           FROM SNMPv2-CONF                 -- RFC2580
       InterfaceIndex                       -- RFC2863
           FROM IF-MIB
       InetAddressType, InetAddress
           FROM INET-ADDRESS-MIB;           -- RFC3291

   psampMIB MODULE-IDENTITY
       LAST-UPDATED "200401131200Z"         -- 13 February 2004
       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"
       }

   psampFilterMatchIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The PSAMP MIB defines managed objects for packet sampling.
            These objects provide information about managed nodes
            supporting packet sampling, including packet sampling
            capabilities, configuration and statistics.  They also allow locally arbitrary, but unique identifier of an entry
            in this parameter set table.

            The value is expected to configure packet sampling concerning the IP interface remain constant at
            which packets are sampled, least from one
            re-initialization of the packet selections methods entity's network management system
            to the next re-initialization.

            It is used for sampling, and in entries of the collector psampSelectorListTable as
            reference to which packet samples
            are exported.

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

        --  Revision history

        REVISION     "200407151200Z" information element that is encoded as the
            InfoElementId defined in the IPFIX/PSAMP Information
            Models."
       REFERENCE
           "draft-ietf-psamp-sample-tech-04.txt, Section 5.1, ipfix and
            psamp info model!!"
   -- 15 July 2004 Editor Note: get reference right!
       ::= { psampFilterMatchParamSetEntry 2 }

   psampFilterMatchStartValue OBJECT-TYPE
       SYNTAX      OCTET STRING
       MAX-ACCESS	read-create
       STATUS      current
       DESCRIPTION
            "Initial version, published
           "The value of the information element or the start of the
            value range if psampFilterMatchStopValue is not equal to
            this value. The data type and its encoding is the same as RFC yyyy."
            in PSAMP-PROTO."
       REFERENCE
           "draft-ietf-psamp-sample-tech-04.txt, Section 5.1, PROTO!!"
   -- RFC Ed.: replace yyyy with actual RFC number & remove this notice Editor Note: get reference right!
       ::= { mib-2 XXX psampFilterMatchParamSetEntry 3 }
   -- XXX

   psampFilterMatchStopValue OBJECT-TYPE
       SYNTAX      OCTET STRING
       MAX-ACCESS	read-create
       STATUS      current
       DESCRIPTION
           "The final value of a value range. It should be equal to
            psampFilterMatchStartValue if a single value should be assigned by IANA.
            encoded. The data type and its encoding is the same as in
            PSAMP-PROTO."
       REFERENCE
           "draft-ietf-psamp-sample-tech-04.txt, Section 5.1, PROTO!!"
   -- Textual Conventions

   PsampMethodAvailability Editor Note: get reference right!
       ::= TEXTUAL-CONVENTION { psampFilterMatchParamSetEntry 4 }

   psampFilterMatchMask OBJECT-TYPE
       SYNTAX      OCTET STRING
       MAX-ACCESS	read-create
       STATUS      current
       DESCRIPTION
           "Used to report the availability of a packet selection
           method:

            available(1) -
           "The selected value of the method given information element is supported
            masked with this value. The resulting value is compared to
            psampFilterMatchStartValue and can be used
            notAvailable(2) - the mothos packet is selected if
            they match. Note that a mask does not available"
       SYNTAX      INTEGER {
                       available(1),
                       notAvailable(2)
                   }

   -- Top level structure of make sense for all
            information elements and if it is specified the MIB

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

   --================================================================== mask has
            the same data type and encoding as the information element
            referenced by the psampFilterMatchInfoElementId."
       REFERENCE
           "draft-ietf-psamp-sample-tech-04.txt, Section 5.1, PROTO!!"
   -- Packet selection sampling methods group of objects
   --==================================================================

   psampSamplingMethods        OBJECT IDENTIFIER ::= Editor Note: get reference right!
       DEFVAL      { psampObjects 1 ''H }

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

   psampSelectAll OBJECT IDENTIFIER
       ::= { psampSamplingMethods 0 psampFilterMatchParamSetEntry 5 }

   psampSelectAllAvail

   psampFilterMatchRowStatus OBJECT-TYPE
       SYNTAX      PsampMethodAvailability      RowStatus
       MAX-ACCESS  read-only  read-create
       STATUS      current
       DESCRIPTION
          "When retrieved,
           "The status of this object indicates the availability row of the trivial method of selecting all packets."
       DEFVAL { available } table."
       ::= { psampSelectAll 1 psampFilterMatchParamSetEntry 6 }

   --==================================================================
   --* Method 1: Systematic Count-based Sampling Hash filtering
   --==================================================================
   psampSampCountBased

   psampFilterHash OBJECT IDENTIFIER ::= { psampSamplingMethods psampFilteringMethods 1 }

   psampSampCountBasedAvail

   psampFilterHashAvail OBJECT-TYPE
       SYNTAX      PsampMethodAvailability
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "When retrieved, this
           "This object indicates the availability of systematic count-based sampling hash filtering
            at the managed node."
       DEFVAL { notAvailable }
       ::= { psampSampCountBased psampFilterHash 1 }

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

   psampSampCountBasedCap

   psampFilterHashCapabilities OBJECT IDENTIFIER
       ::= { psampSampCountBased 2 }

   psampSampCountBasedMaxInterval OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "number of packets"
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "When retrieved, this object indicates the the maximum
          number that can be specified for the sampling interval."
       ::= { psampSampCountBasedCap 1 }

   psampSampCountBasedMaxSpacing OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "number of packets"
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "When retrieved, this object indicates the the maximum
          number that can be specified for the sampling spacing."
       ::= { psampSampCountBasedCap psampFilterHash 2 }

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

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

   psampSampCountBasedParamSetTable

   psampFilterHashParamSetTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF
                   PsampSampCountBasedParamSetEntry
                   PsampFilterHashParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists configurations of systematic count-
           based packet sampling. hash filtering. A
            parameter set describing a configuration contains two parameters: ten
            parameter describing the sampling
           interval length hash function, the input bits feed
            into the hash function and the spacing." output of the function."
       ::= { psampSampCountBased psampFilterHash 3 }

   psampSampCountBasedParamSetEntry

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

   PsampSampCountBasedParamSetEntry

   PsampFilterHashParamSetEntry ::=
       SEQUENCE {
           psampSampCountBasedIndex
           psampFilterHashIndex        Integer32,
           psampSampCountBasedInterval  Unsigned32,
           psampSampCountBasedSpacing   Unsigned32,
           psampSampCountBasedRowStatus
           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
       }

   psampSampCountBasedIndex

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

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

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

   psampSampCountBasedInterval

   psampFilterHashAddrType OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "number of packets"      InetAddressType
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "When retrieved, this object specifies
           "The address type the sampling
          interval for systematic count-based sampling." 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-04.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampSampCountBasedParamSetEntry psampFilterHashParamSetEntry 2 }

   psampSampCountBasedSpacing

   psampFilterHashHeaderBits OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "number of packets"      OCTET STRING (SIZE (40))
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "When retrieved, this
           "The object specifies the sampling
          spacing header bits of the layer 3 header
            used for systematic count-based sampling." 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-04.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampSampCountBasedParamSetEntry psampFilterHashParamSetEntry 3 }

   psampSampCountBasedRowStatus

   psampFilterHashPayloadBytes OBJECT-TYPE
       SYNTAX      RowStatus      Integer32 (0..2147483647)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The status of this row number of the table."
       ::= { psampSampCountBasedParamSetEntry 4 }

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

   psampSampTimeBased OBJECT IDENTIFIER ::= { psampSamplingMethods 2 }

   psampSampTimeBasedAvail OBJECT-TYPE
       SYNTAX      PsampMethodAvailability
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "When retrieved, this object indicates the availability bytes of systematic time-based sampling at payload used as input to the managed node."
       DEFVAL { notAvailable }
       ::= { psampSampTimeBased 1 } hash
            function."
       REFERENCE
           "draft-ietf-psamp-sample-tech-04.txt, Section 5.1"
   -- Capabilities ++++++++++++++++++++++++++++++++++++++++++++++++++++

   psampSampTimeBasedCap OBJECT IDENTIFIER Editor Note: get reference right!
       ::= { psampSampTimeBased 2 psampFilterHashParamSetEntry 4 }

   psampSampTimeBasedMaxInterval

   psampFilterHashPayloadBits OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "microseconds"      OCTET STRING
       MAX-ACCESS  read-only  read-create
       STATUS      current
       DESCRIPTION
          "When retrieved, this
           "The object indicates the specifies the maximum
          number that can be specified payload bits used for hashing. The
            size depends on the sampling interval." value of psampFilterHashPayloadBytes."
       REFERENCE
           "draft-ietf-psamp-sample-tech-04.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampSampTimeBasedCap 1 psampFilterHashParamSetEntry 5 }

   psampSampTimeBasedMaxSpacing

   psampFilterHashFunction OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "microseconds"      OBJECT IDENTIFIER
       MAX-ACCESS  read-only  read-create
       STATUS      current
       DESCRIPTION
          "When retrieved, this
           "This object indicates the specifies the maximum
          number that can be specified for hash function executed by the sampling spacing."
            current filtering method."
       ::= { psampSampTimeBasedCap 2 psampFilterHashParamSetEntry 6 }

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

   psampSampTimeBasedParamSetTable

   psampFilterHashFuncParam OBJECT-TYPE
       SYNTAX      SEQUENCE OF
                   PsampSampTimeBasedParamSetEntry      OBJECT IDENTIFIER
       MAX-ACCESS  not-accessible  read-create
       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 object specifies the spacing." parameters used in addition to
            those specified in this table."
       ::= { psampSampTimeBased 3 psampFilterHashParamSetEntry 7 }

   psampSampTimeBasedParamSetEntry

   psampFilterHashInputBits OBJECT-TYPE
       SYNTAX      PsampSampTimeBasedParamSetEntry      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible  read-create
       STATUS      current
       DESCRIPTION
           "Defines an entry
           "The number of bits used as input key to the hash function.
            Usually this should be in the
           psampSampTimeBasedParamSetTable."
       INDEX { psampSampTimeBasedIndex }
       ::= { psampSampTimeBasedParamSetTable 1 }

   PsampSampTimeBasedParamSetEntry form of 2^x."
       REFERENCE
           "draft-ietf-psamp-sample-tech-04.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::=
       SEQUENCE {
           psampSampTimeBasedIndex     Integer32,
           psampSampTimeBasedInterval  Unsigned32,
           psampSampTimeBasedSpacing   Unsigned32,
           psampSampTimeBasedRowStatus RowStatus psampFilterHashParamSetEntry 8 }

   psampSampTimeBasedIndex

   psampFilterHashOutputBits OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible  read-create
       STATUS      current
       DESCRIPTION
           "The index number of this parameter set in bits that form the
          psampSampTimeBasedParameterSetTable.

          It is used in entries output value of the psampInstanceTable as hash
            function."
       REFERENCE
           "draft-ietf-psamp-sample-tech-04.txt, Section 5.1"
   -- Editor Note: get reference to this parameter set." right!
       ::= { psampSampTimeBasedParamSetEntry 1 psampFilterHashParamSetEntry 9 }

   psampSampTimeBasedInterval

   psampFilterHashOutputMask OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "microseconds"      OCTET STRING
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "When retrieved, this object specifies a sampling
          interval for systematic time-based sampling."
           "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-04.txt, Section 5.1"
   -- Editor Note: get reference right!
       DEFVAL      { ''H }
       ::= { psampSampTimeBasedParamSetEntry 2 psampFilterHashParamSetEntry 10 }

   psampSampTimeBasedSpacing

   psampFilterHashSelection OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "microseconds"      DisplayString
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "When retrieved, this
           "This object specifies represents the hash values that select a sampling
          spacing for systematic time-based sampling."
            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-04.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampSampTimeBasedParamSetEntry 3 psampFilterHashParamSetEntry 11 }

   psampSampTimeBasedRowStatus

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

   --==================================================================
   --* Method 3: Random n-out-of-N Sampling 2: Router State filtering
   --==================================================================

   psampSampRandOutOfN

   psampFilterRState OBJECT IDENTIFIER ::= { psampSamplingMethods 3 psampFilteringMethods 2 }

   psampSampRandOutOfNAvail

   psampFilterRStateAvail OBJECT-TYPE
       SYNTAX      PsampMethodAvailability
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "When retrieved, this
           "This object indicates the availability of random n-out-of-N sampling router state
            filtering at the managed node."
       DEFVAL { notAvailable }
       ::= { psampSampRandOutOfN psampFilterRState 1 }

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

   psampSampRandOutOfNCap OBJECT IDENTIFIER

   -- 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."
       ::= { psampSampRandOutOfN 2 psampFilterRState 3 }

   psampSampRandOutOfNMaxPopulation

   psampFilterRStateParamSetEntry OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "number of packets"      PsampFilterRStateParamSetEntry
       MAX-ACCESS  read-only  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,
           psampFilterRStateStopAS     InetAutonomousSystemNumber,
           psampFilterRStateVendorFunc OBJECT IDENTIFIER,
           psampFilterRStateRowStatus  RowStatus
       }

   psampFilterRStateIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "When retrieved,
           "The locally arbitrary, but unique identifier of an entry
            in this object indicates 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 maximum
          number that can be specified for next re-initialization.

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

   psampSampRandOutOfNMaxSize

   psampFilterRStateFunction OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "number of packets"      INTEGER {
                       other        (1),
                       ingressIf    (2),
                       egressIf     (3),
                       aclViolation (4),
                       rpfFailure   (5),
                       noResources  (6),
                       noRoute      (7),
                       originAS     (8),
                       destAS       (9)
                   }
       MAX-ACCESS  read-only  read-create
       STATUS      current
       DESCRIPTION
          "When retrieved, this
           "This object indicates which function is applied to the
            router state. The validity of the maximum
          number that can be specified for following objects depends
            on the sampling size." 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-04.txt, Section 5.1"
   -- Editor Note: get reference right!
       ::= { psampSampRandOutOfNCap psampFilterRStateParamSetEntry 2 }

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

   psampSampRandOutOfNParamSetTable

   psampFilterRStateNegate OBJECT-TYPE
       SYNTAX      SEQUENCE OF
                   PsampSampRandOutOfNParamSetEntry      TruthValue
       MAX-ACCESS  not-accessible  read-create
       STATUS      current
       DESCRIPTION
           "This table lists configurations of random n-out-of-N
           sampling.  A parameter
           "If set describing a configuration
           contains a single parameter only: to true this object will negate the sampling rate." output of the
            psampFilterRStateFunction."
       DEFVAL      { false }
       ::= { psampSampRandOutOfN psampFilterRStateParamSetEntry 3 }

   psampSampRandOutOfNParamSetEntry

   psampFilterRStateIfIndex OBJECT-TYPE
       SYNTAX      PsampSampRandOutOfNParamSetEntry      InterfaceIndexOrZero
       MAX-ACCESS  not-accessible  read-create
       STATUS      current
       DESCRIPTION
           "Defines an entry in
           "Used if the
           psampSampRandOutOfNParamSetTable."
       INDEX { psampSampRandOutOfNIndex }
       ::= 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      { psampSampRandOutOfNParamSetTable 1 0 }

   PsampSampRandOutOfNParamSetEntry
       ::=
       SEQUENCE {
           psampSampRandOutOfNIndex      Integer32,
           psampSampRandOutOfNPopulation Unsigned32,
           psampSampRandOutOfNSize       Unsigned32,
           psampSampRandOutOfNRowStatus  RowStatus psampFilterRStateParamSetEntry 4 }

   psampSampRandOutOfNIndex

   psampFilterRStateStartAS OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)      InetAutonomousSystemNumber
       MAX-ACCESS  not-accessible  read-create
       STATUS      current
       DESCRIPTION
          "The index of this parameter set in
           "Used if the
          psampSampRandOutOfNParamSetTable.
          It function is used originAS or destAS. Selects the
            packet if the AS Number lies in entries the range of
            psampFilterRStateStartAS and psampFilterRStateStopAS. If
            the psampInstanceTable as
          reference object is not used it default to this parameter set." 0."
       DEFVAL      { 0 }
       ::= { psampSampRandOutOfNParamSetEntry 1 psampFilterRStateParamSetEntry 5 }

   psampSampRandOutOfNPopulation

   psampFilterRStateStopAS OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "packets"      InetAutonomousSystemNumber
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "When retrieved, this object specifies
           "Used if the number
          of elements function is originAS or destAS. Selects the
            packet if the AS Number lies in the parent population range of
            psampFilterRStateStartAS and psampFilterRStateStopAS. If
            psampFilterRStateStartAS is not 0 and this object is 0 then
            the range is single value, the sampling
          algorithm."
       REFERENCE
           "draft-ietf-psamp-sample-tech-04.txt, Section 5.1" value given in
            psampFilterRStateStartAS."
       DEFVAL      { 0 }
       ::= { psampSampRandOutOfNParamSetEntry 2 psampFilterRStateParamSetEntry 6 }

   psampSampRandOutOfNSize

   psampFilterRStateVendorFunc OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "packets"      OBJECT IDENTIFIER
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "When retrieved, this object specifies the number
          of elements that are sampled from
           "Used if the parent
          population of function is any other than those defined here.

            In this case a vendor specific router state function is
            used. If the sampling algorithm."
       REFERENCE
           "draft-ietf-psamp-sample-tech-04.txt, Section 5.1" object is not used it defaults to
            psampFilterRState."
       DEFVAL      { psampFilterRState }
       ::= { psampSampRandOutOfNParamSetEntry 3 psampFilterRStateParamSetEntry 7 }
   psampSampRandOutOfNRowStatus

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

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

   psampHashFunctions    OBJECT IDENTIFIER ::= { psampObjects 3 }

   --==================================================================
   --* Method 4: Uniform Probabilistic Sampling Hash Function 0: IPSX
   --==================================================================

   psampSampUniProb

   psampHashIPSX OBJECT IDENTIFIER ::= { psampSamplingMethods 4 psampHashFunctions 0 }

   psampSampUniProbAvail

   psampHashIPSXAvail OBJECT-TYPE
       SYNTAX      PsampMethodAvailability
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "When retrieved, this
           "This object indicates the availability of random uniform probabilistic sampling the IPSX hash
            function at the managed node."
       DEFVAL { notAvailable }
       ::= { psampSampUniProb psampHashIPSX 1 }

   psampSampUniProbCap OBJECT IDENTIFIER
       ::= { psampSampUniProb 2 }

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

   -- No capabilities defined, yet.

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

   psampSampUniProbParamSetTable

   psampHashIPSXParamSetTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF
                   PsampSampUniProbParamSetEntry
                   PsampHashIPSXParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists configurations of random probabilistic
           sampling.  A parameter set describing a configuration the IPSX hash function.
            Since this hash function takes no additional parameters the
            table if available contains a single parameter only: only one entry indicating that
            the sampling rate." functions exists and can be referenced by the
            psampFilterHashParamSetTable."
       ::= { psampSampUniProb psampHashIPSX 3 }

   psampSampUniProbParamSetEntry

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

   PsampSampUniProbParamSetEntry

   PsampHashIPSXParamSetEntry ::=
       SEQUENCE {
           psampSampUniProbIndex
           psampHashIPSXIndex     Integer32,
           psampSampUniProbProbability Unsigned32,
           psampSampUniProbRowStatus
           psampHashIPSXRowStatus RowStatus
       }

   psampSampUniProbIndex

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

            The value is used in entries expected to remain constant at least from one
            re-initialization of the psampInstanceTable as
          reference entity's network management system
            to this parameter set."
       ::= { psampSampUniProbParamSetEntry 1 }

   psampSampUniProbProbability OBJECT-TYPE
       SYNTAX      Unsigned32 (0..4294967295)
       UNITS       "packets"
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "When retrieved, this object specifies the number
          of elements next re-initialization.

            It is used in the parent population of the sampling
          algorithm."
       REFERENCE
           "draft-ietf-psamp-sample-tech-04.txt, Section 5.1" entries of the psampFilterHashParamSetTable
            as reference to this method and its associated parameter
            set."
       ::= { psampSampUniProbParamSetEntry 2 psampHashIPSXParamSetEntry 1 }

   psampSampUniProbRowStatus

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

   --==================================================================
   --* Method 5: Non-Uniform Probabilistic Sampling Hash Function 1: Bob
   --==================================================================
   psampSampNonUniProb
   psampHashBob OBJECT IDENTIFIER ::= { psampSamplingMethods 5 psampHashFunctions 1 }

   psampSampNonUniProbAvail

   psampHashBobAvail OBJECT-TYPE
       SYNTAX      PsampMethodAvailability
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "When retrieved, this
           "This object indicates the availability of random non-uniform probabilistic sampling the Bob hash
            function at the managed node."
       DEFVAL { notAvailable }
       ::= { psampSampNonUniProb psampHashBob 1 }

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

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

   psampSampNonUniProbParamSetTable

   psampHashBobParamSetTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF
                   PsampSampNonUniProbParamSetEntry
                   PsampHashBobParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists configurations of random probabilistic
           sampling.  A parameter set describing a configuration the Bob hash function.
            Since this hash function takes no additional parameters the
            table if available contains a single parameter only: only one entry indicating that
            the sampling rate." functions exists and can be referenced by the
            psampFilterHashParamSetTable."
       ::= { psampSampNonUniProb psampHashBob 3 }

   psampSampNonUniProbParamSetEntry

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

   PsampSampNonUniProbParamSetEntry

   PsampHashBobParamSetEntry ::=
       SEQUENCE {
           psampSampNonUniProbIndex
           psampHashBobIndex     Integer32,
           psampSampNonUniProbFunction  OBJECT IDENTIFIER,
           psampSampNonUniProbRowStatus
           psampHashBobRowStatus RowStatus
       }

   psampSampNonUniProbIndex

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

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

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

   psampSampNonUniProbFunction OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "When retrieved, this object specifies the function
          that is used to compute the probability for sampling."
       REFERENCE
           "draft-ietf-psamp-sample-tech-04.txt, Section 5.1"
       ::= { psampSampNonUniProbParamSetEntry 2 }

   psampSampNonUniProbRowStatus

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

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

   psampSampFlowState

   psampReporting        OBJECT IDENTIFIER ::= { psampSamplingMethods 6 }

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

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

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

   psampSampFlowStateParamSetTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF
                   PsampSampFlowStateParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists configurations of random probabilistic
           sampling.  A parameter set describing a configuration
           contains a single parameter only: the sampling rate." 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."
       ::= { psampSampFlowState 3 psampReporting 1 }

   psampSampFlowStateParamSetEntry

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

   PsampSampFlowStateParamSetEntry

   PsampCollectorEntry ::= SEQUENCE {
           psampSampFlowStateIndex
           psampCollectorIndex             Integer32,
           psampSampFlowStateFunction  OBJECT IDENTIFIER,
           psampSampFlowStateRowStatus
           psampCollectorDstIpAddressType  InetAddressType,
           psampCollectorDstIpAddress      InetAddress,
           psampCollectorDstProtocol       Integer32,
           psampCollectorDstPort           Integer32,
           psampCollectorReportsSent       Integer32,
           psampCollectorRowStatus         RowStatus
       }

   psampSampFlowStateIndex

   psampCollectorIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The index locally arbitrary, but unique identifier of this parameter set 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
          psampSampFlowStateParameterSetTable. next re-initialization.

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

   psampSampFlowStateFunction

   psampCollectorDstIpAddressType OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER      InetAddressType
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "When retrieved, this object specifies
           "The IP address type of the function
          that collector. The value for IPv4
            is used to check the flow state ipv4(1). The value for sampling."
       REFERENCE
           "draft-ietf-psamp-sample-tech-04.txt, Section 5.1" IPv6 is ipv6(2)."
       ::= { psampSampFlowStateParamSetEntry psampCollectorEntry 2 }
   psampSampFlowStateRowStatus

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

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

   psampFilteringMethods        OBJECT IDENTIFIER ::= { psampObjects 2 }

   --==================================================================
   --* Method 0: Mask filtering
   --==================================================================

   psampFilterMask OBJECT IDENTIFIER ::= { psampFilteringMethods 0 }

   psampFilterMaskAvail

   psampCollectorDstProtocol OBJECT-TYPE
       SYNTAX      PsampMethodAvailability      Integer32 (0..256)
       MAX-ACCESS  read-only  read-create
       STATUS      current
       DESCRIPTION
          "When retrieved, this object indicates the availability
          of mask filtering at
           "The transport protocol used for exporting sampled packets
            to the managed node." collector. The recommended protocols are TCP (6),
            UDP (17) and SCTP (132). The default is SCTP."
       DEFVAL      { notAvailable }
       ::= { psampFilterMask 1 132 }

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

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

   psampFilterMaskParamSetTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF
                   PsampFilterMaskParamSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists configurations of random probabilistic
           sampling.  A parameter set describing a configuration
           contains a single parameter only: the sampling rate."
       ::= { psampFilterMask 3 psampCollectorEntry 4 }

   psampFilterMaskParamSetEntry

   psampCollectorDstPort OBJECT-TYPE
       SYNTAX      PsampFilterMaskParamSetEntry      Integer32 (0..65535)
       MAX-ACCESS  not-accessible  read-create
       STATUS      current
       DESCRIPTION
           "Defines an entry in
           "The transport protocol port number of the
           psampFilterMaskParamSetTable."
       INDEX { psampFilterMaskIndex }
       ::= { psampFilterMaskParamSetTable 1 }

   PsampFilterMaskParamSetEntry collector."
       ::=
       SEQUENCE {
           psampFilterMaskIndex     Integer32,
           psampFilterMaskRowStatus RowStatus psampCollectorEntry 5 }

   psampFilterMaskIndex

   psampCollectorReportsSent OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible  read-only
       STATUS      current
       DESCRIPTION
           "The index of this parameter set in the
          psampFilterMaskParameterSetTable.
          It is used in entries number of the psampInstanceTable as
          reference packet reports sent to this parameter set." the collector."
       ::= { psampFilterMaskParamSetEntry 1 psampCollectorEntry 6 }

   psampFilterMaskRowStatus

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

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

   psampFilterHash OBJECT IDENTIFIER ::= { psampFilteringMethods 1 }

   psampFilterHashAvail OBJECT-TYPE
       SYNTAX      PsampMethodAvailability
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "When retrieved, this object indicates the availability
          of hash filtering at the managed node."
       DEFVAL { notAvailable }
       ::= { psampFilterHash 1 }
   psampFilterHashCapabilities OBJECT IDENTIFIER
       ::= { psampFilterHash 2 psampCollectorEntry 7 }

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

   -- Parameter Set Collector Group Table +++++++++++++++++++++++++++++++++++++++++++++

   psampFilterHashParamSetTable +++++++++++++++++++++++++++++++++++++++++++

   psampCollectorGroupTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF
                   PsampFilterHashParamSetEntry PsampCollectorGroupEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists configurations groups of hash filtering.
           A parameter set describing a configuration
           contains collectors to which PSAMP
            selected packets are exported simultaneously. If PSAMP
            selected packets are exported to only one parameter: collector the hash function used."
            group consists of exactly one collector."
       ::= { psampFilterHash 3 psampReporting 2 }

   psampFilterHashParamSetEntry

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

   PsampFilterHashParamSetEntry

   PsampCollectorGroupEntry ::= SEQUENCE {
           psampFilterHashIndex
           psampCollectorGroupIndex                Integer32,
           psampFilterHashFunction  OBJECT IDENTIFIER,
           psampFilterHashRowStatus
           psampCollectorGroupRowStatus            RowStatus
       }

   psampFilterHashIndex

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

            The value is used in entries expected to remain constant at least from one
            re-initialization of the psampInstanceTable as
          reference entity's network management system
            to this parameter set."
       ::= { psampFilterHashParamSetEntry 1 }

   psampFilterHashFunction OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "When retrieved, this object specifies the next re-initialization.

            It is used in entries of the hash
          function executed by the current filtering method." psampBaseAssocTable as
            reference to this collector group and its associated
            parameters."
       ::= { psampFilterHashParamSetEntry 2 psampCollectorGroupEntry 1 }

   psampFilterHashRowStatus

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

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

   psampFilterRState OBJECT IDENTIFIER ::= { psampFilteringMethods 2 }

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

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

   -- Parameter Set (Data) Template Record Table +++++++++++++++++++++++++++++++++++++++++++++

   psampFilterRStateParamSetTable

   psampTemplateRecordTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF
                   PsampFilterRStateParamSetEntry PsampTemplateRecordEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists configurations of random probabilistic
           sampling.  A parameter set describing a configuration
           contains a single parameter only: templates used by the sampling rate." exporter."
       ::= { psampFilterRState psampReporting 3 }

   psampFilterRStateParamSetEntry

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

   PsampFilterRStateParamSetEntry

   PsampTemplateRecordEntry ::= SEQUENCE {
           psampFilterRStateIndex
           psampTemplateRecordId             Integer32,
           psampFilterRStateRowStatus
           psampTemplateRecordIndex          Integer32,
           psampTemplateRecordInfoElementId  Integer32,
           psampTemplateRecordRowStatus      RowStatus
       }

   psampFilterRStateIndex

   psampTemplateRecordId OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The index locally arbitrary, but unique identifier of this parameter set 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
          psampFilterRStateParameterSetTable. next re-initialization.

            It is used in entries of the psampInstanceTable psampBaseAssocTable as
            reference to this parameter set." to this template record and its associated
            parameters. It groups the information element ids in a
            template record."
       REFERENCE
           "draft-ietf-psamp-sample-tech-04.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
       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-04.txt, IPFIX/PSAMP INFO MODEL"
   -- Editor Note: get reference right!
       ::= { psampFilterRStateParamSetEntry 1 psampTemplateRecordEntry 3 }

   psampFilterRStateRowStatus

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

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

   psampReporting

   psampBaseAssociations OBJECT IDENTIFIER ::= { psampObjects 3 5 }

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

   psampCollectorTable

   psampBaseAssociationTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF PsampCollectorEntry PsampBaseAssociationEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists collectors to which sampled packets are
           exported." all base associations at the managed
            node."
       ::= { psampReporting psampBaseAssociations 1 }

   psampCollectorEntry

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

   PsampCollectorEntry
   PsampBaseAssociationEntry ::= SEQUENCE {
           psampCollectorIndex
           psampBaseAssocIndex              Integer32,
           psampCollectorDstIpAddressType  InetAddressType,
           psampCollectorDstIpAddress      InetAddress,
           psampCollectorDstProtocol
           psampBaseAssocObservationPoint   OBJECT IDENTIFIER,
           psampBaseAssocTemplateRecordId   Integer32,
           psampCollectorDstPort
           psampBaseAssocCollectorGrpIndex  Integer32,
           psampCollectorReportsSent
           psampBaseAssocPacketsObserved    Integer32,
           psampCollectorRowStatus
           psampBaseAssocPacketsDropped     Integer32,
           psampBaseAssocMeteringProcessId  Integer32,
           psampBaseAssocReportingProcessId Integer32,
           psampBaseAssocReportsSent        Integer32,
           psampBaseAssocRowStatus          RowStatus
       }

   psampCollectorIndex

   psampBaseAssocIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier of
           a collector. 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."
       ::= { psampCollectorEntry psampBaseAssociationEntry 1 }

   psampCollectorDstIpAddressType

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

   psampCollectorDstIpAddress

   psampBaseAssocTemplateRecordId OBJECT-TYPE
       SYNTAX      InetAddress      Integer32 (1..2147483647)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The IP address Id of a template in the collector." 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."
       ::= { psampCollectorEntry psampBaseAssociationEntry 3 }

   psampCollectorDstProtocol

   psampBaseAssocCollectorGrpIndex OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The transport protocol used for exporting sampled
           packets to index of the collector. Allowed values collector group to which packet reports
            are ... " sent."
       ::= { psampCollectorEntry psampBaseAssociationEntry 4 }

   psampCollectorDstPort

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

   psampCollectorReportsSent

   psampBaseAssocPacketsDropped OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of 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 sampled packets are exported. If sampled dropped while filtering/sampling
            packets are exported due to only
           one collector the group consists lack of exactly one collector." resources."
       ::= { psampReporting 2 psampBaseAssociationEntry 6 }

   psampCollectorGroupEntry

   psampBaseAssocMeteringProcessId OBJECT-TYPE
       SYNTAX      PsampCollectorGroupEntry      Integer32
       MAX-ACCESS  not-accessible  read-only
       STATUS      current
       DESCRIPTION
           "Defines an entry in
           "The process id of the psampCollectorGroupTable."
       INDEX { psampCollectorGroupIndex, psampCollectorIndex } metering process used by this
            Base Association."
       ::= { psampCollectorGroupTable 1 psampBaseAssociationEntry 7 }

   PsampCollectorGroupEntry

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

   psampCollectorGroupIndex

   psampBaseAssocReportsSent OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible  read-only
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier of
           a collector group.

           The value is expected to remain constant at least from one
           re-initialization number of the entity's network management system packet reports on sampled packets sent to
            the next re-initialization." collector."
       ::= { psampCollectorGroupEntry 1 psampBaseAssociationEntry 9 }

   psampCollectorGroupRowStatus

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

   -- (Data) Template Selector List Table

   psampTemplateTable ++++++++++++++++++++++++++++++++++++++++++++++

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

   psampTemplateEntry

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

   PsampTemplateEntry

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

   psampTemplateIndex

   psampSelectorListIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier of
           a template. an entry
            in this selector list 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." re-initialization.

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

   psampTemplateId

   psampSelectorListMethod OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)      OBJECT IDENTIFIER
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The unique identifier for selector used at a certain position in the template."
       REFERENCE
           "draft-ietf-ipfix-protocol-02.txt" selector
            list."
       ::= { psampTemplateEntry 2 psampSelectorListEntry 3 }

   psampTemplateReportsSent

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

   psampTemplateRowStatus

   psampSelectorListPacketsDropped OBJECT-TYPE
       SYNTAX      RowStatus      Integer32
       MAX-ACCESS  read-create  read-only
       STATUS      current
       DESCRIPTION
           "The status number of this row packets dropped due to lack of the table."
       ::= { psampTemplateEntry 4 }

   --==================================================================
   -- Instance Group
   --==================================================================

   psampInstances        OBJECT IDENTIFIER resources by
            this selection method."
       ::= { psampObjects 4 psampSelectorListEntry 5 }

   psampInstanceTable

   psampSelectorListRowStatus OBJECT-TYPE
       SYNTAX      SEQUENCE OF PsampInstanceEntry      RowStatus
       MAX-ACCESS  not-accessible  read-create
       STATUS      current
       DESCRIPTION
           "This table lists active instances
           "The status of this row of packet sampling at the managed node." table."
       ::= { psampInstances 1 }

   psampInstanceEntry OBJECT-TYPE
       SYNTAX      PsampInstanceEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Defines an entry in the psampInstanceTable."
       INDEX { psampInstanceIndex psampSelectorListEntry 6 }
   --==================================================================
   -- Conformance information
   --==================================================================

   psampCompliances OBJECT IDENTIFIER ::= { psampInstanceTable psampConformance 1 }

   PsampInstanceEntry
   psampGroups      OBJECT IDENTIFIER ::= SEQUENCE {
           psampInstanceIndex               Integer32,
           psampInstanceIfIndex             InterfaceIndex,
           psampInstanceStartTime           DateAndTime,
           psampInstanceStopTime            DateAndTime,
           psampInstanceTemplateIndex       Integer32,
           psampInstanceCollectorGroupIndex Integer32,
           psampInstancePacketsObserved     Integer32,
           psampInstanceReportsSent         Integer32,
           psampInstanceRowStatus           RowStatus psampConformance 2 }

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

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

   psampCompliance MODULE-COMPLIANCE
       STATUS  current
       DESCRIPTION
           "The locally arbitrary, but unique identifier of
           an instance.

           The value is expected
           "An implementation that complies to remain constant at least from one
           re-initialization this module must
            implement the objects defined in the mandatory groups
            psampGroupMetering and psampGroupReporting. The
            implementation of all other objects depends on the entity's network management system
           to
            implementation of the next re-initialization."
       ::= corresponding functionality in the
            equipment."
       MODULE  -- this module
           MANDATORY-GROUPS { psampInstanceEntry 1
                              psampGroupMetering,
                              psampGroupReporting
                            }

   psampInstanceIfIndex OBJECT-TYPE
       SYNTAX      InterfaceIndex
       MAX-ACCESS  read-create
       STATUS      current
           GROUP psampGroupSampCountBased
           DESCRIPTION
           "Index of
               "These objects must be implemented if the IP interface at which 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."
           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 packet stream
           is observed by packet selection method 1." equipment."
       ::= { psampInstanceEntry 2 psampCompliances 1 }

   psampInstanceStartTime OBJECT-TYPE
       SYNTAX      DateAndTime
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The date and time when collecting samples for this parameter
           set should start."
       ::=

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

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

                 psampTemplateRecordInfoElementId,
                 psampTemplateRecordRowStatus,
                 psampSelectorListMethod,
                 psampSelectorListRowStatus,

                 psampBaseAssocObservationPoint,
                 psampBaseAssocTemplateRecordId,
                 psampBaseAssocCollectorGrpIndex,
                 psampBaseAssocMeteringProcessId,
                 psampBaseAssocReportingProcessId,
                 psampBaseAssocRowStatus
               }

   psampInstanceStopTime OBJECT-TYPE
       SYNTAX      DateAndTime
       MAX-ACCESS  read-create
       STATUS  current
       DESCRIPTION
           "The date and time when collecting samples
          "All objects that are basic for this parameter
           set should stop."
       ::= { psampInstanceEntry 4 }

   psampInstanceTemplateIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The Index of a template in the metering process. It
           contains a basic metering function (psampSelectAll), The
           template table. This implies
           the knowledge about definitions needed for the method chain from export of data, the
           method chain
           table. Furthermore it links that fixes the instance, method chain
           (selector) and template together.

           The identified template is metering functions applied to
           the stream of packets
           observed at observation point and several parameters concering
           the interface." export process and the collectors."
       ::= { psampInstanceEntry 5 psampGroups 1 }

   psampGroupSampCountBased OBJECT-GROUP
       OBJECTS {
                 psampSampCountBasedMaxInterval,
                 psampSampCountBasedMaxSpacing,
                 psampSampCountBasedInterval,
                 psampSampCountBasedSpacing,
                 psampSampCountBasedRowStatus
               }

   psampInstanceCollectorGroupIndex OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-create
       STATUS  current
       DESCRIPTION
           "The index of the collector group to which packet reports
          "These objects are
           sent." needed if count based sampling is
           implemented."
       ::= { psampInstanceEntry 6 psampGroups 2 }

   psampGroupSampTimeBased OBJECT-GROUP
       OBJECTS {
                 psampSampTimeBasedMaxInterval,
                 psampSampTimeBasedMaxSpacing,
                 psampSampTimeBasedInterval,
                 psampSampTimeBasedSpacing,
                 psampSampTimeBasedRowStatus
               }

   psampInstancePacketsObserved OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS  current
       DESCRIPTION
           "The number of packets observed by method before selecting
           packets."
          "These objects are needed if time based sampling is
           implemented."
       ::= { psampInstanceEntry 7 psampGroups 3 }
   psampGroupSampRandOutOfN OBJECT-GROUP
       OBJECTS {
                 psampSampRandOutOfNMaxPopulation,
                 psampSampRandOutOfNMaxSample,
                 psampSampRandOutOfNPopulation,
                 psampSampRandOutOfNSample,
                 psampSampRandOutOfNRowStatus
               }

   psampInstanceReportsSent OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS  current
       DESCRIPTION
           "The number of reports on sampled packets sent to the
           collector."
          "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."
       ::= { psampInstanceEntry 8 psampGroups 5 }

   psampGroupSampNonUniProb OBJECT-GROUP
       OBJECTS {
                 psampSampNonUniProbFunction,
                 psampSampNonUniProbFuncParam,
                 psampSampNonUniProbRowStatus
               }

   psampInstanceRowStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS  current
       DESCRIPTION
           "The status of this row of the table."
          "These objects are needed if non-uniform probabilistic
           sampling is implemented."
       ::= { psampInstanceEntry 9 psampGroups 6 }

   psampGroupSampFlowState OBJECT-GROUP
       OBJECTS {
                 psampSampFlowStateFunction,
                 psampSampFlowStateFuncParam,
                 psampSampFlowStateRowStatus
               }

   -- Method Chain Table ++++++++++++++++++++++++++++++++++++++++++++++

   psampMethodChainTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF PsampMethodChainEntry
       MAX-ACCESS  not-accessible
       STATUS  current
       DESCRIPTION
           "This table contains method chains lists and
           connects them to instances used by export the data."
          "These objects are needed if flow state sampling is
           implemented."
       ::= { psampInstances 4 psampGroups 7 }
   psampGroupFilterMatch OBJECT-GROUP
       OBJECTS {
                 psampFilterMatchInfoElementId,
                 psampFilterMatchStartValue,
                 psampFilterMatchStopValue,
                 psampFilterMatchMask,
                 psampFilterMatchRowStatus
               }

   psampMethodChainEntry OBJECT-TYPE
       SYNTAX      PsampMethodChainEntry
       MAX-ACCESS  not-accessible
       STATUS  current
       DESCRIPTION
           "Defines an entry in the psampMethodChainTable."
       INDEX { psampInstanceIndex, psampMethodChainIndex }
          "These objects are needed if match filtering is implemented."
       ::= { psampMethodChainTable 1 psampGroups 8 }

   PsampMethodChainEntry ::= SEQUENCE

   psampGroupFilterHash OBJECT-GROUP
       OBJECTS {
           psampMethodChainIndex     Integer32,
           psampMethodChainMethod    OBJECT IDENTIFIER,
           psampMethodChainRowStatus RowStatus
                 psampFilterHashAddrType,
                 psampFilterHashHeaderBits,
                 psampFilterHashPayloadBytes,
                 psampFilterHashPayloadBits,
                 psampFilterHashFunction,
                 psampFilterHashFuncParam,
                 psampFilterHashInputBits,
                 psampFilterHashOutputBits,
                 psampFilterHashOutputMask,
                 psampFilterHashSelection,
                 psampFilterHashRowStatus
               }

   psampMethodChainIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS  current
       DESCRIPTION
           "The locally arbitrary, but unique identifier of
           a template.

           The value
          "These objects are needed if hash filtering is expected to remain constant at least from one
           re-initialization of the entity's network management system
           to the next re-initialization." implemented."
       ::= { psampMethodChainEntry 2 psampGroups 9 }

   psampGroupFilterRState OBJECT-GROUP
       OBJECTS {
                 psampFilterRStateFunction,
                 psampFilterRStateNegate,
                 psampFilterRStateIfIndex,
                 psampFilterRStateStartAS,
                 psampFilterRStateStopAS,
                 psampFilterRStateVendorFunc,
                 psampFilterRStateRowStatus
               }

   psampMethodChainMethod OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-create
       STATUS  current
       DESCRIPTION
           "The method used for the template at a certain position in
           the method chain."
          "These objects are needed if router state filtering is
           implemented."
       ::= { psampMethodChainEntry 3 psampGroups 10 }
   psampGroupHashIPSX OBJECT-GROUP
       OBJECTS {
                 psampHashIPSXRowStatus
               }

   psampMethodChainRowStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS  current
       DESCRIPTION
           "The status of this row of
          "These objects are needed if the table."
       ::= { psampMethodChainEntry 4 }

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

    psampCompliances OBJECT IDENTIFIER IPSX hash function is
           implemented."
       ::= { psampConformance 1 } psampGroups      OBJECT IDENTIFIER ::= 11 }

   psampGroupHashBob OBJECT-GROUP
       OBJECTS { psampConformance 2
                 psampHashBobRowStatus
               }

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

    psampCompliance MODULE-COMPLIANCE
       STATUS  current
       DESCRIPTION
               "The compliance statement for the PSAMP-MIB."
       MODULE  -- this module
           MANDATORY-GROUPS { psampGroup }
          "These objects are needed if the Bob hash function is
           implemented."
       ::= { psampCompliances 1 psampGroups 12 }

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

    psampGroup

   psampGroupReporting OBJECT-GROUP
       OBJECTS {
                psampSelectAllAvail,

                psampSampCountBasedAvail,
                psampSampCountBasedMaxInterval,
                psampSampCountBasedMaxSpacing,
                psampSampCountBasedInterval,
                psampSampCountBasedSpacing,
                psampSampCountBasedRowStatus,

                psampSampTimeBasedAvail,
                psampSampTimeBasedMaxInterval,
                psampSampTimeBasedMaxSpacing,
                psampSampTimeBasedInterval,
                psampSampTimeBasedSpacing,
                psampSampTimeBasedRowStatus,

                psampSampRandOutOfNAvail,
                psampSampRandOutOfNMaxPopulation,
                psampSampRandOutOfNMaxSize,
                psampSampRandOutOfNPopulation,
                psampSampRandOutOfNSize,
                psampSampRandOutOfNRowStatus,

                psampSampUniProbAvail,
                psampSampUniProbProbability,
                psampSampUniProbRowStatus,

                psampSampNonUniProbAvail,
                psampSampNonUniProbFunction,
                psampSampNonUniProbRowStatus,
                psampSampFlowStateAvail,
                psampSampFlowStateFunction,
                psampSampFlowStateRowStatus,

                psampFilterMaskAvail,
                psampFilterMaskRowStatus,

                psampFilterHashAvail,
                psampFilterHashFunction,
                psampFilterHashRowStatus,

                psampFilterRStateAvail,
                psampFilterRStateRowStatus,
                 psampCollectorDstIpAddressType,
                 psampCollectorDstIpAddress,
                 psampCollectorDstProtocol,
                 psampCollectorDstPort,

                psampCollectorReportsSent,
                 psampCollectorRowStatus,

                psampCollectorGroupRowStatus,

                psampTemplateId,
                psampTemplateReportsSent,
                psampTemplateRowStatus,

                psampMethodChainMethod,
                psampMethodChainRowStatus,

                psampInstanceIfIndex,
                psampInstanceStartTime,
                psampInstanceStopTime,
                psampInstanceTemplateIndex,
                psampInstanceCollectorGroupIndex,
                psampInstancePacketsObserved,
                psampInstanceReportsSent,
                psampInstanceRowStatus

                 psampCollectorGroupRowStatus
               }
       STATUS  current
       DESCRIPTION
          "The group of all accessible
          "These objects define the collectors i.e., the destinations
           of the PSAMP MIB." exporting process."
       ::= { psampGroups 1 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 }

   END

5.

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.  These are the tables and objects and their
   sensitivity/vulnerability:

   To be done.

6. Open Issues

   o  is the selecting all method mandatory for all implementations?

   o  should we have standard functions for non-uniform probabilistic
      sampling, flow state sampling and the hash and router state
      filtering?

   o  describe row status objects to writable tables

   o  support for reporting from a single instance to multiple
      collectors may be refined

   o  elaborate conformance statements

   o  complete security considerations

   o  observed packets may be expanded to number of packets before
      sampling and after sampling or something similar.

   o  align wording with the other draft documents (e.g. instance vs.
      selector)

   o  check definition of selector, currently selector and instance
      represent not quite the same thing

   o  add option template id to each parameter set for exporting option
      data

   o  finish data template table and link it with the other elements.

   o  implement observation point for the sampling/filtering methods.

   o  change instance ifIndex to observation point in some way.

   o  improve the linking between instance and collector group like it
      is between instance and method chain (take indexes to link those
      tables). Advantage: the collector must exist before an instance
      for it can
   with a MAX-ACCESS clause of read-write and/or read-create.  Such
   objects may be created. Same is true for instance and data template
      table.

   o  check data type for "microseconds", protocol type, port, template
      id and maybe considered sensitive or vulnerable in some others

   o  ...

7. 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

   [I-D.ietf-psamp-framework]

   [PSAMP-FW]
              Duffield, N., "A Framework for Passive Packet
              Measurement", draft-ietf-psamp-framework-05 (work in
              progress),
              Internet-Draft draft-ietf-psamp-framework-05, January
              2004.

   [I-D.ietf-psamp-sample-tech]

   [PSAMP-TECH]
              Zseby, T., Molina, M., Raspall, F. and N. Duffield,
              "Sampling and Filtering Techniques for IP Packet
              Selection", draft-ietf-psamp-sample-tech-04 (work in
              progress),
              Internet-Draft draft-ietf-psamp-sample-tech-04, February
              2004.

   [PSAMP-INFO]
              Dietz, T., "Information Model for Packet Sampling
              Exports", Internet-Draft draft-ietf-psamp-info-01,
              February 2004.

   [I-D.ietf-psamp-protocol]

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

   [RFC2578]  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.

   [RFC2579]  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.

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

9.2  Informative References

   [I-D.ietf-ipfix-reqs]
              Quittek, J., "Requirements for IP Flow Information
              Export", Internet-Draft draft-ietf-ipfix-reqs-16, June
              2004.

   [I-D.ietf-ipfix-info]
              Calato, P., "Information Model for IP Flow Information
              Export", Internet-Draft draft-ietf-ipfix-info-03, February
              2004.

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

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

Authors' Addresses

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

   Phone: +49 6221 90511-28
   EMail:
   Email: dietz@netlab.nec.de
   Benoit Claise
   Cisco Systems
   De Kleetlaan 6a b1
   1831 Degem
   Belgium

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

Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   intellectual property
   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; neither nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the
   IETF's procedures with respect to rights in standards-track and
   standards-related documentation RFC documents can be
   found in BCP-11. BCP 78 and BCP 79.

   Copies of
   claims of rights IPR disclosures made available for publication 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 implementors implementers or users of this
   specification can be obtained from the IETF Secretariat. 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 which that may cover technology that may be required to practice implement
   this standard.  Please address the information to the IETF Executive
   Director.

Full Copyright Statement

   Copyright (C) The Internet Society (2004). All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works. However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose at
   ietf-ipr@ietf.org.

Disclaimer of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assignees. Validity

   This document and the information contained herein is 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 DISCLAIMS 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.