[Search] [txt|pdfized|bibtex] [Tracker] [Email] [Diff1] [Diff2] [Nits]
Versions: 00 01 02 03 04                                                
Network Working Group                                           G. Muenz
Internet-Draft                                   University of Tuebingen
Expires: December 30, 2007                                     B. Claise
                                                     Cisco Systems, Inc.
                                                           June 28, 2007


              Configuration Data Model for IPFIX and PSAMP
                  <draft-muenz-ipfix-configuration-02>

Status of this Memo

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

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

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

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

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

   This Internet-Draft will expire on December 30, 2007.

Copyright Notice

   Copyright (C) The IETF Trust (2007).

Abstract

   This document specifies a data model for the configuration of
   Metering Processes, Exporting Processes, and Collecting Processes for
   IPFIX and PSAMP compliant monitoring devices.  An implementation of
   the data model in Extensible Markup Language (XML) is defined using
   XML Schema language.





Muenz & Claise   draft-muenz-ipfix-configuration-02.txt         [Page 1]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


Table of Contents

   1.  Open Issues  . . . . . . . . . . . . . . . . . . . . . . . . .  3

   2.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
     2.1.  IPFIX Documents Overview . . . . . . . . . . . . . . . . .  4
     2.2.  PSAMP Documents Overview . . . . . . . . . . . . . . . . .  4

   3.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . . .  5

   4.  Structure of the Configuration Data Model  . . . . . . . . . .  5

   5.  Configuration Parameters . . . . . . . . . . . . . . . . . . .  8
     5.1.  ObservationPoint Class . . . . . . . . . . . . . . . . . .  9
     5.2.  MeteringProcess Class  . . . . . . . . . . . . . . . . . . 10
     5.3.  SelectionProcess Class . . . . . . . . . . . . . . . . . . 11
       5.3.1.  Sampler Classes  . . . . . . . . . . . . . . . . . . . 12
       5.3.2.  Filter Classes . . . . . . . . . . . . . . . . . . . . 12
     5.4.  CacheParameters Class  . . . . . . . . . . . . . . . . . . 13
       5.4.1.  Template Class . . . . . . . . . . . . . . . . . . . . 14
     5.5.  ExportingProcess Class . . . . . . . . . . . . . . . . . . 14
     5.6.  Exporter Class . . . . . . . . . . . . . . . . . . . . . . 15
       5.6.1.  Protocol Parameters Classes  . . . . . . . . . . . . . 15
       5.6.2.  Reporting Class  . . . . . . . . . . . . . . . . . . . 16
       5.6.3.  OptionTemplate Class . . . . . . . . . . . . . . . . . 17
     5.7.  CollectingProcess Class and Receiver Class . . . . . . . . 17

   6.  XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . 18

   7.  Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
     7.1.  PSAMP Monitoring Device  . . . . . . . . . . . . . . . . . 29
     7.2.  IPFIX Monitoring Device  . . . . . . . . . . . . . . . . . 30
     7.3.  Collector Monitoring Device  . . . . . . . . . . . . . . . 33

   8.  Security Considerations  . . . . . . . . . . . . . . . . . . . 33

   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 34
     9.1.  Normative References . . . . . . . . . . . . . . . . . . . 34
     9.2.  Informative References . . . . . . . . . . . . . . . . . . 34

   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 35
   Intellectual Property and Copyright Statements . . . . . . . . . . 37









Muenz & Claise   draft-muenz-ipfix-configuration-02.txt         [Page 2]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


1.  Open Issues

   General issues:
   o  Find a consensus of common configuration parameters.
   o  Shall we recommend the usage of Netconf protocol, which provides
      mechanisms for communicating device capabilities, error messages
      etc.?

   Specific issues:
   o  Treat observationPointId, meteringProcessId, exportingProcessId,
      selectorId, selectionSequenceId (all unsigned32) of the IPFIX
      information model as configurable parameters or identifiers?
      *  Observation Points and Metering Processes do not have
         identifiers in the configuration data model, but
         observationPointId and meteringProcessId could be configuration
         parameters.
      *  exportingProcessId could replace the identifier of the
         ExportingProcess class in the configuration data model.
      *  selectorId could become a configuration parameter of the
         selection methods specified within the SelectionProcess class.
         selectionSequenceId could be a configuration parameter of the
         SelectionProcess class or replace the identifier of the
         SelectionProcess class.  Yet, the configuration data model
         allows deploying the same Selection Process at different
         Observation Points, and in this case, the identifiers would
         always be the same.
   o  Which are the common SCTP specific export parameters?


2.  Introduction

   IPFIX and PSAMP compliant monitoring devices (routers, switches,
   monitoring probes, mediators, collectors etc.) offer various
   configuration possibilities that allow adapting network monitoring to
   the goals and purposes of the application, e.g. accounting and
   charging, traffic analysis, performance monitoring, security
   monitoring etc.  The use of a common device-independent configuration
   data model for IPFIX and PSAMP compliant monitoring devices
   facilitates network management and configuration, especially if
   monitoring devices of different implementers and/or manufacturers are
   deployed simultaneously.  The purpose of this document is the
   specification of such a device-independent configuration data model
   that covers the commonly available configuration parameters of
   Metering Processes, Exporting Processes, and Collecting Processes.

   The specified data model is implemented in Extensible Markup Language
   (XML) [W3C.REC-xml-20040204], which allows extending it easily with
   additional device-specific parameters.  Furthermore, optional



Muenz & Claise   draft-muenz-ipfix-configuration-02.txt         [Page 3]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


   parameters as well as parameters not supported by a particular
   monitoring device implementation can be simply omitted.  Any
   restrictions and extensions of the configuration data model should be
   known to the network management system in order to avoid sending
   unsupported configuration data to the monitoring device.  Note that
   the communication of monitoring device capabilities to the network
   management system is currently out of scope of this document.

   There are various candidate protocols, like the Network Configuration
   Protocol (Netconf) [RFC4741] or the Simple Object Access Protocol
   (SOAP) [W3C.REC-soap12-part1-20070427], that are suitable for
   transferring XML data from a network management system to a
   monitoring device.  However, the configuration data model specified
   here is not specific to any of these.

2.1.  IPFIX Documents Overview

   The IPFIX protocol [I-D.ietf-ipfix-protocol] provides network
   administrators with access to IP flow information.  The architecture
   for the export of measured IP flow information out of an IPFIX
   exporting process to a collecting process is defined in
   [I-D.ietf-ipfix-architecture], per the requirements defined in
   [RFC3917].  This document specifies how IPFIX data records and
   templates are carried via a number of transport protocols from IPFIX
   exporting processes to IPFIX collecting process.  IPFIX has a formal
   description of IPFIX information elements, their name, type and
   additional semantic information, as specified in
   [I-D.ietf-ipfix-info].  [I-D.ietf-ipfix-mib] specifies the IPFIX
   Management Information Base.  Finally [I-D.ietf-ipfix-as] describes
   what type of applications can use the IPFIX protocol and how they can
   use the information provided.  It furthermore shows how the IPFIX
   framework relates to other architectures and frameworks.

