RFC 6088 PROPOSED STANDARD MOBILITY · IPV6 · PACKET FORMATS

Flow Traffic Selectors: Traffic Selectors for Flow Bindings

Compact binary formats for describing a flow of IPv4 or IPv6 packets, used by Mobile IPv6 flow bindings.

On rfc-editor.org ↗
PUBLISHED
January 2011
AUTHORS
G. Tsirtsis, G. Giarreta, H. Soliman, N. Montavont
STREAM
IETF
IPV4 TS FORMAT VALUE
1
IPV6 TS FORMAT VALUE
2
IPV4 FLAGS
A to N
IPV6 FLAGS
A to P
IPV6 FLOW LABEL PADDING
8 zero bits before the 24-bit label
DS/TC BITS MATCHED
6 most significant of 8
DOI
10.17487/RFC6088

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Internet Engineering Task Force (IETF)                       G. Tsirtsis
Request for Comments: 6088                                   G. Giaretta
Category: Standards Track                                       Qualcomm
ISSN: 2070-1721                                               H. Soliman
                                                    Elevate Technologies
                                                            N. Montavont
                                                                   IT/TB
                                                            January 2011


                  Traffic Selectors for Flow Bindings

Abstract

   This document defines binary formats for IPv4 and IPv6 traffic
   selectors to be used in conjunction with flow bindings for Mobile
   IPv6.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 5741.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc6088.

Copyright Notice

   Copyright (c) 2011 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  2
   2.  Requirements Notation  . . . . . . . . . . . . . . . . . . . .  2
   3.  Traffic Selector Sub-Options . . . . . . . . . . . . . . . . .  2
     3.1.  IPv4 Binary Traffic Selector . . . . . . . . . . . . . . .  2
     3.2.  IPv6 Binary Traffic Selector . . . . . . . . . . . . . . .  6
   4.  Security Considerations  . . . . . . . . . . . . . . . . . . . 11
   5.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 11
   6.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 11
   7.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 12
     7.1.  Normative References . . . . . . . . . . . . . . . . . . . 12
     7.2.  Informative References . . . . . . . . . . . . . . . . . . 12

1.  Introduction

   This document defines binary formats for IPv4 and IPv6 traffic
   selector sub-options, as defined in [RFC6089].

   The binary traffic selector format defined here, allows for efficient
   identification of flow(s) based on well-known fields in IPv4
   [RFC0791], IPv6 [RFC2460], and transport layer headers like TCP
   [RFC0793] and UDP [RFC0768].

2.  Requirements Notation

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].

3.  Traffic Selector Sub-Options

   [RFC6089] defines the format for the traffic selector sub-option.

   The following values of the TS Format field are defined in this
   specification for binary traffic selectors.

   TS Format:

      1 IPv4 binary traffic selector

      2 IPv6 binary traffic selector

