>> [Lucy] since GUE aims to encapsulation for a payload, it needs a
> payload field.
If GUE encapsulates only IPv4 and IPv6, it would need no payload type field.
If GUE encapsulates other payloads as well as IPv4 and IPv6, then it
needs a payload type field. However, one type should be "IP".
There is no reason for having the GUE header differentiate between
payload=IPv4 and payload=IPv6. The IP version is addressed by the
version field of the IP header. If GUE encapsulates both type of IP the
same way (and it should), it should NOT differentiate between them in
its (GUE) header.
> You suggest that making exception for IPv4 and IPv6, i.e.
> using first nibble to determine. I am not sure when the first nibble
> indicate IPv4, does it mean Fred's compression case or GUE header with
> IPv4 payload.
In this case, you would want a way to differentiate between the
following UDP payloads:
- IP payload (IPv4 or IPv6)
- compressed IPv4 or IPv6 payload
- GUE payload
which could have IPv4 or IPv6 inside
If these are the first thing after the UDP header, then the UDP header
is the only way to differentiate - that's what we use destination
transport port numbers for.
However, once you say "it's IP", then the IP payload - whether inside
UDP directly (IP-in-UDP), inside GUE inside UDP, or inside a compression
header inside UDP, then the IP payload ought to indicate what type of IP
it is.
The point is simple:
IP is a protocol that has versions
We should treat it as such, not treat every individual version of IP as
a separate encapsulation.
Joe
>
> Lucy
>
> Joe
>
_______________________________________________
Int-area mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/int-area