2.2.  PSAMP Documents Overview

   The document "A Framework for Packet Selection and Reporting"
   [I-D.ietf-psamp-framework] describes the PSAMP framework for network
   elements to select subsets of packets by statistical and other
   methods, and to export a stream of reports on the selected packets to
   a collector.  The set of packet selection techniques (sampling,
   filtering, and hashing) supported by PSAMP are described in "Sampling
   and Filtering Techniques for IP Packet Selection"
   [I-D.ietf-psamp-sample-tech].  The PSAMP protocol
   [I-D.ietf-psamp-protocol] specifies the export of packet information
   from a PSAMP exporting process to a PSAMP collecting process.  Like
   IPFIX, PSAMP has a formal description of its information elements,
   their name, type and additional semantic information.  The PSAMP
   information model is defined in [I-D.ietf-psamp-info].  Finally



Muenz & Claise   draft-muenz-ipfix-configuration-02.txt         [Page 4]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


   [I-D.ietf-psamp-mib] describes the PSAMP Management Information Base.


3.  Terminology

   This document adopts the terminologies used in
   [I-D.ietf-ipfix-protocol] and [I-D.ietf-psamp-protocol].
   [TODO: copy terminology section]


4.  Structure of the Configuration Data Model

   The IPFIX reference model in [I-D.ietf-ipfix-architecture] specifies
   the role and function of Metering Processes, Exporting Processes, and
   Collecting Processes.  In [I-D.ietf-psamp-framework], the
   corresponding information is specified for the PSAMP architecture.
   IPFIX and PSAMP compliant monitoring device implementations usually
   maintain the separation of Metering Processes, Exporting Processes,
   and Collecting Processes (although they do not necessarily implement
   all of them).  Furthermore, they provide various configuration
   possibilities; some of them are required by the IPFIX protocol
   [I-D.ietf-ipfix-protocol].  The configuration data model enables the
   setting of commonly available configuration parameters for Metering
   Processes, Exporting Processes, and Collecting Processes.  In
   addition, it allows specifying the composition of Metering Processes,
   Exporting Processes, and Collecting Processes within a monitoring
   device configuration.

   The selection of commonly available configuration parameters is based
   on configuration issues discussed in the IPFIX and PSAMP documents
   [RFC3917], [I-D.ietf-ipfix-protocol], [I-D.ietf-ipfix-architecture],
   [I-D.ietf-psamp-framework], and [I-D.ietf-psamp-sample-tech].
   Furthermore, the structure and content of the IPFIX MIB module
   [I-D.ietf-ipfix-mib] and the PSAMP MIB module [I-D.ietf-psamp-mib]
   were taken into consideration.  Consistency between the configuration
   data model and the IPFIX and PSAMP MIB modules is an intended goal.
   Therefore, parameters in the configuration data model are named
   according to corresponding managed objects.

   In the following, we use Unified Modeling Language (UML) class
   diagrams to explain the structure of the configuration data model.
   According to UML, different arrow types are used to distinguish two
   different types of relationship between UML classes: Aggregation and
   association.







Muenz & Claise   draft-muenz-ipfix-configuration-02.txt         [Page 5]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


   +---+   0..* +---+        +---+   0..* +---+
   | A |<>------| B |        | A |------->| B |
   +---+        +---+        +---+        +---+

    (a) Aggregation     (b) Unidirectional association


   Aggregation means that one class is part of the other, e.g. class B
   is part of class A in example (a).  An association is a reference to
   an instance of another class.  In example (b), class A contains a
   reference to an instance of class B. The indicated numbers define the
   multiplicity:

      "1": one only
      "0..*": zero or more
      "1..*": one or more

   In order to identify a specific instance, a class must be
   identifiable by an identifier, i.e. class B in example (b) must be
   identifiable.  In the data model, identifiers are string attributes
   named "id".

   Figure 1 shows the main classes the configuration data model.  The
   role of the classes can be briefly summarized as follows:
   o  The ObservationPoint class identifies an Observation Point (e.g.
      interface) of the monitoring device which is used for traffic
      monitoring.  Furthermore, it specifies Metering Processes that
      process the observed packets.
   o  The MeteringProcess class represents a Metering Process.  It
      refers to an instance of the CacheParameters class.  In addition,
      it may refer to one or multiple instances of the SelectionProcess
      class that form a Selection Sequence.  Only those packets passing
      the sequence of Selection Processes enter the record cache.
   o  The SelectionProcess class contains the configuration parameters
      of a Selection Process, i.e. sampling and filtering parameters.
      If no SelectionProcess is specified, all observed packets are
      selected.
   o  The CacheParameters class contains configuration parameters of a
      cache which stores the records in the monitoring device.
      Configuration parameters of the CacheParameters class specify the
      record format (Template), expiration parameters, and cache size.
      In addition, references to one or multiple Exporting Processes can
      be included.
   o  The ExportingProcess class contains configuration parameters of an
      Exporting Process.  It defines a group of exporters with different
      roles as well as the export destinations.





Muenz & Claise   draft-muenz-ipfix-configuration-02.txt         [Page 6]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


   +------------------+   0..* +-----------------+
   | ObservationPoint |<>------| MeteringProcess |
   +------------------+        +-----------------+
                                 |     |
                                 |     |
                                 |     | 0..*
                                 |     V
                                 |   +------------------+
                                 |   | SelectionProcess |
                                 |   +------------------+
                                 |
                                 |
                                 | 1 +------------------+
                                 +-->| CacheParameters  |
                                     +------------------+
                                        |
                                        |
                                        | 0..*
                                        V
                                     +------------------+
                                     | ExportingProcess |
                                     +------------------+

          Figure 1: Main classes of the configuration data model

   As can be seen in Figure 1, the MeteringProcess class defines
   references to instances of the SelectionProcess class and the
   CacheParameters class.  This allows deploying the same Selection
   Processes and record caches in different Metering Processes.  An
   example is given in Section 7.2.  Similarly, the CacheParameters
   class refers to instances of the ExportingProcess class, which
   enables using the same Exporting Process for different Metering
   Processes.  One the other hand, the MeteringProcess class is not
   instantiated, but specified as part of the ObservationPoint class.

   The CollectingProcess class is depicted in Figure 2.  It defines one
   or multiple receiving ports using the Receiver class.  If the
   monitoring device acts as a concentrator, the collector class defines
   instances of MeteringProcess similar to the ObservationPoint class.












