RFC 1809 (rfc1809) - Page 2 of 6
Using the Flow Label Field in IPv6
Alternative Format: Original Text Document
RFC 1809 June 1995
The Flow Label is a pseudo-random number between 1 and FFFFFF (hex)
that is unique when combined with the source address. The zero Flow
Label is reserved to say that no Flow Label is being used. The
specification requires that a source must not reuse a Flow Label
value until all state information for the previous use of the Flow
Label has been flushed from all routers in the internet.
The specification further requires that all datagrams with the same
(non-zero) Flow Label must have the same Destination Address, Hop-
by-Hop Options header, Routing Header and Source Address contents.
The notion is that by simply looking up the Flow Label in a table,
the router can decide how to route and forward the datagram without
examining the rest of the header.
Flow Label Issues
The IPv6 specification originally left open a number of questions, of
which these three were among the most important:
1. What should a router do if a datagram with a (non-zero)
Flow Label arrives and the router has no state for that
Flow Label?
2. How does an internet flush old Flow Labels?
3. Which datagrams should carry (non-zero) Flow Labels?
This memo summarizes the End-to-End Group's attempts to answer these
questions.
What Does a Router Do With Flow Labels for Which It Has No State?
If a datagram with a non-zero Flow Label arrives at a router and the
router discovers it has no state information for that Flow Label,
what is the correct thing for the router to do?
The IPv6 specification allows routers to ignore Flow Labels and also
allows for the possibility that IPv6 datagrams may carry flow setup
information in their options. Unknown Flow Labels may also occur if
a router crashes and loses its state. During a recovery period, the
router will receive datagrams with Flow Labels it does not know, but
this is arguably not an error, but rather a part of the recovery
period. Finally, if the controversial suggestion that each TCP
connection be assigned a separate Flow Label is adopted, it may be
necessary to manage Flow Labels using an LRU cache (to avoid Flow
Label cache overflow in routers), in which case an active but
infrequently used flow's state may have been intentionally discarded.
Partridge Informational