Network Working Group P. Calato
Internet-Draft Riverstone Networks Inc
Expires: December 15, 2003 J. Meyer
Hewlett-Packard
J. Quittek
NEC Europe Ltd.
June 16, 2003
Information Model for IP Flow Information Export
draft-ietf-ipfix-info-00
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
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 15, 2003.
Copyright Notice
Copyright (C) The Internet Society (2003). All Rights Reserved.
Abstract
This document defines an information and data model for scalable
monitoring, measuring and exporting IP flow information to
collectors.
Calato, et al. Expires December 15, 2003 [Page 1]
Internet-Draft IPFIX Information Model June 2003
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 5
2. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3. Definition of a Flow . . . . . . . . . . . . . . . . . . . 7
4. Properties of an IPFIX Information Element . . . . . . . . 8
5. Type Space . . . . . . . . . . . . . . . . . . . . . . . . 9
5.1 int . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.2 unsignedInt . . . . . . . . . . . . . . . . . . . . . . . 9
5.3 long . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.4 unsignedLong . . . . . . . . . . . . . . . . . . . . . . . 9
5.5 float . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.6 double . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.7 hexBinary . . . . . . . . . . . . . . . . . . . . . . . . 9
5.8 string . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.9 boolean . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.10 byte . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.11 unsignedByte . . . . . . . . . . . . . . . . . . . . . . . 10
5.12 short . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.13 unsignedShort . . . . . . . . . . . . . . . . . . . . . . 10
5.14 dateTime . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.15 ipdr:dateTimeMsec . . . . . . . . . . . . . . . . . . . . 10
5.16 ipdr:ipV4Addr . . . . . . . . . . . . . . . . . . . . . . 11
5.17 ipdr:ipV6Addr . . . . . . . . . . . . . . . . . . . . . . 11
5.18 ipdr:UUID . . . . . . . . . . . . . . . . . . . . . . . . 11
5.19 ipdr:dateTimeUsec . . . . . . . . . . . . . . . . . . . . 11
6. Extending the Information Model . . . . . . . . . . . . . 12
7. The Benefits of a Formal Machine Readable Information
Model . . . . . . . . . . . . . . . . . . . . . . . . . . 13
8. Using XML Schema for Information Models . . . . . . . . . 14
9. Information Elements . . . . . . . . . . . . . . . . . . . 15
9.1 sourceAddress . . . . . . . . . . . . . . . . . . . . . . 15
9.1.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
9.1.2 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 15
9.2 sourceAddressV6 . . . . . . . . . . . . . . . . . . . . . 15
9.2.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
9.2.2 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 15
9.3 destinationAddress . . . . . . . . . . . . . . . . . . . . 15
9.3.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
9.3.2 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 15
9.4 destinationAddressV6 . . . . . . . . . . . . . . . . . . . 15
9.4.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
9.4.2 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 15
9.5 protocolIdentifier . . . . . . . . . . . . . . . . . . . . 16
9.5.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
9.5.2 Reference . . . . . . . . . . . . . . . . . . . . . . . . 16
9.5.3 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 16
9.6 sourcePort . . . . . . . . . . . . . . . . . . . . . . . . 16
Calato, et al. Expires December 15, 2003 [Page 2]
Internet-Draft IPFIX Information Model June 2003
9.6.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
9.6.2 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 16
9.7 destinationPort . . . . . . . . . . . . . . . . . . . . . 16
9.7.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
9.7.2 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 17
9.8 ingressPort . . . . . . . . . . . . . . . . . . . . . . . 17
9.8.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
9.8.2 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 17
9.9 egressPort . . . . . . . . . . . . . . . . . . . . . . . . 17
9.9.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
9.9.2 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 17
9.10 packetCount . . . . . . . . . . . . . . . . . . . . . . . 17
9.10.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
9.10.2 Units . . . . . . . . . . . . . . . . . . . . . . . . . . 18
9.10.3 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 18
9.11 byteCount . . . . . . . . . . . . . . . . . . . . . . . . 18
9.11.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
9.11.2 Units . . . . . . . . . . . . . . . . . . . . . . . . . . 18
9.11.3 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 18
9.12 classOfService . . . . . . . . . . . . . . . . . . . . . . 18
9.12.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
9.12.2 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 19
9.13 flowLabel . . . . . . . . . . . . . . . . . . . . . . . . 19
9.13.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
9.13.2 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 19
9.14 flowCreationTime . . . . . . . . . . . . . . . . . . . . . 19
9.14.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
9.14.2 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 19
9.15 flowEndTime . . . . . . . . . . . . . . . . . . . . . . . 19
9.15.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
9.15.2 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 20
9.16 sourceAS . . . . . . . . . . . . . . . . . . . . . . . . . 20
9.16.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
9.16.2 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 20
9.17 destinationAS . . . . . . . . . . . . . . . . . . . . . . 20
9.17.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
9.17.2 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 20
9.18 nextHopAS . . . . . . . . . . . . . . . . . . . . . . . . 20
9.18.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
9.18.2 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 20
9.19 tcpControlBits . . . . . . . . . . . . . . . . . . . . . . 20
9.19.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
9.19.2 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 21
9.20 sourceExporterAddress . . . . . . . . . . . . . . . . . . 21
9.20.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
9.20.2 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 21
9.21 droppedPacketCount . . . . . . . . . . . . . . . . . . . . 21
9.21.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Calato, et al. Expires December 15, 2003 [Page 3]
Internet-Draft IPFIX Information Model June 2003
9.21.2 Units . . . . . . . . . . . . . . . . . . . . . . . . . . 22
9.21.3 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 22
9.22 samplingInterval . . . . . . . . . . . . . . . . . . . . . 22
9.22.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
9.22.2 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 22
9.23 samplingAlgorithm . . . . . . . . . . . . . . . . . . . . 22
9.23.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
9.23.2 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 22
9.24 flowEndState . . . . . . . . . . . . . . . . . . . . . . . 22
9.24.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
9.24.2 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 23
9.25 droppedByteCount . . . . . . . . . . . . . . . . . . . . . 23
9.25.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
9.25.2 Units . . . . . . . . . . . . . . . . . . . . . . . . . . 23
9.25.3 Field Id . . . . . . . . . . . . . . . . . . . . . . . . . 23
References . . . . . . . . . . . . . . . . . . . . . . . . 24
Authors' Addresses . . . . . . . . . . . . . . . . . . . . 25
A. IPFIX IPDR Service Definition . . . . . . . . . . . . . . 26
Intellectual Property and Copyright Statements . . . . . . 36
Calato, et al. Expires December 15, 2003 [Page 4]
Internet-Draft IPFIX Information Model June 2003
1. Introduction
Many applications e.g., Intrusion detection, traffic engineering, and
accounting among others require the monitoring, measuring of IP
traffic flows. It is hence important to have a standard way of
exporting information related to IP flows. This document
defines the base set of data items which may be used by the exporter
for IP traffic flow monitoring and measuring. It also defines the
mechanism by which new data items may be added without changing the
underlying exchange protocol.
Calato, et al. Expires December 15, 2003 [Page 5]
Internet-Draft IPFIX Information Model June 2003
2. Scope
This document defines information data model for IPFIX-Requirements
[1]Specifically, this document describes a general purpose flow
definition along with the data elements which may be exported.
Calato, et al. Expires December 15, 2003 [Page 6]
Internet-Draft IPFIX Information Model June 2003
3. Definition of a Flow
As defined in the requirement draft IPFIX-Requirements [1]
. A flow is a set of packets passing an observation point in the
network during a certain time interval. All packets belonging to a
particular flow have a set of common properties derived from the data
contained in the packet and from the packet treatment at the
observation point.
In this document we define the flow more specifically. A flow is
defined as a set of packets passing an observation point in the
network during a certain time interval. All packets belonging to a
particular flow have a set of common properties.
Each property is defined as the result of applying a function to the
values of: A. one or more of packet header fields (e.g. destination
IP address) B. one or more properties of the packet itself (e.g.
packet length) C. one or more of fields derived from packet treatment
(e.g. AS number) A packet is defined to belong to a flow if it
matches all the defined properties of the flow. Flows can be defined
in multiple ways.
Calato, et al. Expires December 15, 2003 [Page 7]
Internet-Draft IPFIX Information Model June 2003
4. Properties of an IPFIX Information Element
Information elements defined in this specification, or by extension
MUST have the following properties defined:
Name - a unique and meaningful name for the field. The preferred
spelling for the name is to use mixed case if the name is
compound, with an initial lower case letter. (E.g.
"sourceAddress").
Description - the semantics of this information element. Describes
how this field is derived from the flow or other information
available to the observer.
Type - the typespace for attributes is constrained to facilitate
implementation. The existing typespace does however encompass most
basic types used in modern programming languages, as well as some
derived types (such as IPAddress) which are common to this domain
and useful to distinguish.
FieldId - a numeric identifier administered by IANA. This is used
for compact identification of an information item when encoding
templates in the protocol.
Information elements defined in this specification, or by extension
MAY have the following properties defined:
Vendor ID - when extension is done outside of the scope of the
IANA IPFIX fieldId range, a vendorId MUST be provided. This
identifier is based on IANA assigned enterprise identifiers.
Reference - identifies additional specifications which more
precisely define this item or provide additional context for its
use.
Units - if the field is a measure of some kind, the units identify
what the measure is.
Enumerated range - some items may have a specific set of numeric
identifiers associated with a set of discrete values this element
may take. The meaning of each discrete value and a human readable
name should be assigned.
Range - some elements may only be able to take on a restricted set
of values which can be expressed as a range (e.g. 0 through 511
inclusive). If this is the case, the valid inclusive range should
be specified.
Calato, et al. Expires December 15, 2003 [Page 8]
Internet-Draft IPFIX Information Model June 2003
5. Type Space
The following subsections describe the basic types from which most
IPFIX information elements should be constructed.
By describing Information Elements in terms of a well defined type
space, versus describing these details in each Element declaration,
greater consistency of the existing Information Model is expected.
This should also simplify the process of extending the Information
Model over time, and maintain this consistency.
5.1 int
The type "int" represents a integer numeric value in the range of
-2147483648 to 2147483647. (i.e. a 32-bit integer)
5.2 unsignedInt
The type "unsignedInt" represents an integer value in the range of 0
to 4294967295. (i.e. a 32-bit unsigned integer)
5.3 long
The type "long" represents an integer value in the range of
9223372036854775807 to -9223372036854775808. (i.e. a 64-bit integer)
5.4 unsignedLong
The type "unsignedLong" represents an integer value in the range of 0
to 18446744073709551615. (i.e. a 64-bit unsigned integer)
5.5 float
The type "float" corresponds to an IEEE single-precision 32-bit
floating point type.
5.6 double
The double datatype corresponds to IEEE double-precision 64-bit
floating point type
5.7 hexBinary
The type "hexBinary" represents a finite length string of octets.
Note the name reflects the mechanism used in XML documents to
represent the value using ASCII characters.
Calato, et al. Expires December 15, 2003 [Page 9]
Internet-Draft IPFIX Information Model June 2003
5.8 string
The type "string" represents a finite length string of valid
characters from the Unicode character encoding set. Unicode allows
for ASCII and many other international character sets to be used. It
is expected that strings will be encoded in UTF-8 format, which is
identical in encoding for USASCII characters, but also accomodates
other Unicode multibyte characters.
5.9 boolean
The type "boolean" represents the values for binary logic. (i.e.
"true/false" or "1/0").
5.10 byte
The type "byte" represents a integer numeric value in the range of
-128 to 127. (i.e. an 8-bit integer)
5.11 unsignedByte
The type "unsignedByte" represents a non-negative integer numeric
value in the range of 0 to 255. (i.e. an 8-bit unsigned integer)
5.12 short
The type "short" represents a integer numeric value in the range of
32767 to 32768. (i.e. an 16-bit integer)
5.13 unsignedShort
The type "unsignedShort" represents a non-negative integer numeric
value in the range of 0 to 65535. (i.e. an 16-bit unsigned integer)
5.14 dateTime
The "dateTime" type represents a specific instant of time. It is
further restricted from the basic XML dateTime type to having a
precision of seconds and normalized to the GMT timezone. Such types
are in common use on many Operating Systems and have the advantage
that they can be stored in 32-bit integers.
5.15 ipdr:dateTimeMsec
The "dateTimeMsec" type is defined in the IPDR namespace. It
represents a specific instant of time. It is further restricted from
the basic XML dateTime type to having a precision of milliseconds and
normalized to the GMT timezone.
Calato, et al. Expires December 15, 2003 [Page 10]
Internet-Draft IPFIX Information Model June 2003
Such types are in common use on many Operating Systems and have the
advantage that they can be stored in 64-bit integers.
5.16 ipdr:ipV4Addr
The "ipV4Addr" type indicates the value is an IP version 4 address.
These addresses are typically stored as 32-bit integers on systems.
5.17 ipdr:ipV6Addr
The "ipV6Addr" type indicates the value is an IP version 6 address.
IPv6 addresses are 16 byte octet strings.
5.18 ipdr:UUID
The "UUID" type represents a universal unique id as defined in the
OSF specification for Distributed Computing Environment (DCE). It's
definition can be found in the OSF CAE Specification, Document C706,
1997, Appendix A, located at: http://www.opengroup.org/onlinepubs/
009629399/
UUIDs are equivalent to Globally Unique Identifiers (GUIDs) used by
Microsoft.
UUIDs are 16 byte quantities which are generated in such a way that
systems can independently generate their values, but still have a
guarantee of global uniqueness of the generated value.
UUID's are typically written in the form
f81d4fae-7dec-11d0-a765-00a0c91e6bf6. Which merely shows in
hexadecimal the 16 byte value. Separators are introduced to segment
the hex value into groupings of 4, 2, 2, 2 and 6 bytes.
An open source C implementation of UUID generation is available in
the appendix of the IETF draft, draftleach-uuids-guids-01.txt. This
draft has expired, but an archived copy is available at: http://
www.ipdr.org/public/draft-leach-uuids-guids-01.txt
Note: the IETF draft was allowed to expire because the group
considered the OSF work a referenceable standard and did not chose to
duplicate it.
5.19 ipdr:dateTimeUsec
The dateTimeUsec type is defined in the IPDR namespace. It represents
a specific instant of time. It is further restricted from the basic
XML dateTime type to having a precision of microseconds and
normalized to the GMT timezone.
Calato, et al. Expires December 15, 2003 [Page 11]
Internet-Draft IPFIX Information Model June 2003
6. Extending the Information Model
A key requirement for IPFIX is to allow for extending the set of
information items which are reported for flows. This section defines
the mechanism for extending this set.
The IPFIX protocol carries flow records defined by a template.
Multiple templates may be defined for a dialog between an exporter
and a collector. A given template identifies the information items
and their order. The means of identification of information items in
a template is via a field ID. Field Id's are unique identifiers
administered by IANA (ed. ? true for vendor specific fields?).
Extension is done by defining new Information elements, including the
set of necessary information and possibly additional optional
information for each element. Each new information item MUST be
assigned a unique fieldId as part of its definition. These unique
flow ids are the connection between the record structure communicated
by the protocol using templates and a consuming application.
Calato, et al. Expires December 15, 2003 [Page 12]
Internet-Draft IPFIX Information Model June 2003
7. The Benefits of a Formal Machine Readable Information Model
Appendix A. expresses the IPFIX Information model as an XML-Schema.
Using a formal and machine readable syntax for the Information model
enables the creation of IPFIX aware tools which can automatically
adapt to extensions to the information model, by simply reading
updated information model specifications.
Calato, et al. Expires December 15, 2003 [Page 13]
Internet-Draft IPFIX Information Model June 2003
8. Using XML Schema for Information Models
The use of XML-Schema as the formal specification language is modeled
after the techniques employed by the IPDR NDM-U specification.
The wide availability of XML aware tools is a primary consideration
for this choice. In particular libraries for parsing XML documents
are readily available. Also mechanisms such as the Extensible
Stylesheet Language (XSL) allow for transforming a source XML
document into other documents. This draft was initially authored in
XML and transformed according to RFC2629.
It should be noted that the use of XML processors is not mandatory
for the deployment of IPFIX. In particular exporting processes which
may run on constrained platforms do not produce or consume XML as
part of their operation. It is expected that IPFIX collectors MAY
take advantage of the machine readability of the Information Model
vs. hardcoding their behavior or inventing proprietary means for
accomodating extensions.
Calato, et al. Expires December 15, 2003 [Page 14]
Internet-Draft IPFIX Information Model June 2003
9. Information Elements
9.1 sourceAddress
IPv4 source address taken from the packet header.
9.1.1 Type
The sourceAddress element is of type ipdr:ipV4Addr.
9.1.2 Field Id
The field id is 8.
9.2 sourceAddressV6
IPv6 source address taken from the packet header.
9.2.1 Type
The sourceAddressV6 element is of type ipdr:ipV6Addr.
9.2.2 Field Id
The field id is 27.
9.3 destinationAddress
IPv4 destination address taken from the packet header.
9.3.1 Type
The destinationAddress element is of type ipdr:ipV4Addr.
9.3.2 Field Id
The field id is 12.
9.4 destinationAddressV6
IPv6 destination address taken from the packet header.
9.4.1 Type
The destinationAddressV6 element is of type ipdr:ipV6Addr.
9.4.2 Field Id
Calato, et al. Expires December 15, 2003 [Page 15]
Internet-Draft IPFIX Information Model June 2003
The field id is 28.
9.5 protocolIdentifier
Protocol number identified in the IP packet.
In the Internet Protocol version 4 (IPv4) [RFC791] there is a field,
called "Protocol", to identify the next level protocol. This is an 8
bit field. In Internet Protocol version 6 (IPv6) [RFC1883] this
field is called the "Next Header" field.
These numbers are administered by IANA.
9.5.1 Type
The protocolIdentifier element is of type int.
9.5.2 Reference
Additional information on this element can be found at http://
www.iana.org/assignments/protocol-numbers.
9.5.3 Field Id
The field id is 4.
9.6 sourcePort
This information element is used to report UDP source port [see RFC
768] or TCP source port [see RFC 793] as taken from the IP header.
9.6.1 Type
The sourcePort element is of type unsignedShort.
9.6.2 Field Id
The field id is 7.
9.7 destinationPort
This information element is used to report UDP destination port [see
RFC 768] or TCP destination port [see RFC 793] as taken from the IP
header.
9.7.1 Type
The destinationPort element is of type unsignedShort.
Calato, et al. Expires December 15, 2003 [Page 16]
Internet-Draft IPFIX Information Model June 2003
9.7.2 Field Id
The field id is 11.
9.8 ingressPort
The ifIndex where the packets for the flow are being received.
ifIndex is defined by RFC 2233.
9.8.1 Type
The ingressPort element is of type unsignedShort.
9.8.2 Field Id
The field id is 10.
9.9 egressPort
The ifIndex where the packets for the flow are exiting. ifIndex is
defined by RFC 2233.
9.9.1 Type
The egressPort element is of type unsignedShort.
9.9.2 Field Id
The field id is 14.
9.10 packetCount
Contains the count of packets sent and received associated with the
identified flow.
The packet count can be for packets received (towards source) or
packets sent (towards destination) or both (bi-directional flow).
The packet count can be a running counter and is the count from the
beginning of the flow establishment.
The packet count can be a delta counter and is the count since the
last report for this flow.
9.10.1 Type
The packetCount element is of type int.
Calato, et al. Expires December 15, 2003 [Page 17]
Internet-Draft IPFIX Information Model June 2003
9.10.2 Units
The unit of measure is packets.
9.10.3 Field Id
The field id is 11.
9.11 byteCount
Contains the count of octets sent and received associated with the
identified flow.
The byte count can be for bytes received (towards source) or bytes
sent (towards destination) or both (bi-directional flow).
The byte count can be a running counter and is the count from the
beginning of the flow establishment.
The byte count can be a delta counter and is the count since the last
report for this flow.
9.11.1 Type
The byteCount element is of type int.
9.11.2 Units
The unit of measure is bytes.
9.11.3 Field Id
The field id is 1.
9.12 classOfService
The class of service associated with a flow.
Class of Service Received
Class of Service Transmitted
1. IPv4, CoS value is defined by ToS in RFC 791 2. IPv6, CoS value is
defined by Traffic Class in RFC 2460 3. MPLS, CoS value is defined by
Exp in RFC 3032 4. VLAN, CoS value is defined by user_priority in
IEEE802.1q[802.1q] and IEEE 802.1p[802.1p]
Calato, et al. Expires December 15, 2003 [Page 18]
Internet-Draft IPFIX Information Model June 2003
9.12.1 Type
The classOfService element is of type byte.
9.12.2 Field Id
The field id is 5.
9.13 flowLabel
The Flow Label information element contains the IPV6 Flow Label
information as defined by RFC 2460.
9.13.1 Type
The flowLabel element is of type int.
9.13.2 Field Id
The field id is 31.
9.14 flowCreationTime
The timestamp of the first packet of the flow. (Ed. note: current
NFv9 protocol uses sysuptime vs. direct time. Not interesting from
an info model perspective, an artifact (and an annoying one from a
consumer perspective) of the protocol implementation details. How to
address?)
9.14.1 Type
The flowCreationTime element is of type dateTime.
9.14.2 Field Id
The field id is 21.
9.15 flowEndTime
The timestamp of the last packet of the flow. (Ed. note: current
NFv9 protocol uses sysuptime vs. direct time. Not interesting from
an info model perspective, an artifact (and an annoying one from a
consumer perspective) of the protocol implementation details. How to
address?)
9.15.1 Type
The flowEndTime element is of type dateTime.
Calato, et al. Expires December 15, 2003 [Page 19]
Internet-Draft IPFIX Information Model June 2003
9.15.2 Field Id
The field id is 22.
9.16 sourceAS
The Autonomous System (AS) numbers for the source address associated
with a flow. Autonomous System (AS) number is defined by RFC 1930 and
RFC 1771 (BGP-4):
9.16.1 Type
The sourceAS element is of type int.
9.16.2 Field Id
The field id is 16.
9.17 destinationAS
The Autonomous System (AS) numbers for the destination address
associated wit a flow. Autonomous System (AS) number is defined by
RFC 1930 and RFC 1771 (BGP-4).
9.17.1 Type
The destinationAS element is of type int.
9.17.2 Field Id
The field id is 17.
9.18 nextHopAS
The Autonomous System (AS) numbers for the next hop IP. Autonomous
System (AS) number is defined by RFC 1930 and RFC 1771 (BGP-4).
9.18.1 Type
The nextHopAS element is of type int.
9.18.2 Field Id
The field id is -1.
9.19 tcpControlBits
The TCP control bits seen for this flow. Note a 0 value for each bit
Calato, et al. Expires December 15, 2003 [Page 20]
Internet-Draft IPFIX Information Model June 2003
only indicates that the flag was not detected (i.e. it may have
occurred but was not detected by the reporting CCE). TCP Control Bits
are defined by RFC 793.
9.19.1 Type
The tcpControlBits element is of type int.
9.19.2 Field Id
The field id is 6.
9.20 sourceExporterAddress
Source Exporter address is the address of the Exporter reporting the
flow, Address is same as is as shown for Source Address. This
information is used by applications to later correlate the ingress/
egress port with a specific Exporter. It is also used to maintain the
source Exporter information when there is an intermediate proxy. For
example, given the picture below:
SW1 -------- P1 ------ Collector
^
|
SW2---------- |
Flows coming from SW1 and SW2 through proxy P1 would look to the
Collector [ is this the right term??? PAC] like the same Exporter
connection. With the Source Exporter in the message the original
Exporter address is maintained.
9.20.1 Type
The sourceExporterAddress element is of type ipdr:ipV4Addr.
9.20.2 Field Id
The field id is -1.
9.21 droppedPacketCount
Contains the count of packets dropped at the observation point
associated with the identified flow.
The dropped packet count can be a running counter and is the count
from the beginning of the flow establishment.
Calato, et al. Expires December 15, 2003 [Page 21]
Internet-Draft IPFIX Information Model June 2003
The dropped packet count can be a delta counter and is the count
since the last report for this flow.
9.21.1 Type
The droppedPacketCount element is of type int.
9.21.2 Units
The unit of measure is packets.
9.21.3 Field Id
The field id is -1.
9.22 samplingInterval
When using Sampling, the rate at which packets is sampled. For
example, a value of 100 indicates that one of every hundred packets
is sampled.
9.22.1 Type
The samplingInterval element is of type int.
9.22.2 Field Id
The field id is 34.
9.23 samplingAlgorithm
The type of algorithm used for sampling data. Currently, the only
sampling algorithm defined is: 0x02 packet-sampling
9.23.1 Type
The samplingAlgorithm element is of type int.
9.23.2 Field Id
The field id is 35.
9.24 flowEndState
The reason the flow has ended. 1. Inactivity timeout 2. End of flow
detected (e.g. TCP FIN) 3. Forced end ???? 4. Cache full
[enumerations in IPDR service def schemas are recommended to be of
form string, w/ integer values (for Compact format) defined via
Calato, et al. Expires December 15, 2003 [Page 22]
Internet-Draft IPFIX Information Model June 2003
annotation]
9.24.1 Type
The flowEndState element is of type int.
9.24.2 Field Id
The field id is -1.
9.25 droppedByteCount
Contains the count of octets dropped at the observation point
associated with the identified flow.
The dropped byte count can be a running counter and is the count from
the beginning of the flow establishment.
The byte count can be a delta counter and is the count since the last
report for this flow.
9.25.1 Type
The droppedByteCount element is of type int.
9.25.2 Units
The unit of measure is bytes.
9.25.3 Field Id
The field id is -1.
Calato, et al. Expires December 15, 2003 [Page 23]
Internet-Draft IPFIX Information Model June 2003
References
[1] Quittek, J., "Requirements for IP Flow Information Export",
IETF draft work in progress, August 2003, <http://www.ietf.org/
internet-drafts/draft-ietf-ipfix-reqs-10.txt>.
[2] Sadasivan, G. and N. Brownlee, "Architecture Model for IP Flow
Information Export", IETF draft work in progress, June 2002,
<http://www.ietf.org/internet-drafts/
draft-ietf-ipfix-arch-00.txt>.
[3] Claise, B., "Cisco Systems NetFlow Services Export Version 9",
IETF draft work in progress, June 2003, <http://www.ietf.org/
internet-drafts/draft-claise-netflow-9-02.txt>.
[4] World Wide Web Consortium, "Extensible Markup Language (XML)
1.0", W3C XML, February 1998, <http://www.w3.org/TR/1998/
REC-xml-19980210>.
[5] World Wide Web Consortium, "XML Schema Part 1: Structures", W3C
XML, May 2001, <http://www.w3.org/TR/2001/
REC-xmlschema-1-20010502/>.
[6] World Wide Web Consortium, "XML Schema Part 2: Datatypes", W3C
XML, May 2001, <http://www.w3.org/TR/2001/
REC-xmlschema-2-20010502/datatypes.html>.
[7] Internet Protocol Detail Record Organization, "Network Data
Management - Usage (NDM-U) For IP-Based Services Version
3.1.1", October 2002, <http://www.ipdr.org/documents/
NDM-U_3.1.1.pdf>.
[8] Brownlee, N. and A. Blount, "Accounting Attributes and Record
Formats", RFC 2924, Sept. 2000, <http://www.ietf.org/rfc/
rfc2924.txt>.
[9] Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629, June
1999, <http://xml.resource.org/public/rfc/html/rfc2629.html>.
[10] Hollenbeck, S., Rose, M. and L. Masinter, "Guidelines for the
Use of Extensible Markup Language (XML) within IETF Protocols",
RFC 3470, January 2003, <http://www.ietf.org/rfc/rfc3470.txt>.
[11] Pras, A. and J. Schoenwaelder, "Guidelines for the Use of
Extensible Markup Language (XML) within IETF Protocols", RFC
3444, January 2003, <http://www.ietf.org/rfc/rfc3444.txt>.
Calato, et al. Expires December 15, 2003 [Page 24]
Internet-Draft IPFIX Information Model June 2003
Authors' Addresses
Paul Calato
Riverstone Networks Inc
5200 Great America Parkway
Santa Clara, CA 95054
US
Phone: +1 603 557-6913
EMail: calato@riverstonenet.com
URI: http://www.riverstonenet.com
Jeff Meyer
Hewlett-Packard
19420 Homestead Rd.
Cupertino, CA 95014
US
Phone: +1 408 447-3477
EMail: jeff.meyer2@hp.com
URI: http://www.hp.com
Juergen Quittek
NEC Europe Ltd.
Adenauerplatz 6
Heidelberg 69115
Germany
Phone: +49 6221 90511-15
EMail: quittek@ccrle.nec.de
URI: http://www.neceurope.com/
Calato, et al. Expires December 15, 2003 [Page 25]
Internet-Draft IPFIX Information Model June 2003
Appendix A. IPFIX IPDR Service Definition
This proposal does not currently address possible IANA implications
associated with XML Namespace URIs. The use of Namespaces as an
extension mechanism implies that an IANA registered Namespace URI
should be available and that directory names below this base URI be
assigned for relevant IETF specifications. The author is not aware of
this mechanism today. Alternatively IPDR.org could fulfill this role.
The sample uses the IPDR.org namespace.
<schema xmlns:ipdr="http://www.ipdr.org/namespaces/ipdr"
xmlns:ipfix="http://www.iana.org/namespaces/ipfix">
<annotation>
<documentation>
<t>
This document defines a subset of the identified IPFIX data
model as XML Schema elements and complexTypes. This schema
definition is compatable with the IPDR Service Definition
format, enabling flow information to be represented as XML
or binary documents. And defines the format used when streaming
flow information to a recording system.
</t>
</documentation>
</annotation>
<element name="sourceAddress" type="ipdr:ipV4Addr">
<annotation>
<documentation>
<t>
IPv4 source address taken from the packet header.
</t>
</documentation>
<appinfo>
<ipfix:fieldId>8</ipfix:fieldId>
</appinfo>
</annotation>
</element>
<element name="sourceAddressV6" type="ipdr:ipV6Addr">
<annotation>
<documentation>
<t>
IPv6 source address taken from the packet header.
</t>
Calato, et al. Expires December 15, 2003 [Page 26]
Internet-Draft IPFIX Information Model June 2003
</documentation>
<appinfo>
<ipfix:fieldId>27</ipfix:fieldId>
</appinfo>
</annotation>
</element>
<element name="destinationAddress" type="ipdr:ipV4Addr">
<annotation>
<documentation>
<t>
IPv4 destination address taken from the packet header.
</t>
</documentation>
<appinfo>
<ipfix:fieldId>12</ipfix:fieldId>
</appinfo>
</annotation>
</element>
<element name="destinationAddressV6" type="ipdr:ipV6Addr">
<annotation>
<documentation>
<t>
IPv6 destination address taken from the packet header.
</t>
</documentation>
<appinfo>
<ipfix:fieldId>28</ipfix:fieldId>
</appinfo>
</annotation>
</element>
<element name="protocolIdentifier" type="int">
<annotation>
<documentation>
<t>
Protocol number identified in the IP packet.
</t><t>
In the Internet Protocol version 4 (IPv4) [RFC791] there is a field,
called "Protocol", to identify the next level protocol. This is an 8
bit field. In Internet Protocol version 6 (IPv6) [RFC1883] this field
is called the "Next Header" field.
</t><t>
These numbers are administered by IANA.
Calato, et al. Expires December 15, 2003 [Page 27]
Internet-Draft IPFIX Information Model June 2003
</t>
</documentation>
<appinfo>
<ipdr:reference>http://www.iana.org/assignments/protocol-numbers</ipdr:reference>
</appinfo>
<appinfo>
<ipfix:fieldId>4</ipfix:fieldId>
</appinfo>
</annotation>
</element>
<element name="sourcePort" type="unsignedShort">
<annotation>
<documentation>
<t>
This information element is used to report UDP source port [see
RFC 768] or TCP source port [see RFC 793] as taken from the IP
header.
</t>
</documentation>
<appinfo>
<ipfix:fieldId>7</ipfix:fieldId>
</appinfo>
</annotation>
</element>
<element name="destinationPort" type="unsignedShort">
<annotation>
<documentation>
<t>
This information element is used to report UDP destination port
[see RFC 768] or TCP destination port [see RFC 793] as taken from
the IP header.
</t>
</documentation>
<appinfo>
<ipfix:fieldId>11</ipfix:fieldId>
</appinfo>
</annotation>
</element>
<element name="ingressPort" type="unsignedShort">
<annotation>
<documentation>
<t>
The ifIndex where the packets for the flow are being received.
ifIndex is defined by RFC 2233.
</t>
Calato, et al. Expires December 15, 2003 [Page 28]
Internet-Draft IPFIX Information Model June 2003
</documentation>
<appinfo>
<ipfix:fieldId>10</ipfix:fieldId>
</appinfo></annotation>
</element>
<element name="egressPort" type="unsignedShort">
<annotation>
<documentation>
<t>
The ifIndex where the packets for the flow are exiting. ifIndex is
defined by RFC 2233.
</t>
</documentation>
<appinfo>
<ipfix:fieldId>14</ipfix:fieldId>
</appinfo></annotation>
</element>
<element name="packetCount" type="int">
<annotation>
<documentation>
<t>
Contains the count of packets sent and received associated with
the identified flow.
</t><t>
The packet count can be for packets received (towards source) or
packets sent (towards destination) or both (bi-directional flow).
</t><t>
The packet count can be a running counter and is the count from
the beginning of the flow establishment.
</t><t>
The packet count can be a delta counter and is the count since the
last report for this flow.
</t>
</documentation>
<appinfo>
<ipdr:units>packets</ipdr:units>
</appinfo>
<appinfo>
<ipfix:fieldId>11</ipfix:fieldId>
</appinfo>2</annotation>
</element>
<element name="byteCount" type="int">
<annotation>
<documentation>
<t>
Calato, et al. Expires December 15, 2003 [Page 29]
Internet-Draft IPFIX Information Model June 2003
Contains the count of octets sent and received associated with the
identified flow.
</t><t>
The byte count can be for bytes received (towards source) or bytes
sent (towards destination) or both (bi-directional flow).
</t><t>
The byte count can be a running counter and is the count from the
beginning of the flow establishment.
</t><t>
The byte count can be a delta counter and is the count since the
last report for this flow.
</t>
</documentation>
<appinfo>
<ipdr:units>bytes</ipdr:units>
</appinfo>
<appinfo>
<ipfix:fieldId>1</ipfix:fieldId>
</appinfo></annotation>
</element>
<element name="classOfService" type="byte">
<annotation>
<documentation>
<t>
The class of service associated with a flow.
</t><t>
Class of Service Received
</t><t>
Class of Service Transmitted
</t><t>
1. IPv4, CoS value is defined by ToS in RFC 791
2. IPv6, CoS value is defined by Traffic Class in RFC 2460
3. MPLS, CoS value is defined by Exp in RFC 3032
4. VLAN, CoS value is defined by user_priority in
IEEE802.1q[802.1q] and IEEE 802.1p[802.1p]
</t>
</documentation>
<appinfo>
<ipfix:fieldId>5</ipfix:fieldId>
</appinfo></annotation>
</element>
<element name="flowLabel" type="int">
<annotation>
<documentation>
<t>
The Flow Label information element contains the IPV6 Flow Label
Calato, et al. Expires December 15, 2003 [Page 30]
Internet-Draft IPFIX Information Model June 2003
information as defined by RFC 2460.
</t>
</documentation>
<appinfo>
<ipfix:fieldId>31</ipfix:fieldId>
</appinfo></annotation>
</element>
<element name="flowCreationTime" type="dateTime">
<annotation>
<documentation>
<t>
The timestamp of the first packet of the flow. (Ed. note: current NFv9
protocol uses sysuptime vs. direct time. Not interesting from an info
model perspective, an artifact (and an annoying one from a consumer
perspective) of the protocol implementation details. How to address?)
</t>
</documentation>
<appinfo>
<ipfix:fieldId>21</ipfix:fieldId>
</appinfo></annotation>
</element>
<element name="flowEndTime" type="dateTime">
<annotation>
<documentation>
<t>
The timestamp of the last packet of the flow. (Ed. note: current NFv9
protocol uses sysuptime vs. direct time. Not interesting from an info
model perspective, an artifact (and an annoying one from a consumer
perspective) of the protocol implementation details. How to address?)
</t>
</documentation>
<appinfo>
<ipfix:fieldId>22</ipfix:fieldId>
</appinfo></annotation>
</element>
<element name="sourceAS" type="int">
<annotation>
<documentation>
<t>
The Autonomous System (AS) numbers for the source address
associated with a flow. Autonomous System (AS) number is defined
by RFC 1930 and RFC 1771 (BGP-4):
</t>
</documentation>
Calato, et al. Expires December 15, 2003 [Page 31]
Internet-Draft IPFIX Information Model June 2003
<appinfo>
<ipfix:fieldId>16</ipfix:fieldId>
</appinfo></annotation>
</element>
<element name="destinationAS" type="int">
<annotation>
<documentation>
<t>
The Autonomous System (AS) numbers for the destination address
associated wit a flow. Autonomous System (AS) number is defined by
RFC 1930 and RFC 1771 (BGP-4).
</t>
</documentation>
<appinfo>
<ipfix:fieldId>17</ipfix:fieldId>
</appinfo></annotation>
</element>
<element name="nextHopAS" type="int">
<annotation>
<documentation>
<t>
The Autonomous System (AS) numbers for the next hop IP. Autonomous
System (AS) number is defined by RFC 1930 and RFC 1771 (BGP-4).
</t>
</documentation>
<appinfo>
<ipfix:fieldId>-1</ipfix:fieldId>
</appinfo>
</annotation>
</element>
<element name="tcpControlBits" type="int">
<annotation>
<documentation>
<t>
The TCP control bits seen for this flow. Note a 0 value for each
bit only indicates that the flag was not detected (i.e. it may
have occurred but was not detected by the reporting CCE). TCP
Control Bits are defined by RFC 793.
</t>
</documentation>
<appinfo>
<ipfix:fieldId>6</ipfix:fieldId>
</appinfo>
</annotation>
</element>
Calato, et al. Expires December 15, 2003 [Page 32]
Internet-Draft IPFIX Information Model June 2003
<element name="sourceExporterAddress" type="ipdr:ipV4Addr">
<annotation>
<documentation>
<t>
Source Exporter address is the address of the Exporter reporting
the flow, Address is same as is as shown for Source Address. This
information is used by applications to later correlate the
ingress/egress port with a specific Exporter. It is also used to
maintain the source Exporter information when there is an
intermediate proxy. For example, given the picture below:
</t><t><figure><artwork xml:space="preserve">
SW1 -------- P1 ------ Collector
^
|
SW2---------- |
</artwork></figure></t><t>
Flows coming from SW1 and SW2 through proxy P1 would look to the
Collector [ is this the right term??? PAC] like the same Exporter
connection. With the Source Exporter in the message the original
Exporter address is maintained.
</t>
</documentation>
<appinfo>
<ipfix:fieldId>-1</ipfix:fieldId>
</appinfo>
</annotation>
</element>
<element name="droppedPacketCount" type="int">
<annotation>
<documentation>
<t>
Contains the count of packets dropped at the observation point
associated with the identified flow.
</t><t>
The dropped packet count can be a running counter and is the count
from the beginning of the flow establishment.
</t><t>
The dropped packet count can be a delta counter and is the count
since the last report for this flow.
</t>
</documentation>
<appinfo>
<ipdr:units>packets</ipdr:units>
</appinfo>
<appinfo>
<ipfix:fieldId>-1</ipfix:fieldId>
Calato, et al. Expires December 15, 2003 [Page 33]
Internet-Draft IPFIX Information Model June 2003
</appinfo>
</annotation>
</element>
<element name="samplingInterval" type="int">
<annotation>
<documentation>
<t>
When using Sampling, the rate at which packets is sampled. For
example, a value of 100 indicates that one of every hundred
packets is sampled.
</t>
</documentation>
<appinfo>
<ipfix:fieldId>34</ipfix:fieldId>
</appinfo>
</annotation>
</element>
<element name="samplingAlgorithm" type="int">
<annotation>
<documentation>
<t>
The type of algorithm used for sampling data. Currently, the only
sampling algorithm defined is:
0x02 packet-sampling
</t>
</documentation>
<appinfo>
<ipfix:fieldId>35</ipfix:fieldId>
</appinfo>
</annotation>
</element>
<element name="flowEndState" type="int">
<annotation>
<documentation>
<t>
The reason the flow has ended.
1. Inactivity timeout
2. End of flow detected (e.g. TCP FIN)
3. Forced end ????
4. Cache full
[enumerations in IPDR service def schemas are recommended to be
of form string, w/ integer values (for Compact format)
defined via annotation]
</t>
Calato, et al. Expires December 15, 2003 [Page 34]
Internet-Draft IPFIX Information Model June 2003
</documentation>
<appinfo>
<ipfix:fieldId>-1</ipfix:fieldId>
</appinfo>
</annotation>
</element>
<element name="droppedByteCount" type="int">
<annotation>
<documentation>
<t>
Contains the count of octets dropped at the observation point
associated with the identified flow.
</t><t>
The dropped byte count can be a running counter and is the count
from the beginning of the flow establishment.
</t><t>
The byte count can be a delta counter and is the count since the
last report for this flow.
</t>
</documentation>
<appinfo>
<ipdr:units>bytes</ipdr:units>
</appinfo>
<appinfo>
<ipfix:fieldId>-1</ipfix:fieldId>
</appinfo>
</annotation>
</element>
</schema>
Calato, et al. Expires December 15, 2003 [Page 35]
Internet-Draft IPFIX Information Model June 2003
Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; neither does it represent that it
has made any effort to identify any such rights. Information on the
IETF's procedures with respect to rights in standards-track and
standards-related documentation can be found in BCP-11. Copies of
claims of rights made available for publication and any assurances of
licenses to be made available, or the result of an attempt made to
obtain a general license or permission for the use of such
proprietary rights by implementors or users of this specification can
be obtained from the IETF Secretariat.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights which may cover technology that may be required to practice
this standard. Please address the information to the IETF Executive
Director.
Full Copyright Statement
Copyright (C) The Internet Society (2003). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assignees.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
Calato, et al. Expires December 15, 2003 [Page 36]
Internet-Draft IPFIX Information Model June 2003
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgement
Funding for the RFC Editor function is currently provided by the
Internet Society.
Calato, et al. Expires December 15, 2003 [Page 37]