Muenz & Claise   draft-muenz-ipfix-configuration-02.txt         [Page 7]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


   +-------------------+   1..* +---------------+
   |                   |<>------| Receiver      |
   | CollectingProcess |        +---------------+
   |                   |
   |                   |   0..* +-----------------+
   |                   |<>------| MeteringProcess |
   +-------------------+        +-----------------+
                                  |     |
                                  |     |
                                  |     | 0..*
                                  |     V
                                  |   +------------------+
                                  |   | SelectionProcess |
                                  |   +------------------+
                                  |
                                  |
                                  | 1 +------------------+
                                  +-->| CacheParameters  |
                                      +------------------+
                                         |
                                         |
                                         | 0..*
                                         V
                                      +------------------+
                                      | ExportingProcess |
                                      +------------------+

                     Figure 2: CollectingProcess class

   Each of the presented classes contains specific configuration
   parameters which are specified in the next section.  The
   implementation of the configuration data model in XML is specified in
   XML Schema language in Section 6 and illustrated with examples in
   Section 7.


5.  Configuration Parameters

   This section specifies the configuration parameters of the
   configuration data model separately for each class.











Muenz & Claise   draft-muenz-ipfix-configuration-02.txt         [Page 8]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


5.1.  ObservationPoint Class

   +---------------------+
   | ObservationPoint    |
   +---------------------+        1 +--------------------+
   | observationDomainId |<>--------| Interface/Linecard |
   |                     |          +--------------------+
   |                     |
   |                     |     0..* +--------------------+
   |                     |<>--------| MeteringProcess    |
   +---------------------+          +--------------------+

   +-----------------+   +------------------+
   | Interface       |   | Linecard         |
   +-----------------+   +------------------+
   | ifIndex         |   | entPhysicalIndex |
   | ifName          |   | entPhysicalName  |
   +-----------------+   +------------------+

                     Figure 3: ObservationPoint class

   The ObservationPoint class identifies an Observation Point of the
   monitoring device, i.e. an interface or a linecard.  The
   ObservationPoint class may specify the Observation Domain ID if the
   monitoring device implementation supports this configuration.

   The configuration parameters to identify an interface or a linecard
   are as follows:

   o  ifIndex, ifName: Index and name of the interface according to
      corresponding objects in the IF-MIB.  Only one of them must be
      specified to identify the interface. entPhysicalIndex,
      entPhysicalName: Index and name of the linecard according to the
      corresponding objects in the ENTITY-MIB.  Only one of them must
      specified to identify the linecard.

   The ObservationPoint class may specify one or multiple Metering
   Processes.













Muenz & Claise   draft-muenz-ipfix-configuration-02.txt         [Page 9]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


5.2.  MeteringProcess Class

   +-----------------+
   | MeteringProcess |
   +-----------------+  0..* +------------------+
   |                 |------>| SelectionProcess |
   |                 |       +------------------+
   |                 |
   |                 |    1  +------------------+
   |                 |------>| CacheParameters  |
   +-----------------+       +------------------+

                      Figure 4: MeteringProcess class

   The MeteringProcess class represents a Metering Process.  It refers
   to one instance of the CacheParameters class that specifies a record
   cache in the monitoring device.  In addition, the MeteringProcess
   class may refer to one or multiple instances of the SelectionProcess
   class which specify sampling and filtering methods applied to the
   packets before entering the record cache.  If no SelectionProcess is
   specified, all observed packets are selected.  The MeteringProcess
   class does not contain any parameters.





























Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 10]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


5.3.  SelectionProcess Class

   +------------------+
   | SelectionProcess |
   +------------------+   0..* +----------------+
   | id               |<>------+ SampCountBased |
   |                  |        +----------------+
   |                  |   0..* +----------------+
   |                  |<>------| SampTimeBased  |
   |                  |        +----------------+
   |                  |   0..* +----------------+
   |                  |<>------| SampRandOutOfN |
   |                  |        +----------------+
   |                  |   0..* +----------------+
   |                  |<>------| SampUniProb    |
   |                  |        +----------------+
   |                  |   0..* +----------------+
   |                  |<>------| SampNonUniProb |
   |                  |        +----------------+
   |                  |   0..* +----------------+
   |                  |<>------| SampFlowState  |
   |                  |        +----------------+
   |                  |   0..* +----------------+
   |                  |<>------| FilterMatch    |
   |                  |        +----------------+
   |                  |   0..* +----------------+
   |                  |<>------| FilterHash     |
   +------------------+        +----------------+

                     Figure 5: SelectionProcess class

   The SelectionProcess class contains the configuration parameters of a
   Selection Process.  A Selection Process is composed of sampling
   and/or filtering methods as described in
   [I-D.ietf-psamp-sample-tech].  The configuration parameters of an
   individual sampling or filtering method are specified in a
   corresponding sampler (Samp*) or filter (Filter*) class.  The order
   of the specified sampling and filtering methods corresponds to the
   sequence in which they are applied.  Each instance of the Selection
   Process class is identified by a unique identifier, which allows
   deploying it in different Metering Processes, i.e. multiple instances
   of the MeteringProcess class can refer to it.









Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 11]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


5.3.1.  Sampler Classes

   +----------------+   +----------------+   +----------------+
   + SampCountBased |   | SampTimeBased  |   | SampRandOutOfN |
   +----------------+   +----------------+   +----------------+
   | interval       |   | interval       |   | population     |
   | spacing        |   | spacing        |   | sample         |
   +----------------+   +----------------+   +----------------+

   +----------------+   +----------------+   +----------------+
   | SampUniProb    |   | SampNonUniProb |   | SampFlowState  |
   +----------------+   +----------------+   +----------------+
   | probability    |   | function       |   | func           |
   |                |   | funcParam      |   | funcParam      |
   +----------------+   +----------------+   +----------------+

                         Figure 6: Sampler classes

   The names and semantic of the configuration parameters correspond to
   the managed objects in the PSAMP MIB module [I-D.ietf-psamp-mib].

5.3.2.  Filter Classes

   +----------------+   +----------------+   +----------------+
   | FilterMatch    |   | FilterHash     |   | FilterRState   |
   +----------------+   +----------------+   +----------------+
   | infoElementId  |   | addrType       |   | function       |
   | startValue     |   | headerBits     |   | negate         |
   | stopValue      |   | payloadBytes   |   | ifIndex        |
   | mask           |   | payloadBits    |   | startAS        |
   |                |   | function       |   | stopAS         |
   |                |   | inputBits      |   | vendorFunc     |
   |                |   | outputBits     |   |                |
   |                |   | outputMask     |   |                |
   |                |   | selection      |   |                |
   +----------------+   +----------------+   +----------------+

                         Figure 7: Filter classes

   The names and semantic of the configuration parameters correspond to
   the managed objects in the PSAMP MIB module [I-D.ietf-psamp-mib].










Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 12]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


