IP Flow Information Export WG G. Muenz
Internet-Draft University of Tuebingen
Intended status: Standards Track B. Claise
Expires: May 22, 2008 Cisco Systems, Inc.
November 19, 2007
Configuration Data Model for IPFIX and PSAMP
<draft-muenz-ipfix-configuration-03>
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 May 22, 2008.
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. The configuration data
model is encoded in Extensible Markup Language (XML), according to an
XML Schema Definition presented in this document.
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 1]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
Table of Contents
1. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. IPFIX Documents Overview . . . . . . . . . . . . . . . . . 4
2.2. PSAMP Documents Overview . . . . . . . . . . . . . . . . . 5
3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5
4. Structure of the Configuration Data Model . . . . . . . . . . 5
5. Configuration Parameters . . . . . . . . . . . . . . . . . . . 9
5.1. ObservationPoint Class . . . . . . . . . . . . . . . . . . 10
5.2. MeteringProcess Class . . . . . . . . . . . . . . . . . . 11
5.3. SelectionProcess Class . . . . . . . . . . . . . . . . . . 12
5.3.1. Sampler Classes . . . . . . . . . . . . . . . . . . . 13
5.3.2. Filter Classes . . . . . . . . . . . . . . . . . . . . 13
5.4. CacheParameters Class . . . . . . . . . . . . . . . . . . 14
5.4.1. Template Class . . . . . . . . . . . . . . . . . . . . 15
5.5. ExportingProcess Class . . . . . . . . . . . . . . . . . . 16
5.5.1. Destination Class . . . . . . . . . . . . . . . . . . 16
5.5.2. Export Parameters Classes . . . . . . . . . . . . . . 17
5.5.3. Option Class . . . . . . . . . . . . . . . . . . . . . 18
5.5.4. OptionTemplate Class . . . . . . . . . . . . . . . . . 19
5.6. CollectingProcess Class and Receiver Class . . . . . . . . 19
6. XML Schema Specification . . . . . . . . . . . . . . . . . . . 20
7. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7.1. PSAMP Monitoring Device . . . . . . . . . . . . . . . . . 33
7.2. IPFIX Monitoring Device . . . . . . . . . . . . . . . . . 35
7.3. Collector Monitoring Device . . . . . . . . . . . . . . . 38
8. Security Considerations . . . . . . . . . . . . . . . . . . . 38
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.1. Normative References . . . . . . . . . . . . . . . . . . . 38
9.2. Informative References . . . . . . . . . . . . . . . . . . 39
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 41
Intellectual Property and Copyright Statements . . . . . . . . . . 42
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 2]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
1. Open Issues
General issues:
o Find a consensus of common configuration parameters.
o What is the relationship to the Netconf protocol? Recommend
Netconf as preferred configuration protocol? Make it mandatory?
Netconf related issues:
o Netconf compliance?
o Extend model for reporting device capabilities, error messages
etc.?
Specific issues:
o Which are the common SCTP specific export parameters?
o Allow only "ingress" and "egress" for direction attribute of
linecard and interface?
o Check if current configuration data model is inline with PSAMP
view of Selection Process, Selection Sequence, Selector etc.
Solved issues and answers to reviewer comments:
o observationPointId, meteringProcessId, exportingProcessId, and
selectorId have been added as optional configuration parameters,
setting the values of the corresponding Information Elements.
Note that monitoring device implementations are not obliged to
support the configuration of these ids, but may set them
dynamically. Currently not included is selectionSequenceId.
o Request for additional parameters concerning the composition of
IPFIX messages at the exporter, e.g. how long may the exporter
wait until an expired record is exported? Waiting may be useful
in order to fill up IPFIX messages.
We (the authors) decided not to add such parameters for the
following reasons: 1) the composition of IPFIX messages has not
been described as configurable or managable in any other IPFIX
document, and 2) today's configuration possibilities depend very
much on the device or manufacturer. We propose to use device or
manufacturer-dependent extensions of the configuration data model.
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
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 3]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
monitoring devices of different implementers and/or manufacturers are
deployed simultaneously. On the one hand, a device-independent
configuration data model helps storing and managing the configuration
data of monitoring devices in a consistent format. On the other
hand, it can also be used for local and remote configuration of
monitoring devices. However, this requires that monitoring devices
natively support the configuration data model, or that a mapping
between the configuration data model and the device-specific
representation of configuration data is provided. An appropriate
transport protocol is needed in the case of remote configuration.
The purpose of this document is the specification of a device-
independent configuration data model that covers the commonly
available configuration parameters of Metering Processes, Exporting
Processes, and Collecting Processes. The data model is specified in
Extensible Markup Language (XML) [W3C.REC-xml-20040204] using XML
Schema language [W3C.REC-xmlschema-0-20041028]. An XML document
conforming to this XML Schema Definition contains the configuration
data of one or multiple monitoring devices. The usage of XML enables
easy extension of the configuration data model with additional
device-specific parameters. Furthermore, optional parameters not
supported by a particular monitoring device implementation can be
simply omitted in the XML document. However, for the creation and
manipulation of configuration data for a specific monitoring device,
any restrictions and extensions of the data model should be known.
This is to avoid the generation of unsupported configuration data and
to profit from extended device capabilities. Note that the
description of monitoring device capabilities is currently out of
scope of this document.
For the configuration of remote monitoring devices, an appropriate
protocol is needed to transfer the XML encoded configuration data.
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 current specification of the
configuration data model 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
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 4]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
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
[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]. As in
[I-D.ietf-ipfix-protocol], these specific terms have the first letter
of a word capitalized when used in this document.
[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
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 5]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
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.
+---+ 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 configuration data model, identifiers are
string attributes named "id". These "id" attributes are not
displayed in the UML class diagrams. Arbitrary annotations can be
assigned to the main classes of the data model using string
attributes named "description". Values of this attribute have no
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 6]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
effect on the configuration and purely serve to provide some context
information to the (human) reader.
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. A
Metering Process requires a record cache which is represented by
an instance of the CacheParameters class. In order to enable the
usage of a record cache within multiple Metering Processes, the
MeteringProcess class contains only a reference to an instance of
the CacheParameters class. Note that the usage of the same record
cache implies that the Template defining the record format is
identical for the corresponding Metering Processes. Similarly,
the MeteringProcess class contains optional references to
instances of the SelectionProcess class forming a Selection
Sequence. Only those packets passing the sequence of Selection
Processes enter the record cache. If no references to instances
of the SelectionProcess class are specified, all observed packets
enter the record cache.
o The SelectionProcess class contains the configuration parameters
of a Selection Process, i.e. sampling and filtering parameters.
An instance of the SelectionProcess class can be referred from
multiple Metering Processes, which allows the usage of the same
Selection Process in different Metering Processes.
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. An instance of the CacheParameters class can be
referred from multiple Metering Processes, enabling the shared
usage of the same record cache in different Metering Processes.
As the Template is defined in the CacheParameters class, using the
same record cache implies that the record format is identical.
Also, the same Exporting Processes will be used, as these are
linked to the record cache.
o The ExportingProcess class contains configuration parameters of an
Exporting Process. It defines the export parameters and
destinations. An instance of the ExportingProcess class can be
referred from multiple instances of the CacheParameters class.
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 7]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 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. It acts as an envelope element specifying a
series of Selection Processes, forming a Selection Sequence, and a
record cache. The order in which the Selection Processes are
specified in the XML document corresponds to the order in which they
are applied. Thus, the same Selection Processes and record caches
can be deployed in different Metering Processes. An example is given
in Section 7.1. The MeteringProcess class itself is not
instantiated, but specified as part of the ObservationPoint class.
Using the same Metering Process with different Observation Points is
achieved by referring to the same instances of the SelectionProcess
class and the CacheParameters class. Considering Selection Processes
and Cache Parameters as instances (and not the complete Metering
Process) corresponds to the common practice to implement Selection
Processes and record caches as independent modules.
The CacheParameters class refers to instances of the ExportingProcess
class, which enables using the same Exporting Process for different
Metering Processes.
The CollectingProcess class is depicted in Figure 2. It defines one
or multiple receiving ports using the Receiver class. If the
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 8]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
monitoring device acts as a concentrator, the MeteringProcess class
is specified as part of the CollectingProcess.
+-------------------+ 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 [W3C.REC-xmlschema-0-20041028] 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-03.txt [Page 9]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
5.1. ObservationPoint Class
+---------------------+
| ObservationPoint |
+---------------------+ 1 +--------------------+
| observationPointId |<>--------| Interface/Linecard |
| observationDomainId | +--------------------+
| |
| | 0..* +--------------------+
| |<>--------| MeteringProcess |
+---------------------+ +--------------------+
+------------------+ +------------------+
| Interface | | Linecard |
+------------------+ +------------------+
| ifIndex | | entPhysicalIndex |
| ifName | | entPhysicalName |
| direction | | direction |
+------------------+ +------------------+
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. If
supported, the ObservationPoint class may also set the value of the
Information Element observationPointId [I-D.ietf-ipfix-info].
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.
o entPhysicalIndex, entPhysicalName: Index and name of the linecard
according to the corresponding objects in the ENTITY-MIB.
o direction: Specifies if ingress traffic, egress traffic, or both,
ingress and egress traffic is captured. [DISCUSS: Allow only
"ingress" and "egress"?]
The ObservationPoint class may specify one or multiple Metering
Processes.
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 10]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
5.2. MeteringProcess Class
+-------------------+
| MeteringProcess |
+-------------------+ 0..* +------------------+
| meteringProcessId |------>| 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. The order of the Selection
Processes references in the XML document corresponds to the sequence
in which they are applied. If no SelectionProcess is specified, all
observed packets are selected. If supported by the monitoring device
implementation, the MeteringProcess class may set the value of the
Information Element meteringProcessId [I-D.ietf-ipfix-info].
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 11]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
5.3. SelectionProcess Class
+------------------+
| SelectionProcess |
+------------------+ 0..* +----------------+
| selectorId |<>------+ 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. If more
than one method is specified, the order in the XML document
corresponds to the sequence in which they are applied. If supported
by the monitoring device implementation, the SelectionProcess class
may set the value of the Information Element selectorId
[I-D.ietf-ipfix-info]. In the XML document, each instance of the
SelectionProcess class must be assigned a unique value of the "id"
attribute, which allows deploying the Selection Process in different
Metering Processes.
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 12]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 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-03.txt [Page 13]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
5.4. CacheParameters Class
+-----------------+
| CacheParameters |
+-----------------+ 1 +------------------+
| cacheType |<>------| Template |
| cacheSize | +------------------+
| activeTimeout |
| idleTimeout | 0..* +------------------+
| |------->| ExportingProcess |
+-----------------+ +------------------+
Figure 8: CacheParameters class
The CacheParameters class contains the configuration parameters of a
record cache. The configuration parameters of the CacheParameters
class are as follows:
o cacheType: "normal", "immediate", or "permanent".
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 a Template definition which
specifies the record format. Furthermore, it may refer to one or
multiple instances of the ExportingProcess class, specifying the
export parameters and destinations. In the XML document, each
instance of the CacheParameters class must be assigned a unique value
of the "id" attribute, which allows using the same record cache in
different Metering Processes.
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 14]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 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 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: Optional parameter which allows specifying a Template
ID value for the Template. As specified in the IPFIX protocol
[I-D.ietf-ipfix-protocol], the Template ID must be locally unique
per Observation Domain and Transport Session, which restricts the
usage of identical values for multiple Template definitions within
the same monitoring device configuration. If this parameter is
omitted, the Template ID will be assigned automatically by the
monitoring device.
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.
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 15]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
5.5. ExportingProcess Class
+--------------------+
| ExportingProcess |
+--------------------+ 0..* +-------------+
| exportingProcessId |<>------| Destination |
+--------------------+ +-------------+
Figure 10: ExportingProcess class
The ExportingProcess class specifies a list of destinations to which
the measurement data are exported. If supported by the monitoring
device implementation, the ExportingProcess class may set the value
of the Information Element exportingProcessId [I-D.ietf-ipfix-info].
In the XML document, each instance of the ExportingProcess class must
be assigned a unique value of the "id" attribute, which allows
referring to the same Exporting Process from different instances of
the CacheParameters class.
5.5.1. Destination Class
+-----------------+
| Destination |
+-----------------+ 1 +-----------------------+
| type |<>------| SctpExport/UdpExport/ |
| | | TcpExport/FileExport |
| | +-----------------------+
| |
| | 0..* +-----------------------+
| |<>------| Option |
+-----------------+ +-----------------------+
Figure 11: Destination class
The Destination class specifies one export destination of an
Exporting Process. The type parameter determines the Transport
Session type (primary, secondary, or load balancing) and corresponds
to the ipfixTransportSessionGroupMemberType object in
[I-D.ietf-ipfix-mib]. The Destination class contains further
configuration parameters that are specific to the transport protocol
used (SCTP, UDP, or TCP). It is also possible to export the
measurement data to a file as proposed in [I-D.trammell-ipfix-file].
Optionally, the ExportingProcess class specifies the report of
additional information with Option Templates, using the Option class.
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 16]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
5.5.2. Export Parameters Classes
+--------------------------+ +--------------------------+
| SctpExport | | TcpExport |
+--------------------------+ +--------------------------+
| ipAddressType | | ipAddressType |
| destinationIpAddress | | destinationIpAddress |
| destinationTransportPort | | destinationTransportPort |
| reliability | | |
+--------------------------+ +--------------------------+
+------------------------------+ +-------------+
| UdpExport | | FileExport |
+------------------------------+ +-------------+
| ipAddressType | | uri |
| destinationIpAddress | +-------------+
| destinationTransportPort |
| sourceIpAddress |
| templateRefreshTimeout |
| templateRefreshPacket |
| optionTemplateRefreshTimeout |
| optionTemplateRefreshPacket |
+------------------------------+
Figure 12: Export parameters classes
The configuration parameters of the export parameters classes are:
o ipAddressType, destinationIpAddress, destinationTransportPort: IP
address type, destination IP address, and destination transport to
be used for export with SCTP, UDP, or TCP.
o reliability: Reliability level when using SCTP as transport
protocol.
o sourceIpAddress: Source IP 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.
o uri: File name and location encoded as URI if the measurement data
is exported to a file.
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 17]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
5.5.3. Option Class
+-----------+
| Option |
+-----------+ 0..1 +----------------+
| type |<>------| OptionTemplate |
| timeout | +----------------+
+-----------+
Figure 13: Option class
The Option class defines the type of additional information to be
reported, such as statistics, flow keys, sampling and filtering
parameters etc. [I-D.ietf-ipfix-protocol] and
[I-D.ietf-psamp-protocol] specify several types of reporting
information which may be exported. The type can be one of the
following:
metering-statistics: Export of Metering Process statistics using
the Metering Process Statistics Option Template
[I-D.ietf-ipfix-protocol].
metering-reliability: Export of Metering Process reliability
statistics using the Metering Process Reliability Statistics
Option Template [I-D.ietf-ipfix-protocol].
exporting-reliability: Export of Exporting Process reliability
statistics using the Exporting Process Reliability Statistics
Option Template [I-D.ietf-ipfix-protocol].
flow-keys: Export of the Flow Key specification using the Flow
Keys Option Template [I-D.ietf-ipfix-protocol].
selection-sequence: Export of the Selection Sequence Report
Interpretation [I-D.ietf-psamp-protocol].
selector-reports: Export of the Selector Report Interpretation
[I-D.ietf-psamp-protocol].
reducing-redundancy: Export of common properties according to
[I-D.ietf-ipfix-reducing-redundancy].
The Option Template can be specified manually, using the
OptionTemplate class. If no Option Template is specified, the
Exporter chooses a template definition automatically according to the
available information.
The timeout parameter specifies the reporting interval. If the
reporting timeout is zero, the corresponding reporting information
will be exported only once. Otherwise, the information is exported
periodically.
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 18]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
5.5.4. 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 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.6. CollectingProcess Class and Receiver Class
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 19]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
+---------------------+
| CollectingProcess |
+---------------------+
| | 1..* +-------------------------+
| |<>--------| Receiver |
| | +-------------------------+
| | | ipAddressType |
| | | ipAddress |
| | | transportProtocol |
| | | transportPort |
| | | defaultTemplateLifetime |
| | +-------------------------+
| |
| | 0..* +-----------------+
| |<>--------| MeteringProcess |
+---------------------+ +-----------------+
Figure 15: CollectingProcess class and Receiver Class
The CollectingProcess class contains one or multiple receivers
specified with the Receiver class. Each receiver configures a port
on the monitoring device to receive measurement 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 ipAddressType, ipAddress, transportProtocol, transportPort: IP
address type, IP 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 as described in
[I-D.dressler-ipfix-aggregation], the CollectingProcess class
specifies one or multiple Metering Processes.
6. XML Schema Specification
XML Schema Definition 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="3.0">
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 20]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
<xsd:annotation>
<xsd:documentation xml:lang="en">
IPFIX/PSAMP Configuration Data Model Version 3.0
Changes in version 3.0:
- Linecard and Interface classes now have direction element
- sec => s (SI unit)
- optional description attribute for annotations
- simplifications in ExportingProcess class
- new parameters: observationPointId, meteringProcessId,
selectorId, exportingProcessId (note that devices do not
have to support the configuration of these parameters)
- new FileExport class for exporting into a file
- Reporting class renamed Option Class
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>
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 21]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
<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>
<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="s">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="min" />
<xsd:enumeration value="s" />
<xsd:enumeration value="ms" />
<xsd:enumeration value="us" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<!-- Generic Type: Direction -->
<xsd:simpleType name="direction_type">
<xsd:annotation>
<xsd:documentation xml:lang="en">
This type is used in Interface class and Linecard class.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="ingress" />
<xsd:enumeration value="egress" />
<xsd:enumeration value="both" />
</xsd:restriction>
</xsd:simpleType>
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 22]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
<!-- Generic Type: Description -->
<xsd:complexType name="description_type">
<xsd:annotation>
<xsd:documentation xml:lang="en">
This type provides an description attribute for optional
annotations for Observation Points, Selection Processes,
Cache Parameters, Exporting Processes, and Collecting Processes.
The value of this attribute has no effect on the device
configuration.
</xsd:documentation>
</xsd:annotation>
<xsd:attribute name="description" type="xsd:string" use="optional" />
</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:complexContent>
<xsd:extension base="description_type">
<xsd:sequence>
<xsd:element name="observationPointId" type="xsd:unsignedInt"
minOccurs="0" />
<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:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="interface_type">
<xsd:sequence>
<xsd:choice>
<xsd:element name="ifIndex" type="xsd:unsignedInt"
minOccurs="0" />
<xsd:element name="ifName" type="xsd:string"
minOccurs="0" />
</xsd:choice>
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 23]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
<xsd:element name="direction" type="direction_type"
minOccurs="0" default="both" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="linecard_type">
<xsd:sequence>
<xsd:choice>
<xsd:element name="entPhysicalIndex" type="xsd:unsignedInt"
minOccurs="0" />
<xsd:element name="entPhysicalName" type="xsd:string"
minOccurs="0" />
</xsd:choice>
<xsd:element name="direction" type="direction_type"
minOccurs="0" default="both" />
</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="meteringProcessId" type="xsd:unsignedInt"
minOccurs="0" />
<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 is specified, they are
applied in the order of their appearance.
See PSAMP-MIB for details about the selection methods and their
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 24]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
parameters.
</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="description_type">
<xsd:sequence>
<xsd:element name="selectorId" type="xsd:unsignedInt"
minOccurs="0" />
<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" />
<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:sequence>
<xsd:attribute name="id" type="xsd:ID" use="required" />
</xsd:extension>
</xsd:complexContent>
</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>
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 25]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
<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>
<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>
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 26]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
<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">
This type specifies the parameters of a record cache.
At least, a Template must be specified.
</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="description_type">
<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:extension>
</xsd:complexContent>
</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>
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 27]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
</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" />
<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:complexContent>
<xsd:extension base="description_type">
<xsd:sequence>
<xsd:element name="exportingProcessId" type="xsd:unsignedInt"
minOccurs="0" />
<xsd:element name="Destination" type="destination_type"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="id" type="xsd:ID" use="required" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 28]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
<xsd:complexType name="destination_type">
<xsd:annotation>
<xsd:documentation xml:lang="en">
This type specifies one destination of an Exporting Process.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="type" type="transportSessionType_type"
minOccurs="0" default="primary" />
<xsd:choice>
<xsd:element name="SctpExport" type="sctpExport_type" />
<xsd:element name="UdpExport" type="udpExport_type" />
<xsd:element name="TcpExport" type="tcpExport_type" />
<xsd:element name="FileExport" type="fileExport_type" />
</xsd:choice>
<xsd:element name="Option" type="option_type"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="transportSessionType_type">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Transport Session 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" />
<xsd:enumeration value="unused" />
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="sctpExport_type">
<xsd:annotation>
<xsd:documentation xml:lang="en">
This type comprises parameters for SCTP export.
[TODO: which are SCTP specific parameters?]
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="ipAddressType" type="xsd:unsignedInt" />
<xsd:element name="destinationIpAddress" type="xsd:string" />
<xsd:element name="destinationTransportPort" type="xsd:unsignedInt" />
<xsd:element name="reliability" type="xsd:string"
minOccurs="0" />
</xsd:sequence>
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 29]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
</xsd:complexType>
<xsd:complexType name="udpExport_type">
<xsd:annotation>
<xsd:documentation xml:lang="en">
This type comprises parameters for UDP export.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="ipAddressType" type="xsd:unsignedInt" />
<xsd:element name="destinationIpAddress" type="xsd:string" />
<xsd:element name="destinationTransportPort" type="xsd:unsignedInt" />
<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="tcpExport_type">
<xsd:annotation>
<xsd:documentation xml:lang="en">
This type comprises parameters for TCP export.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="ipAddressType" type="xsd:unsignedInt" />
<xsd:element name="destinationIpAddress" type="xsd:string" />
<xsd:element name="destinationTransportPort" type="xsd:unsignedInt" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="fileExport_type">
<xsd:annotation>
<xsd:documentation xml:lang="en">
This type comprises parameters for file export.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="uri" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 30]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
<xsd:complexType name="option_type">
<xsd:annotation>
<xsd:documentation xml:lang="en">
This type is used to activate reporting option data.
The type determines the reported information. The timeout specifies
the time interval for exporting the option data. 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="optionType_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="optionType_type">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Types of optional information to be exported.
</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" />
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 31]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
<xsd:element name="NonScopeField" type="infoElement_type" />
</xsd:choice>
</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:complexContent>
<xsd:extension base="description_type">
<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:extension>
</xsd:complexContent>
</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="transportProtocol" type="xsd:unsignedInt" />
<xsd:element name="transportPort" type="xsd:unsignedInt" />
<xsd:element name="defaultTemplateLifetime" type="time_type"
minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
<!-- Root Element -->
<xsd:element name="ConfigData">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Root element of the IPFIX/PSAMP configuration data model
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 32]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
</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
This example demonstrates the configuration of a Selection Sequence
out of two Selection Processes, a random sampler and a filter. The
configuration assumes that the monitoring device supports the
configuration of values for observationPointId, meteringProcessId,
selectorId, and exportingProcessId. Exporter statistics are reported
using a manually specified Option Template.
<ConfigData xmlns="urn:ietf:params:xml:ns:ipfix-psamp-config">
<ObservationPoint description="Traffic at linecard 3">
<observationPointId>1</observationPointId>
<observationDomainId>12345</observationDomainId>
<Linecard>
<entPhysicalIndex>3</entPhysicalIndex>
</Linecard>
<MeteringProcess>
<meteringProcessId>1</meteringProcessId>
<SelectionProcess id="my_sampler" />
<SelectionProcess id="my_filter" />
<CacheParameters id="my_cache" />
</MeteringProcess>
</ObservationPoint>
<SelectionProcess id="my_sampler"
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 33]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
description="10-out-of-100 random packet sampler">
<selectorId>1</selectorId>
<SampRandOutOfN>
<population>100</population>
<sample>10</sample>
</SampRandOutOfN>
</SelectionProcess>
<SelectionProcess id="my_filter"
description="UDP filter">
<selectorId>2</selectorId>
<FilterMatch>
<infoElementId>4</infoElementId>
<startValue>17</startValue>
<stopValue>17</stopValue>
</FilterMatch>
</SelectionProcess>
<CacheParameters id="my_cache"
description="Packet cache with immediate expiration">
<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"
description="PR-SCTP exporter">
<exportingProcessId>1</exportingProcessId>
<Destination>
<type>primary</type>
<SctpExport>
<ipAddressType>4</ipAddressType>
<destinationIpAddress>192.0.2.1</destinationIpAddress>
<destinationTransportPort>4739</destinationTransportPort>
<reliability>partially-reliable</reliability>
</SctpExport>
<Option>
<type>exporting-reliability</type>
<timeout unit="min">5</timeout>
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 34]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
<OptionTemplate>
<ScopeField>
<ieName>exportingProcessId</ieName>
</ScopeField>
<NonScopeField>
<ieName>notSentPacketTotalCount</ieName>
</NonScopeField>
</OptionTemplate>
</Option>
</Destination>
</ExportingProcess>
</ConfigData>
7.2. IPFIX Monitoring Device
This example demonstrates the shared usage of a record cache in two
different Metering Processes. Packets observed at two different
Observation Points are selected using different sampling techniques.
Selected packets from both Observation Points enter the same record
cache. The Exporting Process sends the records to a primary
destination using SCTP. A UDP Collector is specified as secondary,
i.e. backup destination.
<ConfigData xmlns="urn:ietf:params:xml:ns:ipfix-psamp-config">
<ObservationPoint description="Ingress traffic at eth0">
<observationDomainId>12345</observationDomainId>
<Interface>
<ifName>eth0</ifName>
<direction>ingress</direction>
</Interface>
<MeteringProcess>
<SelectionProcess id="my_first_sampler" />
<CacheParameters id="my_cache" />
</MeteringProcess>
</ObservationPoint>
<ObservationPoint description="All traffic at eth1">
<observationDomainId>12346</observationDomainId>
<Interface>
<ifName>eth1</ifName>
</Interface>
<MeteringProcess>
<SelectionProcess id="my_second_sampler" />
<CacheParameters id="my_cache" />
</MeteringProcess>
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 35]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
</ObservationPoint>
<SelectionProcess id="my_first_sampler"
description="Count-based packet sampler">
<SampCountBased>
<interval>1</interval>
<spacing>99</spacing>
</SampCountBased>
</SelectionProcess>
<SelectionProcess id="my_second_sampler"
description="Time-based packet sampler">
<SampCountBased>
<interval>20</interval>
<spacing>980</spacing>
</SampCountBased>
</SelectionProcess>
<CacheParameters id="my_cache" description="Flow cache">
<cacheType>normal</cacheType>
<cacheSize>4096</cacheSize>
<activeTimeout unit="s">5</activeTimeout>
<idleTimeout unit="s">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>
<NonFlowKeyField>
<ieName>flowStartMilliSeconds</ieName>
</NonFlowKeyField>
<NonFlowKeyField>
<ieName>flowEndSeconds</ieName>
</NonFlowKeyField>
<NonFlowKeyField>
<ieName>octetDeltaCount</ieName>
</NonFlowKeyField>
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 36]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
<NonFlowKeyField>
<ieName>packetDeltaCount</ieName>
</NonFlowKeyField>
</Template>
<ExportingProcess id="my_exporter" />
</CacheParameters>
<ExportingProcess id="my_exporter"
description="SCTP Exporter with UDP backup destination">
<Destination>
<type>primary</type>
<SctpExport>
<ipAddressType>4</ipAddressType>
<destinationIpAddress>192.0.2.1</destinationIpAddress>
<destinationTransportPort>4739</destinationTransportPort>
<reliability>fully-reliable</reliability>
</SctpExport>
<Option>
<type>selection-sequence</type>
<timeout unit="s">0</timeout>
</Option>
<Option>
<type>exporting-reliability</type>
<timeout unit="min">5</timeout>
</Option>
</Destination>
<Destination>
<type>secondary</type>
<UdpExport>
<ipAddressType>4</ipAddressType>
<destinationIpAddress>192.0.2.2</destinationIpAddress>
<destinationTransportPort>4739</destinationTransportPort>
<sourceIpAddress>127.0.0.1</sourceIpAddress>
<templateRefreshTimeout unit="s">60</templateRefreshTimeout>
<optionTemplateRefreshTimeout unit="s">60
</optionTemplateRefreshTimeout>
</UdpExport>
<Option>
<type>selection-sequence</type>
<timeout unit="min">5</timeout>
</Option>
</Destination>
</ExportingProcess>
</ConfigData>
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 37]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
7.3. Collector Monitoring Device
<ConfigData xmlns="urn:ietf:params:xml:ns:ipfix-psamp-config">
<CollectingProcess description="SCTP collector">
<Receiver>
<ipAddressType>4</ipAddressType>
<ipAddress>192.0.2.1</ipAddress>
<transportProtocol>132</transportProtocol>
<transportPort>4739</transportPort>
</Receiver>
</CollectingProcess>
</ConfigData>
8. Security Considerations
The XML Schema Definition of the configuration data model has been
conceived to enable its usage with different device implementations.
In order to keep the XML Schema Definition 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 Definition 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
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
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 38]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 2007
Exchange of IP Traffic Flow Information",
draft-ietf-ipfix-protocol-26 (work in progress),
September 2007.
[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-08 (work in
progress), June 2007.
[I-D.ietf-psamp-info]
Dietz, T., Dressler, F., Carle, G., Claise, B., and P.
Aitken, "Information Model for Packet Sampling Exports",
draft-ietf-psamp-info-07 (work in progress), October 2007.
9.2. Informative References
[W3C.REC-xml-20040204]
Maler, E., Bray, T., Paoli, J., Sperberg-McQueen, C., and
F. Yergeau, "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>.
[W3C.REC-xmlschema-0-20041028]
Walmsley, P. and D. Fallside, "XML Schema Part 0: Primer
Second Edition", World Wide Web Consortium
Recommendation REC-xmlschema-0-20041028, October 2004,
<http://www.w3.org/TR/2004/REC-xmlschema-0-20041028>.
[RFC4741] Enns, R., "NETCONF Configuration Protocol", RFC 4741,
December 2006.
[W3C.REC-soap12-part1-20070427]
Mendelsohn, N., Karmarkar, A., Moreau, J., Nielsen, H.,
Lafon, Y., Hadley, M., and M. Gudgin, "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-12
(work in progress), July 2007.
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 39]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 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-01 (work in
progress), July 2007.
[I-D.trammell-ipfix-file]
Trammell, B., "An IPFIX-Based File Format",
draft-trammell-ipfix-file-05 (work in progress),
November 2007.
[I-D.ietf-ipfix-reducing-redundancy]
Boschi, E., "Reducing Redundancy in IP Flow Information
Export (IPFIX) and Packet Sampling (PSAMP) Reports",
draft-ietf-ipfix-reducing-redundancy-04 (work in
progress), May 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., Sommer, C., Muenz, G., and A. Kobayashi,
"IPFIX Flow Aggregation",
draft-dressler-ipfix-aggregation-04 (work in progress),
November 2007.
[I-D.ietf-psamp-framework]
Duffield, N., "A Framework for Packet Selection and
Reporting", draft-ietf-psamp-framework-12 (work in
progress), June 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.
Muenz & Claise draft-muenz-ipfix-configuration-03.txt [Page 40]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 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
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-03.txt [Page 41]
Internet-Draft IPFIX/PSAMP Configuration Data Model November 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-03.txt [Page 42]