3.1.  IPv4 Binary Traffic Selector

   If the TS Format field of the traffic selector sub-option indicates
   "IPv4 binary traffic selector", then the traffic selector is
   formatted as shown below.

   The alignment requirement for this sub-option is:

      4n if A, B, C, D, E, or F is set

      2n if G, H, I, or J is set

      n if K, L, M, or N is set

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Sub-opt Type   |  Sub-Opt Len  |   TS Format   |   Reserved    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |A|B|C|D|E|F|G|H|I|J|K|L|M|N|          Reserved                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                 (A)Start Source Address                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                 (B)End Source Address                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                 (C)Start Destination Address                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                 (D)End Destination Address                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     (E)Start IPsec SPI                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      (F)End IPsec SPI                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   (G)Start Source port        |   (H)End Source port          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   (I)Start Destination port   |   (J)End Destination port     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  (K)Start DS  |  (L)End DS    |(M)Start Prot. | (N) End Prot. |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Figure 1: IPv4 binary traffic selector

   Flags (A-N)

      Each flag indicates whether the corresponding field is present in
      the message.

   (A)Start Source Address

      This field identifies the first source address, from the range of
      32-bit IPv4 addresses to be matched, on data packets sent from a
      corresponding node to the mobile node as seen by the home agent.
      In other words, this is one of the addresses of the correspondent
      node.

   (B)End Source Address

      If more than one contiguous source address needs to be matched,
      then this field can be used to indicate the end value of a range
      starting from the value of the Start Source Address field.  This
      field MUST NOT be included unless the Start Source Address field
      is included.  When this field is included, the receiver will match
      all of the addresses between fields (A) and (B), inclusive of (A)
      and (B).

   (C)Start Destination Address

      This field identifies the first destination address, from the
      range of 32-bit IPv4 addresses to be matched, on data packets sent
      from a corresponding node to the mobile node as seen by the home
      agent.  In other words, this is one of the registered home
      addresses of the mobile node.

   (D)End Destination Address

      If more than one contiguous destination address needs to be
      matched, then this field can be used to indicate the end value of
      a range starting from the value of the Start Destination Address
      field.  This field MUST NOT be included unless the Start
      Destination Address field is included.  When this field is
      included, the receiver will match all of the addresses between
      fields (C) and (D), inclusive of (C) and (D).

   (E)Start IPsec SPI - Security Parameter Index

      This field identifies the first 32-bit IPsec SPI value, from the
      range of SPI values to be matched, on data packets sent from a
      corresponding node to the mobile node as seen by the home agent.
      This field is defined in [RFC4303].

   (F)End IPsec SPI - Security Parameter Index

      If more than one contiguous SPI value needs to be matched, then
      this field can be used to indicate the end value of a range
      starting from the value of the Start IPsec SPI field.  This field
      MUST NOT be included unless the Start IPsec SPI field is included.
      When this field is included, the receiver will match all of the
      SPI values between fields (E) and (F), inclusive of (E) and (F).

   (G)Start Source Port

      This field identifies the first 16-bit source port number, from
      the range of port numbers to be matched, on data packets sent from
      a corresponding node to the mobile node as seen by the home agent.
      This is from the range of port numbers defined by IANA
      (http://www.iana.org).

   (H)End Source Port

      If more than one contiguous source port number needs to be
      matched, then this field can be used to indicate the end value of
      a range starting from the value of the Start Source Port field.
      This field MUST NOT be included unless the Start Source Port field
      is included.  When this field is included, the receiver will match
      all of the port numbers between fields (G) and (H), inclusive of
      (G) and (H).

   (I)Start Destination Port

      This field identifies the first 16-bit destination port number,
      from the range of port numbers to be matched, on data packets sent
      from a corresponding node to the mobile node as seen by the home
      agent.

   (J)End Destination Port

      If more than one contiguous destination port number needs to be
      matched, then this field can be used to indicate the end value of
      a range starting from the value of the Start Destination Port
      field.  This field MUST NOT be included unless the Start
      Destination Port field is included.  When this field is included,
      the receiver will match all of the port numbers between fields (I)
      and (J), inclusive of (I) and (J).

   (K)Start DS - Differential Services

      This field identifies the first differential services value, from
      the range of differential services values to be matched, on data
      packets sent from a corresponding node to the mobile node as seen
      by the home agent.  Note that this field is called a "Type of
      Service field" in [RFC0791].  [RFC3260] then clarified that the
      field has been redefined as a 6-bit DS field with 2 bits reserved,
      later claimed by Explicit Congestion Notification (ECN) [RFC3168].
      For the purpose of this specification, the (K)Start DS field is 8
      bits long, where the 6 most significant bits indicate the DS field
      to be matched and the 2 least significant bits' values MUST be
      ignored in any comparison.

   (L)End DS - Differential Services

      If more than one contiguous DS value needs to be matched, then
      this field can be used to indicate the end value of a range
      starting from the value of the Start DS field.  This field MUST
      NOT be included unless the Start DS field is included.  When this
      field is included, it MUST be coded the same way as defined for
      (K).  When this field is included, the receiver will match all of
      the values between fields (K) and (L), inclusive of (K) and (L).

   (M)Start Protocol

      This field identifies the first 8-bit protocol value, from the
      range of protocol values to be matched, on data packets sent from
      a corresponding node to the mobile node as seen by the home agent.

   (N)End Protocol

      If more than one contiguous protocol value needs to be matched,
      then this field can be used to indicate the end value of a range
      starting from the value of the Start Protocol field.  This field
      MUST NOT be included unless the Start Protocol field is included.
      When this field is included, the receiver will match all of the
      values between fields (M) and (N), inclusive of (M) and (N).

   Reserved

      Reserved for future use.  These bits MUST be set to zero by the
      sender and ignored by the receiver.

3.2.  IPv6 Binary Traffic Selector

   If the TS Format field of the traffic selector sub-option indicates
   "IPv6 binary traffic selector", then the traffic selector is
   formatted as follows:

   The alignment requirement for this sub-option is:

      8n if A, B, C, or D is set

      4n if E, F, G, or H is set

      2n if I, J, K, or L is set

      n if M, N, O, or P is set
     0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Sub-opt Type   |  Sub-Opt Len  |   TS Format   |   Reserved    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|          Reserved             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +                                                               +
   |                                                               |
   +                  (A)Start Source Address                      +
   |                                                               |
   +                                                               +
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +                                                               +
   |                                                               |
   +                  (B)End Source Address                        +
   |                                                               |
   +                                                               +
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +                                                               +
   |                                                               |
   +               (C)Start Destination Address                    +
   |                                                               |
   +                                                               +
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +                                                               +
   |                                                               |
   +                (D)End Destination Address                     +
   |                                                               |
   +                                                               +
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     (E)Start IPsec SPI                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      (F)End IPsec SPI                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      (G)Start Flow Label                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       (H)End Flow Label                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   (I)Start Source port        |   (J)End Source port          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   (K)Start Destination port   |   (L)End Destination port     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  (M)Start TC  |  (N)End TC    | (O)Start NH   | (P) End NH    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Figure 2: IPv6 binary traffic selector

   Flags (A-P)

      Each flag indicates whether the corresponding field is present in
      the message

   (A)Start Source Address

      This field identifies the first source address, from the range of
      128-bit IPv6 addresses to be matched, on data packets sent from a
      corresponding node to the mobile node as seen by the home agent.
      In other words, this is one of the addresses of the correspondent
      node.

   (B)End Source Address

      If more than one contiguous source address needs to be matched,
      then this field can be used to indicate the end value of a range
      starting from the value of the Start Source Address field.  This
      field MUST NOT be included unless the Start Source Address field
      is included.  When this field is included, the receiver will match
      all of the addresses between fields (A) and (B), inclusive of (A)
      and (B).

   (C)Start Destination Address

      This field identifies the first destination address, from the
      range of 128-bit IPv6 addresses to be matched, on data packets
      sent from a corresponding node to the mobile node as seen by the
      home agent.  In other words, this is one of the registered home
      addresses of the mobile node.

   (D)End Destination Address

      If more than one contiguous destination address needs to be
      matched, then this field can be used to indicate the end value of
      a range starting from the value of the Start Destination Address
      field.  This field MUST NOT be included unless the Start
      Destination Address field is included.  When this field is
      included, the receiver will match all of the addresses between
      fields (C) and (D), inclusive of (C) and (D).

   (E)Start IPsec SPI - Security Parameter Index

      This field identifies the first 32-bit IPsec SPI value, from the
      range of SPI values to be matched, on data packets sent from a
      corresponding node to the mobile node as seen by the home agent.
      This field is defined in [RFC4303].

   (F)End IPsec SPI - Security Parameter Index

      If more than one contiguous SPI value needs to be matched, then
      this field can be used to indicate the end value of a range
      starting from the value of the Start IPsec SPI field.  This field
      MUST NOT be included unless the Start IPsec SPI field is included.
      When this field is included, the receiver will match all of the
      SPI values between fields (E) and (F), inclusive of (E) and (F).

   (G)Start Flow Label

      This field identifies the first flow label value, from the range
      of flow label values to be matched, on data packets sent from a
      corresponding node to the mobile node as seen by the home agent.
      According to [RFC2460], the flow label is 24 bits long.  For the
      purpose of this specification, the sender of this option MUST
      prefix the flow label value with 8 bits of "0" before inserting it
      in the (G)Start Flow Label field.  The receiver SHOULD ignore the
      first 8 bits of this field before using it in comparisons with
      flow labels in packets.

   (H)End Flow Label

      If more than one contiguous flow label value needs to be matched,
      then this field can be used to indicate the end value of a range
      starting from the value of the Start Flow Label field.  This field
      MUST NOT be included unless the Start Flow Label field is
      included.  When this field is included, the receiver will match
      all of the flow label values between fields (G) and (H), inclusive
      of (G) and (H).  When this field is included, it MUST be coded the
      same way as defined for (G).

   (I)Start Source Port

      This field identifies the first 16-bit source port number, from
      the range of port numbers to be matched, on data packets sent from
      a corresponding node to the mobile node as seen by the home agent.

   (J)End Source Port

      If more than one contiguous source port number needs to be
      matched, then this field can be used to indicate the end value of
      a range starting from the value of the Start Source Port field.
      This field MUST NOT be included unless the Start Source Port field
      is included.  When this field is included, the receiver will match
      all of the port numbers between fields (I) and (J), inclusive of
      (I) and (J).

   (K)Start Destination Port

      This field identifies the first 16-bit destination port number,
      from the range of port numbers to be matched, on data packets sent
      from a corresponding node to the mobile node as seen by the home
      agent.

   (L)End Destination Port

      If more than one contiguous destination port number needs to be
      matched, then this field can be used to indicate the end value of
      a range starting from the value of the Start Destination Port
      field.  This field MUST NOT be included unless the Start
      Destination Port field is included.  When this field is included,
      the receiver will match all of the port numbers between fields (K)
      and (L), inclusive of (K) and (L).

   (M)Start TC - Traffic Class

      This field identifies the first traffic class value, from the
      range of traffic class values to be matched, on data packets sent
      from a corresponding node to the mobile node as seen by the home
      agent.  This field is equivalent to the Start DS field in the IPv4
      traffic selector in Figure 1.  As per [RFC3260], the field is
      defined as a 6-bit DS field with 2 bits reserved, later claimed by
      Explicit Congestion Notification (ECN) [RFC3168].  For the purpose
      of this specification, the (M)Start TC field is 8 bits long, where
      the 6 most significant bits indicate the DS field to be matched
      and the 2 least significant bits' values MUST be ignored in any
      comparison.

   (N)End TC - Traffic Class

      If more than one contiguous TC value needs to be matched, then
      this field can be used to indicate the end value of a range
      starting from the value of the Start TC field.  This field MUST
      NOT be included unless the Start TC field is included.  When this
      field is included, it MUST be coded the same way as defined for
      (M).  When this field is included, the receiver will match all of
      the values between fields (M) and (N), inclusive of (M) and (N).

   (O)Start NH - Next Header

      This field identifies the first 8-bit next header value, from the
      range of next header values to be matched, on data packets sent
      from a corresponding node to the mobile node as seen by the home
      agent.

   (P)End NH - Next Header

      If more than one contiguous next header value needs to be matched,
      then this field can be used to indicate the end value of a range
      starting from the value of the Start NH field.  This field MUST
      NOT be included unless the Start next header field is included.
      When this field is included, the receiver will match all of the
      values between fields (O) and (P), inclusive of (O) and (P).

   Reserved

      Reserved for future use.  These bits MUST be set to zero by the
      sender and ignored by the receiver.

4.  Security Considerations

   This document defines the format of the traffic selector field of a
   sub-option defined for flow bindings [RFC6089].  The authors have not
   identified any security concerns pertaining to this document beyond
   what is already identified in [RFC6089].

5.  IANA Considerations

   The following new TS format values have been assigned from the
   "Traffic Selector Format" namespace for the traffic selector sub-
   option defined in [RFC6089].

      1 IPv4 Binary Traffic Selector

      2 IPv6 Binary Traffic Selector

6.  Acknowledgements

   The authors would like to thank Patrick Stupar and Julien Laganier
   for their contributions to this document.  We would also like to
   thank Benjamin Lim, Dave Craig, Patrick Stupar, and Basavaraj Patil
   for their reviews and comments.

7.  References

7.1.  Normative References

   [RFC0768]  Postel, J., "User Datagram Protocol", STD 6, RFC 768,
              August 1980.

   [RFC0791]  Postel, J., "Internet Protocol", STD 5, RFC 791,
              September 1981.

   [RFC0793]  Postel, J., "Transmission Control Protocol", STD 7,
              RFC 793, September 1981.

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

   [RFC2460]  Deering, S. and R. Hinden, "Internet Protocol, Version 6
              (IPv6) Specification", RFC 2460, December 1998.

   [RFC3168]  Ramakrishnan, K., Floyd, S., and D. Black, "The Addition
              of Explicit Congestion Notification (ECN) to IP",
              RFC 3168, September 2001.

   [RFC4303]  Kent, S., "IP Encapsulating Security Payload (ESP)",
              RFC 4303, December 2005.

   [RFC6089]  Tsirtsis, G., Soliman, H., Montavont, N., Giaretta, G.,
              and K. Kuladinithi, "Flow Bindings in Mobile IPv6 and
              Network Mobility (NEMO) Basic Support", RFC 6089,
              January 2011.

7.2.  Informative References

   [RFC3260]  Grossman, D., "New Terminology and Clarifications for
              Diffserv", RFC 3260, April 2002.

Authors' Addresses

   George Tsirtsis
   Qualcomm

   EMail: tsirtsis@qualcomm.com


   Gerardo Giaretta
   Qualcomm

   EMail: gerardog@qualcomm.com


   Hesham Soliman
   Elevate Technologies

   EMail: hesham@elevatemobile.com


   Nicolas Montavont
   Institut Telecom / Telecom Bretagne
   2, rue de la chataigneraie
   Cesson Sevigne  35576
   France

   Phone: (+33) 2 99 12 70 23
   EMail: nicolas.montavont@telecom-bretagne.eu
   URI:   http://www.rennes.enst-bretagne.fr/~nmontavo//

AI ELI5

On this page
PROBLEMFlow bindings in Mobile IPv6 need a way to say which packets belong to a flow, so that a device can steer different traffic to different addresses.
MECHANISMRFC 6088 defines two binary traffic selector formats, one for IPv4 (TS Format 1) and one for IPv6 (TS Format 2). A set of flags says which fields are present, and most fields have a start and an optional end value to describe a range.
WHY IT MATTERSThe selectors identify flows efficiently from well-known IP and transport header fields. RFC 6088 only defines the formats; the sub-option itself is in RFC 6089.

§1What a Binary Traffic Selector Is

RFC 6088 defines binary formats for IPv4 and IPv6 traffic selector sub-options, as introduced in RFC 6089 (flow bindings in Mobile IPv6 and NEMO Basic Support). The traffic selector format is meant to identify flows efficiently, based on well-known fields in IPv4, IPv6 and transport headers such as TCP and UDP.

All selectors in this document describe data packets sent from a corresponding node to the mobile node, as seen by the home agent. The source fields therefore name the correspondent node, and the destination fields name a registered home address of the mobile node.

A traffic selector is a label that describes a kind of traffic, such as everything coming from one friend to one of your mailboxes.

§2Sub-Option, TS Format and Flags

RFC 6089 defines the traffic selector sub-option. This RFC adds two values for its TS Format field: 1 for an IPv4 binary traffic selector and 2 for an IPv6 binary traffic selector.

In each format, a block of flag bits (A to N for IPv4, A to P for IPv6) shows which fields follow in the message. Most fields come in pairs: a Start value, and an optional End value that turns it into a range. An End field MUST NOT be included unless its Start field is, and the receiver matches every value between Start and End, inclusive.

The Reserved bits MUST be set to zero by the sender and ignored by the receiver. Each format also has an alignment requirement that depends on which flags are set, as shown for each format below.

The label has a row of tick boxes at the top. Each box says whether a certain piece of information, like a sender or a port, is written below.

TS FORMAT VALUES DEFINED BY RFC 6088
  • 1IPv4 binary traffic selector — Flags A to N; 32-bit addresses.
  • 2IPv6 binary traffic selector — Flags A to P; 128-bit addresses.

§3The IPv4 Binary Traffic Selector

The IPv4 selector has fourteen flags, A to N, and these fields: Start and End Source Address (A, B), Start and End Destination Address (C, D), Start and End IPsec SPI (E, F), Start and End Source Port (G, H), Start and End Destination Port (I, J), Start and End DS (K, L) and Start and End Protocol (M, N). Addresses and SPIs are 32 bits, ports are 16 bits, and DS and protocol values are 8 bits.

Alignment is 4n if any of A to F is set, 2n if any of G to J is set, and n if any of K to N is set.

The DS field is called the Type of Service field in RFC 791. Following RFC 3260 and ECN (RFC 3168), the field here is 8 bits long, but the 6 most significant bits are the DS value to match and the 2 least significant bits MUST be ignored in any comparison. The IPsec SPI is defined in RFC 4303.

For IPv4 the label can say who sent it, who it is for, a security tag, a door number (port), how urgent it is and what kind of traffic it is.

§4The IPv6 Binary Traffic Selector

The IPv6 selector has sixteen flags, A to P. It has the same fields as the IPv4 one for addresses (128 bits each), SPI, ports, and the traffic class (TC) in place of DS, plus two new pairs: Start and End Flow Label (G, H), and Start and End Next Header (O, P) in place of Protocol.

Alignment is 8n if any of A to D is set, 4n if any of E to H is set, 2n if any of I to L is set, and n if any of M to P is set.

The flow label is 24 bits long in RFC 2460, so the sender MUST prefix it with 8 bits of zero when filling the 32-bit field, and the receiver SHOULD ignore those first 8 bits when comparing. The End Flow Label MUST be coded the same way. The TC field follows the same rule as DS in IPv4: 8 bits, with the 6 most significant bits matched and the 2 least significant ignored.

The IPv6 label is like the IPv4 one with two extras: a tag that marks a conversation, and the type of the next piece of the packet.

IPV4 AND IPV6 BINARY TRAFFIC SELECTORS
AspectIPv4 (TS Format 1)IPv6 (TS Format 2)
FlagsA to NA to P
Address fields32-bit source and destination ranges128-bit source and destination ranges
Traffic classStart DS and End DSStart TC and End TC
Upper-layer typeStart and End ProtocolStart and End Next Header
Flow labelNot presentStart and End Flow Label
Strictest alignment4n8n

§5Security and IANA

The authors have not identified security concerns beyond those already identified in RFC 6089. This document only defines the format of the traffic selector field.

For IANA, the values 1 (IPv4 Binary Traffic Selector) and 2 (IPv6 Binary Traffic Selector) were assigned in the "Traffic Selector Format" namespace for the sub-option defined in RFC 6089.

This RFC only defines the label layout, so it adds no new safety worries. The old ones still apply.

§6References