5.4.  CacheParameters Class

   +-----------------+
   | CacheParameters |
   +-----------------+      1 +------------------+
   | id              |<>------| Template         |
   | cacheType       |        +------------------+
   | cacheSize       |
   | activeTimeout   |   0..* +------------------+
   | idleTimeout     |------->| ExportingProcess |
   +-----------------+        +------------------+

                      Figure 8: CacheParameters class

   The CacheParameters class contains the configuration parameters of a
   record cache.  Each instance of the CacheParameters class is
   identified by a unique identifier, which allows deploying it in
   different Metering Processes, i.e. multiple instances of the
   MeteringProcess class can refer to it.  The configuration parameters
   of the CacheParameters class are as follows:

   o  cacheType: "normal", "immediate", or "permanent".
      [DISCUSS: Just adopt Cisco CLI names?  Use empty tags instead of
      string element?]
   o  cacheSize: Maximum number of records in the cache.
   o  activeTimeout: Timeout after which an active Flow is timed out
      anyway, even if there is still a continuous flow of packets.
   o  idleTimeout: A Flow is considered to be timed out if no packets
      belonging to the Flow have been observed for the amount of time
      specified by this parameter.

   The CacheParameters class contains an instance of the Template class
   which specifies the record format.  Furthermore, it may refer to one
   or multiple instances of the ExportingProcess class, specifying the
   exporter groups which export the expired records.
















Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 13]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


5.4.1.  Template Class

   +------------+
   | Template   |
   +------------+   0..* +------------------+
   | templateId |<>------| FlowKeyField     |
   |            |        +------------------+
   |            |        | ieId             |
   |            |        | ieName           |
   |            |        | length           |
   |            |        | enterpriseNumber |
   |            |        +------------------+
   |            |
   |            |   0..* +------------------+
   |            |<>------| NonFlowKeyField  |
   |            |        +------------------+
   |            |        | ieId             |
   |            |        | ieName           |
   |            |        | length           |
   |            |        | enterpriseNumber |
   +------------+        +------------------+

                         Figure 9: Template class

   The Template class specifies the Flow Key fields and non-Flow Key
   fields of a Template using instances of the FlowKeyField class and
   the NonFlowKeyField class respectively.  The configuration parameters
   of the Template class, the FlowKeyField class, and the
   NonFlowKeyField class are as follows:

   o  templateId: Template ID, will be assigned automatically by the
      monitoring device if this parameter is omitted.
   o  ieId, ieName, length, enterpriseNumber: Identifier, name, length,
      and enterprise number of an Information Element.  At least, ieId
      or IeName must be specified.  If length is not specified, the
      default length for the Information Element is used.
      enterpriseNumber must only be inserted for enterprise-specific
      Information Elements.

5.5.  ExportingProcess Class

   +------------------+
   | ExportingProcess |
   +------------------+   0..* +----------------+
   | id               |<>------| Exporter       |
   +------------------+        +----------------+

                     Figure 10: ExportingProcess class



Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 14]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


   The ExportingProcess class specifies a group of exporters using the
   Exporter class.  Each instance of the ExportingProcess class is
   identified by a unique identifier, which allows referring to the same
   instances in different instances of the CacheParameters class.

5.6.  Exporter Class

   +----------------+
   | Exporter       |
   +----------------+      1 +--------------+
   | type           |<>------| Sctp/Udp/Tcp |
   |                |        +--------------+
   |                |   0..* +--------------+
   |                |<>------| Reporting    |
   |                |        +--------------+
   |                |   0..* +--------------+
   |                |<>------| Destination  |
   +----------------+        +--------------+

                         Figure 11: Exporter class

   The Exporter class specifies an exporter in an Exporting Process.  It
   contains configuration parameters that are specific to the transport
   protocol used (SCTP, UDP, or TCP).  Furthermore, it includes
   destinations where the data are exported to, using the Destination
   class.  Optionally, the Exporter class specifies the export of
   reporting information with Option Templates, using the Reporting
   class.  The type parameter specifies the role of the exporter within
   the exporter group (primary, secondary, or load balancing) and
   corresponds to the ipfixTransportSessionGroupMemberType object in
   [I-D.ietf-ipfix-mib].

5.6.1.  Protocol Parameters Classes

   +-------------+   +------------------------------+   +-----------+
   | SctpParams  |   | UdpParams                    |   | TcpParams |
   +-------------+   +------------------------------+   +-----------+
   | reliability |   | sourceAddress                |   |           |
   +-------------+   | templateRefreshTimeout       |   +-----------+
                     | templateRefreshPacket        |
                     | optionTemplateRefreshTimeout |
                     | optionTemplateRefreshPacket  |
                     +------------------------------+

                  Figure 12: Protocol parameters classes

   The configuration parameters of the protocol parameters classes are:




Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 15]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


   o  addressType, address, port: Address type, address, and port number
      of the export destination.
   o  reliability: Reliability level when using SCTP as transport
      protocol.
   o  sourceAddress: Source address when using UDP as transport
      protocol.  If this parameter is omitted, the address assigned to
      the outgoing interface is used.
   o  templateRefreshTimeout, templateRefreshPacket,
      optionTemplateRefreshTimeout, optionTemplateRefreshPacket:
      Template refresh parameters when using UDP as transport protocol.

5.6.2.  Reporting Class

   +-----------+
   | Reporting |
   +-----------+   0..1 +----------------+
   | type      |<>------| OptionTemplate |
   | timeout   |        +----------------+
   +-----------+

                        Figure 13: Reporting class

   The Reporting class defines the type of reporting information
   (statistics, flow keys, etc.) and the reporting interval (timeout).
   Optionally, the Option Template can be specified, using the
   OptionTemplate class.  If no Option Template is specified, the
   Exporter chooses a template definition automatically according to the
   available information.























Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 16]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


5.6.3.  OptionTemplate Class

   +----------------+
   | OptionTemplate |
   +----------------+   0..* +------------------+
   | templateId     |<>------| ScopeField       |
   |                |        +------------------+
   |                |        | ieId             |
   |                |        | ieName           |
   |                |        | length           |
   |                |        | enterpriseNumber |
   |                |        +------------------+
   |                |
   |                |   0..* +------------------+
   |                |<>------| NonScopeField    |
   |                |        +------------------+
   |                |        | ieId             |
   |                |        | ieName           |
   |                |        | length           |
   |                |        | enterpriseNumber |
   +----------------+        +------------------+

                      Figure 14: OptionTemplate class

   The Option Template class specifies the scope fields and non-scope
   fields of an Option Template using instances of the ScopeField class
   and the NonScopeField class respectively.  The configuration
   parameters are the same as for the Template, FlowKeyField, and
   NonFlowKeyField classes (see Section 5.4.1).

