nanog mailing list archives

IPvB performance header


From: William Allen Simpson <william.allen.simpson () gmail com>
Date: Fri, 25 Mar 2022 11:02:04 -0400

This was the IPvB (nee original IPv6) *performance* header.

We required that each IP variant have its own link layer
designation.  Therefore, the IP version number wasn't
needed.  We could simply set two upper bits to a value (0)
that would distinguish it from every extant IP version.

Also, many of us thought that the type of service was
poorly defined and rarely used.

The longer length field was requested by Fibre Channel,
and later used for InfiniBand.

Finally, the Flow Label was supposed to aid in NAT mapping,
without the underlying transport layer.  One field to
rule them all.

No chains of headers.  High performance.


3.2.  Performance Header Format

   +‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+
   | V |                      Maximal Length                       |
   +‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+
   |                  Flow Label                   |   Hop Limit   |
   +‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+
   |                                                               |
   +                            Source                             +
   |                                                               |
   +‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+
   |                                                               |
   +                          Destination                          +
   |                                                               |
   +‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+
   |                Security Parameters Index (SPI)                | A
   +‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+
   |                        Sequence Number                        | A
   +‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+
   |                                                               | A E
   ~                        Transform Data                         ~ A E
   |                                                               | A E
   +‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+
                              ... Padding                          | A E
   +‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+
   |                                                               |
   ~                         Authenticator                         ~
   |                                                               |
   +‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+‐+

   For most fields, see above.

   Fields to be authenticated are designated by a trailing A.

   Fields to be encrypted are designated by a trailing E.

   V                2 bits.  Always 0.

                                     This corresponds to the unused IP
                                     Versions 0 to 3, and is readily
                                     distinguished from all extant
                                     versions.

   Maximal Length   30 bits.

                    The length of the datagram, including internet
                    header(s) and payload data.  The maximum length
                    supported by the Destination is negotiated for each
                    Flow Label.

   Flow Label       24 bits.

                    The Flow Label is relative to the IP Source and
                    Destination pairing, and assigned by the flow’s
                    originating node.  The Flow Label subsumes the
                    Service and Next Header information.

                    The Flow Label MUST NOT be altered by an intervening
                    router.  Routers that do not support Flow Label
                    functionality, or lack state for this Source and
                    Flow Label combination, MUST treat the Service as
                    undifferentiated.

                    Mechanisms for assignment and reservation of Flow
                    Labels are beyond the scope of this specification.


Current thread: