Brian E Carpenter wrote:
That must be why there are QoS indicators in the L4 header.
Oh, wait - those are in L3 (RFC2474 and its successors).
Yes, layering is a difficult concept.
That's also why the IPv6 flow label is recommended to be a hash
of layer 3 and layer 4 information
(RFC 6437, yes, it took us some years to get that ~right).
Get that right? Or, is "~" a symbol of logical negation?
The RFC is a complete mess, in various ways. It says flow IDs are
good because it is random, but, at the same time, it says flow
IDs may not be random. It also says flow ID must not be changed
but may be changed.
The most obvious defect can be seen here:
As a general practice, packet flows should not be reordered,
which is subtly wrong (order of consecutive packets may sometimes
be exchanged without harming TCP performance), but badly
contradicts with:
* A forwarding node might use the 5-tuple to define a flow
whenever possible but use the 2-tuple when the complete 5-tuple
is not available. In this case, unfragmented and fragmented
packets belonging to the same transport session would receive
different flow label values, altering the effect of subsequent
load distribution based on the flow label
and, another option of:.
* A forwarding node might use the 2-tuple to define a flow in all
cases. In this case, subsequent load distribution would be
based only on IP addresses.
is not a efficient way of load balancing.
So, sane implementers of load distributors will ban packets with
extension headers and/or fragmentation to keep relying on 5-tuples.
Oh, and you are one of a editor of the mess. Thank you very much for
contributing to the collective stupidity to make simple things
unusably complex.
Masataka Ohta