5.7.  CollectingProcess Class and Receiver Class




















Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 17]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


   +---------------------+
   | CollectingProcess   |
   +---------------------+
   |                     |     1..* +-------------------------+
   |                     |<>--------| Receiver                |
   |                     |          +-------------------------+
   |                     |          | addressType             |
   |                     |          | address                 |
   |                     |          | protocol                |
   |                     |          | port                    |
   |                     |          | defaultTemplateLifetime |
   |                     |          +-------------------------+
   |                     |
   |                     |     0..* +-----------------+
   |                     |<>--------| MeteringProcess |
   +---------------------+          +-----------------+

           Figure 15: CollectingProcess class and Receiver Class

   The CollectingProcess class contains one or multiple instances of the
   Receiver class.  Each instance of the Receiver class configures a
   port on the monitoring device to receive data exported by other
   monitoring devices using the IPFIX Protocol and/or PSAMP Protocol.
   The CollectingProcess class and the Receiver class contain the
   following parameters:

   o  addressType, address, protocol, port: Address type, address,
      transport protocol and port number of the receiving port.
   o  defaultTemplateLifetime: Default template lifetime if UDP is used
      as transport protocol, ignored otherwise.

   If the monitoring device is a concentrator, the CollectingProcess
   class specifies one or multiple MeteringProcess instances.


6.  XML Schema

   XML Schema of the configuration data model is specified as follows:

