Internet Draft
   Expiration: August 2003                              Martin Djernaes
   Document: draft-djernaes-netflow-9-transport-00.txt    Cisco Systems
   Category: Informational                               February  2003


              Cisco Systems NetFlow Services Export

                       Version 9 Transport



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



Abstract

   NetFlow Export Version 9 Export is defined in the internet draft
   draft-claise-netflow-9 [NFv9], which describes how to transport
   NetFlow over UDP [RFC768]. This document describes how NetFlow
   would use SCTP [RFC2960] as a transport protocol.

   Traditionally NetFlow was transmitted over UDP to a physically
   closely located collector. As the networks grow this is not
   necessarily the case any longer, so issues like congestion
   avoidance and reliability are becoming an increasing issue for
   applications using NetFlow. This document addresses these issues in
   a simple way using the SCTP protocol.


Conventions used in this document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
   this document is to be interpreted as described in RFC 2119.





Djernaes                         Draft                          [Page 1]


Cisco NetFlow v9 transport                                 February 2003

Table of Contents

   1. Introduction...................................................2
      1.1 Overview...................................................2
      1.2 Congestion Avoidance.......................................2
      1.3 Reliability................................................2
   2. NetFlow data...................................................3
      2.1 Packet size................................................3
      2.2 Source ID..................................................3
   3. Exporter.......................................................3
      3.1 Observation Domain.........................................3
      3.2 Association................................................4
      3.3 Stream.....................................................4
      3.4 Template...................................................4
      3.5 Stream usage...............................................5
   4. Collector......................................................5
      4.1 Listen.....................................................5
      4.2 Receive....................................................5
   5. References.....................................................6
   6. Acknowledgments................................................6
   7. Authors Addresses..............................................6



1. Introduction

1.1 Overview

   This document describes how Cisco NetFlow version 9[NFv9] can be
   transported over SCTP[RFC2960] using traditional reliable mode, but
   also use the partial reliable or unreliable mode[PR-SCTP].

   Weight is especially put on the freedom to use SCTP as a reliable,
   single stream transport, as well as multiple streams with different
   properties, for example in terms of reliability, carrying different
   data types dependant on their importance for the system.

   This document does not describe how to classify importance of data,
   and does therefore not describe how an exporter selects what kind
   of stream to use for a given set of data.

1.2 Congestion Avoidance

   The SCTP transport protocol provides the required level of
   congestion avoidance by design.

1.3 Reliability

   The SCTP transport protocol is by default reliable, but has the
   capability to operate in unreliable and partially reliable modes
   [PR-SCTP].

   Using reliable SCTP streams for NetFlow v9 export is not in itself
   a guarantee that all records are delivered. If there is congestion
   on the link from the exporter to the collector, or if a significant

Djernaes                         Draft                          [Page 2]


Cisco NetFlow v9 transport                                 February 2003

   amount of retransmissions are needed, the send queues on the
   exporter may fill up. In that case it's up to the exporter to
   decide what to do. It may either halt export (buffer the data until
   there is space in the send queues again) or just throw export
   packets away instead of inserting them into the send queue. If
   any data is not inserted into the send queues, the sequence numbers
   used for export must reflect the loss of data.

   Unreliable or partial reliability may be chosen for one or more
   streams inside an association. Unreliable transport may be
   preferred where large amount of data is to be exported and keeping
   send queues is either an unnecessary overhead or
   impractical. Partial reliability may be chosen where a small
   amount of queuing is possible.



2. NetFlow data

2.1 Packet size

   When transmitting NetFlow data it should be formatted as described
   in the NetFlow draft[NFv9] with one Packet Header and a number of
   Flow Sets per export packet. Each NetFlow export packet should be
   equal to or less than the local MTU in size. Where a NetFlow packet
   is transmitted over a network with an MTU smaller than the local
   MTU, IP fragmentation may be used.

2.2 Source ID

   The NetFlow draft states that each NetFlow export packet must
   contain a Packet Header, which includes a source id (SID). The SID
   indicate from which Observation Domain inside the exporter the data
   is being exported, and should be keept unique for each such domain.



3. Exporter

3.1 Observation Domain

3.1.1 Single Observation Domain

   If an exporter consists of a single observation domain, a single
   SID value must be used for all export packets. The exporter will
   typically open one association to the collector, but more are
   possible, in which one or more streams can be used.

   The exporter has the choice of transmitting parts of the export
   data in separate streams or all data in one stream.






Djernaes                         Draft                          [Page 3]


Cisco NetFlow v9 transport                                 February 2003

3.1.2 Multiple Observation Domains

   If an exporter consists of multiple observation domains, one SID
   value for each observation domain must be used. The exporter will
   typically open one association, but more are possible, in which at
   least one stream per observation domain is used.

   The exporter have the choice of using more than one stream per
   observation domain, but data from multiple observation domains
   should not be transmitted over the same stream.

3.2 Association

   The exporter may create one or more associations (connection
   "bundle" in SCTP terminology) from the NetFlow exporter to the
   NetFlow collector. The NetFlow collector may not initiate the
   connection. Inside each association one or more streams may be
   requested by the exporter. If the collector can not support the
   requested number of streams, it may choose to refuse the connection
   and the exporter should try to reduce, if possible, the number of
   streams needed to perform the export.

3.3 Stream

   An Observation Domain must use at least one stream, but may use
   multiple streams, to export NetFlow data. The Observation Domain
   must use the same SID value for all streams used.

   An exporter must not transmit packets with different SID values
   in one stream, the collector should however verify that the SID
   values are the expected values.

3.4 Template

   Since the SCTP association is connection oriented the available
   templates must be transmitted from each Observation Domain to the
   collector immediately after the association is established.

   As a minimum the templates must be transmitted immediately after
   they start to exist on the exporter and should preferably be
   transmitted before any data, using the new template, have been
   transmitted. The collector should however accept data without a
   template and as with UDP it should store the data until the
   template arrives.

   When using a reliable mode for template export, or if the exporter
   knows that the export packet containing the templates was
   positively acknowledged by the SCTP layer, it is not necessary to
   periodically export the templates as described in the NetFlow v9
   Export draft [NFv9].






Djernaes                         Draft                          [Page 4]


Cisco NetFlow v9 transport                                 February 2003

3.5 Stream usage

   The decision of what to send over what kind of stream is an
   application choice and outside the scope of this
   document. Naturally it is better to send templates over a reliable
   stream and send the data on an unreliable (or partial reliable)
   stream. When an exporter handles data with different properties it
   might even be preferable to send them over different streams
   according to those properties.

3.5.1 Example: One stream for everything

   If an exporter contain only one Observation Domain the NetFlow v9
   export packets can be inserted unmodified onto a single SCTP
   stream. This stream can either be reliable, partial reliable or
   just unreliable. Using an unreliable stream gives only few
   advantages over a partial reliable stream.

3.5.2 Example: Two streams per Observation Domain

   An exporter can use two streams per Observation Domain. A reliable
   stream could be used for exporting templates, to reduce the
   likelihood of loss and to remove the need for blind
   retransmissions, and a partial or unreliable stream for data, to
   avoid buffering of large amounts of data.



4. Collector

4.1 Listen

   The collector should listen for a new association request from the
   exporter. The exporter will request a number of streams to use for
   export. If the collector doesn't support the number of streams
   inside the association, the collector must refuse the connection
   and continue listen for a new request.

4.2 Receive

   When data is received from an association, the collector must
   correlate data, with the same SID value, from multiple streams into
   one export flow from an Observation Domain. This allow the
   Observation Domain to use separate streams for different types of
   information.

   The collector should verify that the received export packets inside
   one stream does not have diverting SID values. The exporter must
   not export packets inside one stream with multiple SID values.

   The correlated export flow are then treated like a normal export
   flow as described in [NFv9].




Djernaes                         Draft                          [Page 5]


Cisco NetFlow v9 transport                                 February 2003

5. References

  [NFv9]    Claise, B, "Cisco Systems NetFlow Services Export Version
            9", draft-claise-netflow-9-01.txt

  [RFC768]  Postel, J. (ed.), "User Datagram Protocol", STD 6, RFC
            768, August 1980.

  [RFC2960] Stewart, R. (ed.) "Stream Control Transmission Protocol",
            RFC 2960, October 2000

  [PR-SCTP] Stewart, R, "SCTP Partial Reliability Extension",
            draft-stewart-tsvwg-prsctp-01.txt


6. Acknowledgments

   Thanks to Benoit Claise, Vamsi Valluri, Randall Stewart and Stewart
   Bryant for their valuable comments.


7. Authors Addresses

   Martin Djernaes
   Cisco Systems, Inc.
   170 W Tasman Drive
   San Jose, CA 95134
   USA
   Phone:  +1 (408) 853-1676
   Email:  djernaes@cisco.com


























Djernaes                         Draft                          [Page 6]