<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  targetNamespace="urn:ietf:params:xml:ns:ipfix-psamp-config"
  xmlns="urn:ietf:params:xml:ns:ipfix-psamp-config"
  elementFormDefault="qualified"
  version="2.0">

  <xsd:annotation>
    <xsd:documentation xml:lang="en">



Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 18]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


      IPFIX/PSAMP Configuration Data Model Version 2.0
      Changes in version 2.0:
        - new structure without next pointers
        - packet reporting and flow metering replaced by record cache
        - added reporting with options
    </xsd:documentation>
  </xsd:annotation>


  <!-- Generic Type: Information Element -->
  <xsd:complexType name="infoElement_type">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        This type is used to specify an Information Element in
        filters and templates.
        - Instead of ieId, ieName can be used as specified
          ipfix-info.
        - If length is omitted, the default length is used.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="enterpriseNumber" type="xsd:unsignedInt"
          minOccurs="0" />
      <xsd:element name="ieName" type="xsd:string"
          minOccurs="0" />
      <xsd:element name="ieId" type="xsd:unsignedInt"
          minOccurs="0" />
      <xsd:element name="length" type="xsd:unsignedInt"
          minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>


  <!-- Generic Type: Reference -->
  <xsd:complexType name="reference_type">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        This type is used to specify a reference to a Selection Process,
        record cache, or Exporting Process identified by the id attribute.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="id" type="xsd:IDREF" use="required" />
  </xsd:complexType>


  <!-- Generic Type: Time -->
  <xsd:complexType name="time_type">
    <xsd:annotation>



Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 19]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


      <xsd:documentation xml:lang="en">
        This type is used for defaultTemplateLifetime, activeTimeout
        idleTimeout, templateRefreshTimemout, and
        optionTemplateRefreshTimeout.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="xsd:unsignedInt">
        <xsd:attribute name="unit" use="optional" default="sec">
          <xsd:simpleType>
            <xsd:restriction base="xsd:string">
              <xsd:enumeration value="min" />
              <xsd:enumeration value="sec" />
              <xsd:enumeration value="msec" />
              <xsd:enumeration value="usec" />
            </xsd:restriction>
          </xsd:simpleType>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>


  <!-- Observation Point -->
  <xsd:complexType name="observationPoint_type">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        This type identifies an Observation Point.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="observationDomainId" type="xsd:unsignedInt"
          minOccurs="0" />
      <xsd:choice>
        <xsd:element name="Interface" type="interface_type" />
        <xsd:element name="Linecard" type="linecard_type" />
      </xsd:choice>
      <xsd:element name="MeteringProcess" type="meteringProcess_type"
          minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="interface_type">
    <xsd:sequence>
      <xsd:element name="ifIndex" type="xsd:unsignedInt"
          minOccurs="0" />
      <xsd:element name="ifName" type="xsd:string"
          minOccurs="0" />



Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 20]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="linecard_type">
    <xsd:sequence>
      <xsd:element name="entPhysicalIndex" type="xsd:unsignedInt"
          minOccurs="0" />
      <xsd:element name="entPhysicalName" type="xsd:string"
          minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>


  <!-- Metering Process -->
  <xsd:complexType name="meteringProcess_type">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        This type is used to specify a Metering Process.
        There must be at least a reference to a record cache.
        If specified, Selection Processes are applied in the order of
        their appearance. If no Selection Processes are specified, all
        observed packets are selected.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="SelectionProcess" type="reference_type"
          minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="CacheParameters" type="reference_type" />
    </xsd:sequence>
  </xsd:complexType>


  <!-- Selection Process -->
  <xsd:complexType name="selectionProcess_type">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        This type is used to specify a Selection Process.
        If more than one selection method are specified, they are
        applied in the order of their appearance.
        See PSAMP-MIB for details about the selection methods and their
        parameters.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="SampCountBased" type="sampCountBased_type" />
      <xsd:element name="SampTimeBased" type="sampTimeBased_type" />
      <xsd:element name="SampRandOutOfN" type="sampRandOutOfN_type" />
      <xsd:element name="SampUniProb" type="sampUniProb_type" />



Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 21]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


      <xsd:element name="SampNonUniProb" type="sampNonUniProb_type" />
      <xsd:element name="SampFlowState" type="sampFlowState_type" />
      <xsd:element name="FilterMatch" type="filterMatch_type" />
      <xsd:element name="FilterHash" type="filterHash_type" />
      <xsd:element name="FilterRState" type="filterRState_type" />
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:ID" use="required" />
  </xsd:complexType>

  <xsd:complexType name="sampCountBased_type">
    <xsd:sequence>
      <xsd:element name="interval" type="xsd:unsignedInt" />
      <xsd:element name="spacing" type="xsd:unsignedInt" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="sampTimeBased_type">
    <xsd:sequence>
      <xsd:element name="interval" type="xsd:unsignedInt" />
      <xsd:element name="spacing" type="xsd:unsignedInt" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="sampRandOutOfN_type">
    <xsd:sequence>
      <xsd:element name="population" type="xsd:unsignedInt" />
      <xsd:element name="sample" type="xsd:unsignedInt" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="sampUniProb_type">
    <xsd:sequence>
      <xsd:element name="probability" type="xsd:unsignedInt">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            The given value must be divided by 4294967295
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="sampNonUniProb_type" mixed="true">
    <xsd:sequence>
      <xsd:element name="function" type="xsd:string" />
      <xsd:element name="funcParam" type="xsd:string" />
    </xsd:sequence>
  </xsd:complexType>



Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 22]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


  <xsd:complexType name="sampFlowState_type" mixed="true">
    <xsd:sequence>
      <xsd:element name="function" type="xsd:string" />
      <xsd:element name="funcParam" type="xsd:string" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="filterMatch_type">
    <xsd:sequence>
      <xsd:element name="infoElementId" type="xsd:unsignedInt" />
      <xsd:element name="startValue" type="xsd:unsignedInt" />
      <xsd:element name="stopValue" type="xsd:unsignedInt" />
      <xsd:element name="mask" type="xsd:unsignedInt"
          minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="filterHash_type">
    <xsd:sequence>
      <xsd:element name="addrType" type="xsd:unsignedInt" />
      <xsd:element name="headerBits" type="xsd:string" />
      <xsd:element name="payloadBytes" type="xsd:unsignedInt" />
      <xsd:element name="payloadBits" type="xsd:string" />
      <xsd:element name="function" type="xsd:string" />
      <xsd:element name="funcParam" type="xsd:string" />
      <xsd:element name="inputBits" type="xsd:unsignedInt" />
      <xsd:element name="outputBits" type="xsd:unsignedInt" />
      <xsd:element name="outputMask" type="xsd:string" />
      <xsd:element name="selection" type="xsd:string" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="filterRState_type">
    <xsd:sequence>
      <xsd:element name="function" type="xsd:string" />
      <xsd:element name="negate" type="xsd:boolean" />
      <xsd:element name="ifIndex" type="xsd:unsignedInt" />
      <xsd:element name="startAS" type="xsd:unsignedInt" />
      <xsd:element name="endAS" type="xsd:unsignedInt" />
      <xsd:element name="vendorFunc" type="xsd:string" />
    </xsd:sequence>
  </xsd:complexType>


  <!-- Cache Parameters -->
  <xsd:complexType name="cacheParameters_type">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">



Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 23]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


        This type specifies the parameters of a record cache.
        At least, a Template must be specified.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="cacheType" type="cacheType_type"
          minOccurs="0" default="normal" />
      <xsd:element name="cacheSize" type="xsd:unsignedInt"
          minOccurs="0" />
      <xsd:element name="activeTimeout" type="time_type"
          minOccurs="0" />
      <xsd:element name="idleTimeout" type="time_type"
          minOccurs="0" />
      <xsd:element name="Template" type="template_type" />
      <xsd:element name="ExportingProcess" type="reference_type"
          minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" use="required" />
  </xsd:complexType>

  <xsd:simpleType name="cacheType_type">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        Cache types:
        - normal: flow expiration after active and idle timeout
        - immediate: expiration after the first packet (PSAMP export)
        - permanent: flows never expire, periodical export after active timeout
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="normal" />
      <xsd:enumeration value="immediate" />
      <xsd:enumeration value="permanent" />
    </xsd:restriction>
  </xsd:simpleType>


  <xsd:complexType name="template_type">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        This type is used to specify a Template.
        If templateId is omitted, the Template ID is assigned by the
        monitoring device.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="templateId" type="xsd:unsignedInt"
          minOccurs="0" />



Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 24]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


      <xsd:choice minOccurs="0" maxOccurs="unbounded" >
        <xsd:element name="FlowKeyField" type="infoElement_type" />
        <xsd:element name="NonFlowKeyField" type="infoElement_type" />
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>


  <!-- Exporting Process -->
  <xsd:complexType name="exportingProcess_type">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        This type specifies the parameters of an Exporting Process.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="Exporter" type="exporter_type"
          minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" use="required" />
  </xsd:complexType>

  <xsd:complexType name="exporter_type">
    <xsd:sequence>
      <xsd:element name="type" type="exporterType_type"
          default="primary" />
      <xsd:choice>
        <xsd:element name="UdpParams" type="udpParams_type" />
        <xsd:element name="TcpParams" type="tcpParams_type" />
        <xsd:element name="SctpParams" type="sctpParams_type" />
      </xsd:choice>
      <xsd:element name="Reporting" type="reporting_type"
          minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="Destination" type="destination_type"
          minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="exporterType_type">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        Exporter types according to IPFIX-MIB.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="primary" />
      <xsd:enumeration value="secondary" />
      <xsd:enumeration value="loadBalancing" />



Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 25]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


      <xsd:enumeration value="unused" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:complexType name="udpParams_type">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        This type comprises UDP specific exporter parameters.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="sourceIpAddress" type="xsd:string"
          minOccurs="0" />
      <xsd:element name="templateRefreshTimeout" type="time_type"
          minOccurs="0" />
      <xsd:element name="templateRefreshPacket" type="xsd:unsignedInt"
          minOccurs="0" />
      <xsd:element name="optionTemplateRefreshTimeout" type="time_type"
          minOccurs="0" />
      <xsd:element name="optionTemplateRefreshPacket" type="xsd:unsignedInt"
          minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="tcpParams_type">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        There are no TCP specific export parameters.
      </xsd:documentation>
    </xsd:annotation>
  </xsd:complexType>

  <xsd:complexType name="sctpParams_type">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        This type comprises SCTP specific exporter parameters.
        [TODO: which are SCTP specific parameters?]
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="reliability" type="xsd:string"
          minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="reporting_type">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">



Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 26]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


        This type is used to activate reporting using option data.
        The type determines the reported information. The timeout specifies
        the time interval for exporting the reporting information. The
        specification of the Option Template is optional. If no Option
        Template is defined, the Exporter chooses a template definition
        according to the available information.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="type" type="reportingType_type" />
      <xsd:element name="timeout" type="time_type"
          minOccurs="0" />
      <xsd:element name="OptionTemplate" type="optionTemplate_type"
          minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="reportingType_type">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        Types of reported information using option data.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="metering-statistics" />
      <xsd:enumeration value="metering-reliability" />
      <xsd:enumeration value="exporting-reliability" />
      <xsd:enumeration value="flow-keys" />
      <xsd:enumeration value="selection-sequence" />
      <xsd:enumeration value="selector-reports" />
      <xsd:enumeration value="reducing-redundancy" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:complexType name="optionTemplate_type">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        This type is used to specify an Option Template.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="templateId" type="xsd:unsignedInt"
          minOccurs="0" />
      <xsd:choice minOccurs="0" maxOccurs="unbounded" >
        <xsd:element name="ScopeField" type="infoElement_type" />
        <xsd:element name="NonScopeField" type="infoElement_type" />
      </xsd:choice>
    </xsd:sequence>



Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 27]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


  </xsd:complexType>

  <xsd:complexType name="destination_type">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        This type contains IP address and port number of an export
        destination. The protocol is specified in the exporter
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ipAddressType" type="xsd:unsignedInt" />
      <xsd:element name="ipAddress" type="xsd:string" />
      <xsd:element name="port" type="xsd:unsignedInt" />
    </xsd:sequence>
  </xsd:complexType>


  <!-- Collecting Process -->
  <xsd:complexType name="collectingProcess_type">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        This type comprises the parameter of a Collecting Process.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="Receiver" type="receiver_type"
          minOccurs="1" maxOccurs="unbounded" />
      <xsd:element name="MeteringProcess" type="reference_type"
          minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="receiver_type">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        This type contains IP address, transport protocol, and port number
        of an IPFIX collector. defaultTemplateLifetime is only used for UDP.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ipAddressType" type="xsd:unsignedInt" />
      <xsd:element name="ipAddress" type="xsd:string" />
      <xsd:element name="protocol" type="xsd:unsignedInt" />
      <xsd:element name="port" type="xsd:unsignedInt" />
      <xsd:element name="defaultTemplateLifetime" type="time_type"
          minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>



Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 28]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


  <!-- Root Element -->
  <xsd:element name="ConfigData">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        Root element of the IPFIX/PSAMP configuration data model
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:choice minOccurs="0" maxOccurs="unbounded" >
        <xsd:element name="CollectingProcess" type="collectingProcess_type" />
        <xsd:element name="ObservationPoint" type="observationPoint_type" />
        <xsd:element name="SelectionProcess" type="selectionProcess_type" />
        <xsd:element name="CacheParameters" type="cacheParameters_type" />
        <xsd:element name="ExportingProcess" type="exportingProcess_type" />
      </xsd:choice>
    </xsd:complexType>
  </xsd:element>

</xsd:schema>



7.  Examples

   This section shows example configurations conforming to the XML
   Schema specified in Section 6.

7.1.  PSAMP Monitoring Device

   <ConfigData xmlns="urn:ietf:params:xml:ns:ipfix-psamp-config">

     <ObservationPoint>
       <observationDomainId>12345</observationDomainId>
       <Linecard>
         <entPhysicalIndex>3</entPhysicalIndex>
       </Linecard>
       <MeteringProcess>
         <SelectionProcess id="my_sampler" />
         <SelectionProcess id="my_filter" />
         <CacheParameters id="my_cache" />
       </MeteringProcess>
     </ObservationPoint>

     <SelectionProcess id="my_filter">
       <FilterMatch>
         <infoElementId>4</infoElementId>
         <startValue>17</startValue>
         <stopValue>17</stopValue>



Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 29]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


       </FilterMatch>
     </SelectionProcess>

     <SelectionProcess id="my_sampler">
       <SampRandOutOfN>
         <population>100</population>
         <sample>10</sample>
       </SampRandOutOfN>
     </SelectionProcess>

     <CacheParameters id="my_cache">
       <cacheType>immediate</cacheType>
       <cacheSize>512</cacheSize>
       <Template>
         <FlowKeyField>
           <ieId>313</ieId>
           <length>64</length>
         </FlowKeyField>
         <NonFlowKeyField>
           <ieName>154</ieName>
         </NonFlowKeyField>
       </Template>
       <ExportingProcess id="my_exporter" />
     </CacheParameters>

     <ExportingProcess id="my_exporter">
       <Exporter>
         <type>primary</type>
         <SctpParams>
           <reliability>partially-reliable</reliability>
         </SctpParams>
         <Destination>
           <ipAddressType>4</ipAddressType>
           <ipAddress>192.0.2.1</ipAddress>
           <port>4739</port>
         </Destination>
       </Exporter>
     </ExportingProcess>

   </ConfigData>


7.2.  IPFIX Monitoring Device

<ConfigData xmlns="urn:ietf:params:xml:ns:ipfix-psamp-config">

  <ObservationPoint>
    <observationDomainId>12345</observationDomainId>



Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 30]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


    <Interface>
      <ifName>eth0</ifName>
    </Interface>
    <MeteringProcess>
      <SelectionProcess id="my_sampler" />
      <CacheParameters id="my_cache" />
    </MeteringProcess>
  </ObservationPoint>

  <ObservationPoint>
    <observationDomainId>12346</observationDomainId>
    <Interface>
      <ifName>eth1</ifName>
    </Interface>
    <MeteringProcess>
      <SelectionProcess id="my_sampler" />
      <CacheParameters id="my_cache" />
    </MeteringProcess>
  </ObservationPoint>

  <SelectionProcess id="my_sampler">
    <SampCountBased>
      <interval>1</interval>
      <spacing>99</spacing>
    </SampCountBased>
  </SelectionProcess>

  <CacheParameters id="my_cache">
    <cacheType>normal</cacheType>
    <cacheSize>4096</cacheSize>
    <activeTimeout unit="sec">5</activeTimeout>
    <idleTimeout unit="sec">10</idleTimeout>
    <Template>
      <FlowKeyField>
        <ieName>sourceIPv4Address</ieName>
      </FlowKeyField>
      <FlowKeyField>
        <ieName>destinationIPv4Address</ieName>
      </FlowKeyField>
      <FlowKeyField>
        <ieName>transportProtocol</ieName>
      </FlowKeyField>
      <FlowKeyField>
        <ieName>sourceTransportPort</ieName>
      </FlowKeyField>
      <FlowKeyField>
        <ieName>destinationTransportPort</ieName>
      </FlowKeyField>



Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 31]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


      <NonFlowKeyField>
        <ieName>flowStartMilliSeconds</ieName>
      </NonFlowKeyField>
      <NonFlowKeyField>
        <ieName>flowEndSeconds</ieName>
      </NonFlowKeyField>
      <NonFlowKeyField>
        <ieName>octetDeltaCount</ieName>
      </NonFlowKeyField>
      <NonFlowKeyField>
        <ieName>packetDeltaCount</ieName>
      </NonFlowKeyField>
    </Template>
    <ExportingProcess id="my_exporter" />
  </CacheParameters>

  <ExportingProcess id="my_exporter">
    <Exporter>
      <type>primary</type>
      <SctpParams>
        <reliability>fully-reliable</reliability>
      </SctpParams>
      <Reporting>
        <type>metering-statistics</type>
        <timeout unit="min">5</timeout>
      </Reporting>
      <Reporting>
        <type>selection-sequence</type>
        <timeout unit="min">5</timeout>
      </Reporting>
      <Destination>
        <ipAddressType>4</ipAddressType>
        <ipAddress>192.0.2.1</ipAddress>
        <port>4739</port>
      </Destination>
    </Exporter>
    <Exporter>
      <type>secondary</type>
      <UdpParams>
        <sourceIpAddress>127.0.0.1</sourceIpAddress>
        <templateRefreshTimeout unit="sec">60</templateRefreshTimeout>
        <optionTemplateRefreshTimeout unit="sec">60</optionTemplateRefreshTimeout>
      </UdpParams>
      <Destination>
        <ipAddressType>4</ipAddressType>
        <ipAddress>192.0.2.2</ipAddress>
        <port>4739</port>
      </Destination>



Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 32]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


    </Exporter>
  </ExportingProcess>

</ConfigData>


7.3.  Collector Monitoring Device

   <ConfigData xmlns="urn:ietf:params:xml:ns:ipfix-psamp-config">

     <CollectingProcess>
       <Receiver>
         <ipAddressType>4</ipAddressType>
         <ipAddress>192.0.2.1</ipAddress>
         <protocol>132</protocol>
         <port>4739</port>
       </Receiver>
     </CollectingProcess>

   </ConfigData>



8.  Security Considerations

   The XML Schema has been conceived to enable its usage with different
   device implementations.  In order to keep the XML Schema simple and
   flexible, no precautions have been made to ensure that only complete
   and meaningful configurations can be specified.  For example, most of
   the elements are declared optional.  Furthermore, the necessary
   communication of device capabilities to the network management system
   and the corresponding limitations and adaptations of the
   configuration data model are not specified in this document.  Hence,
   the XML Schema does not ensure that conforming XML documents describe
   configurations that are both complete and supported by a given
   device.  Users should make sure that configuration data is validated
   and checked against the capabilities of the device before configuring
   it.  If configuration data is incomplete, invalid or unsupported, it
   must be rejected by the device and the previous configuration should
   remain active.  In addition, an error message should be returned
   specifying the reason for the error of any failed configuration
   attempt.


9.  References






Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 33]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


9.1.  Normative References

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

   [I-D.ietf-ipfix-protocol]
              Claise, B., "Specification of the IPFIX Protocol for the
              Exchange", draft-ietf-ipfix-protocol-24 (work in
              progress), November 2006.

   [I-D.ietf-ipfix-info]
              Quittek, J., "Information Model for IP Flow Information
              Export", draft-ietf-ipfix-info-15 (work in progress),
              February 2007.

   [I-D.ietf-psamp-protocol]
              Claise, B., "Packet Sampling (PSAMP) Protocol
              Specifications", draft-ietf-psamp-protocol-07 (work in
              progress), October 2006.

   [I-D.ietf-psamp-info]
              Dietz, T., "Information Model for Packet Sampling
              Exports", draft-ietf-psamp-info-06 (work in progress),
              June 2007.

9.2.  Informative References

   [W3C.REC-xml-20040204]
              Bray, T., Maler, E., Paoli, J., Yergeau, F., and C.
              Sperberg-McQueen, "Extensible Markup Language (XML) 1.0
              (Third Edition)", World Wide Web Consortium
              FirstEdition REC-xml-20040204, February 2004,
              <http://www.w3.org/TR/2004/REC-xml-20040204>.

   [RFC4741]  Enns, R., "NETCONF Configuration Protocol", RFC 4741,
              December 2006.

   [W3C.REC-soap12-part1-20070427]
              Moreau, J., Karmarkar, A., Nielsen, H., Hadley, M., Lafon,
              Y., Gudgin, M., and N. Mendelsohn, "SOAP Version 1.2 Part
              1: Messaging Framework (Second Edition)", World Wide Web
              Consortium Recommendation REC-soap12-part1-20070427,
              April 2007,
              <http://www.w3.org/TR/2007/REC-soap12-part1-20070427>.

   [I-D.ietf-ipfix-as]
              Zseby, T., "IPFIX Applicability", draft-ietf-ipfix-as-11
              (work in progress), February 2007.



Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 34]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


   [I-D.ietf-ipfix-architecture]
              Sadasivan, G., "Architecture for IP Flow Information
              Export", draft-ietf-ipfix-architecture-12 (work in
              progress), September 2006.

   [I-D.ietf-ipfix-mib]
              Dietz, T., "Definitions of Managed Objects for IP Flow
              Information Export", draft-ietf-ipfix-mib-00 (work in
              progress), February 2007.

   [RFC3917]  Quittek, J., Zseby, T., Claise, B., and S. Zander,
              "Requirements for IP Flow Information Export (IPFIX)",
              RFC 3917, October 2004.

   [I-D.dressler-ipfix-aggregation]
              Dressler, F., "IPFIX Aggregation",
              draft-dressler-ipfix-aggregation-03 (work in progress),
              June 2006.

   [I-D.ietf-psamp-framework]
              Duffield, N., "A Framework for Packet Selection and
              Reporting", draft-ietf-psamp-framework-11 (work in
              progress), May 2007.

   [I-D.ietf-psamp-mib]
              Dietz, T. and B. Claise, "Definitions of Managed Objects
              for Packet Sampling", draft-ietf-psamp-mib-06 (work in
              progress), June 2006.

   [I-D.ietf-psamp-sample-tech]
              Zseby, T., "Sampling and Filtering Techniques for IP
              Packet Selection", draft-ietf-psamp-sample-tech-10 (work
              in progress), June 2007.


Authors' Addresses

   Gerhard Muenz
   University of Tuebingen
   Computer Networks and Internet
   Sand 13
   Tuebingen  D-72076
   DE

   Phone: +49 7071 29-70534
   Email: muenz@informatik.uni-tuebingen.de
   URI:   http://net.informatik.uni-tuebingen.de/~muenz




Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 35]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


   Benoit Claise
   Cisco Systems, Inc.
   De Kleetlaan 6a b1
   Diegem  1831
   BE

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











































Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 36]


Internet-Draft    IPFIX/PSAMP Configuration Data Model         June 2007


Full Copyright Statement

   Copyright (C) The IETF Trust (2007).

   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.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
   THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
   OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Intellectual Property

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

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

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


Acknowledgment

   Funding for the RFC Editor function is provided by the IETF
   Administrative Support Activity (IASA).





Muenz & Claise   draft-muenz-ipfix-configuration-02.txt        [Page 37]