Subject: [netlmm] TLV Header Format in draft-ietf-netlmm-grekey-option-05.txt

From: Vijay Devarapalli <[email-masked]>
Date: Wed, 18 Feb 2009 16:22:09 -0800

Hello,

The TLV header format needs a modification.

>    The TLV-header format is as shown below in Figure 6.
> 
>        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
>       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>       | Type  |             Length            |        Reserved       |
>       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> 
> 
>                         Figure 6: TLV-header Format
> 
>    Type
> 
>       4-bit unsigned integer indicates the type of the payload following
>       this header.  The following are the only defined values as per
>       this specification.
> 
>           0  Reserved
>           1  Generic Routing Encapsulation (GRE) [RFC2784]
> 

We briefly discussed this on the MEXT mailing list. See the discussions 
between Pasi, Henrik and myself. The format should be changed. The 
'Type' field should be 8-bits. The Type field should be set to values 
from http://www.iana.org/assignments/protocol-numbers/. If an IPv6 
header follows, it should be '41'. If it is a GRE header that follows, 
it should be '47' and so on. It does not make sense to create a new name 
space.

Vijay

---

From: Julien Laganier <[email-masked]>
Date: Thu, 19 Feb 2009 02:16:19 +0100

Hello,

> it should be '47' and so on. It does not make sense to create a new name 

Could we also change the TLV diagram to be:

         0                   1                   2                   3
        | Payload ...
        +-+-+-+-+-+-+

?

Cheers,

--julien

---

From: "Ahmad Muhanna" <[email-masked]>
Date: Wed, 18 Feb 2009 19:44:26 -0600

Hi Vijay,

Thanks for the pointer. I did not follow that discussion.
Yes, it does make sense. Will include this in the next revision.

Regards,
Ahmad

> -----Original Message-----
> From: Vijay Devarapalli [mailto:[email-masked]] 
> Sent: Wednesday, February 18, 2009 6:22 PM
> To: Muhanna, Ahmad (RICH1:2H10); Jari Arkko
> Cc: [email-masked]
> Subject: TLV Header Format in draft-ietf-netlmm-grekey-option-05.txt
> 
> Hello,
> 
> We briefly discussed this on the MEXT mailing list. See the 
> discussions between Pasi, Henrik and myself. The format 
> should be changed. The 'Type' field should be 8-bits. The 
> Type field should be set to values from 
> http://www.iana.org/assignments/protocol-numbers/. If an IPv6 
> header follows, it should be '41'. If it is a GRE header that 
> follows, it should be '47' and so on. It does not make sense 
> to create a new name space.
> 
> Vijay
>

---

From: "Ahmad Muhanna" <[email-masked]>
Date: Wed, 18 Feb 2009 23:02:29 -0600

Hi Vijay,

Here is the new format. Let me know if you have any comments.

       0                   1                   2                   3

   Type

      8-bit unsigned integer which indicates the protocol number of the
      payload header following this TLV header.  It is set to the
      protocol number as assigned by IANA at the following
      http://www.iana.org/assignments/protocol-numbers. e.g., if an IPv6
      header follows, it should be '41', '47' if it is a GRE header
      that follows.

Regards,
Ahmad

> From: Muhanna, Ahmad (RICH1:2H10) 
> Sent: Wednesday, February 18, 2009 7:44 PM
> To: 'Vijay Devarapalli'; 'Jari Arkko'
> Cc: [email-masked]'
> Subject: RE: TLV Header Format in 
> draft-ietf-netlmm-grekey-option-05.txt
> 
> Hi Vijay,
> 
> > >        0                   1                   2          
>          3
> > discussions between Pasi, Henrik and myself. The format should be 
> > changed. The 'Type' field should be 8-bits. The Type field 
> should be 
> > set to values from 
> http://www.iana.org/assignments/protocol-numbers/. 
> > If an IPv6 header follows, it should be '41'. If it is a GRE header 
> > that follows, it should be '47' and so on. It does not make 
> sense to 
> > create a new name space.
> > 
> > Vijay
> > 
>

---

From: "Ahmad Muhanna" <[email-masked]>
Date: Wed, 18 Feb 2009 23:22:29 -0600

Hi Julien,

> Could we also change the TLV diagram to be:

[Ahmad]
I assume that what you want something to show that there is a payload
following this header. On the other hand, that payload is NOT part of
the TLV header. I am not sure if we can add that portion to the TLV
header diagram.

---

From: Joel Hortelius <[email-masked]>
Date: Thu, 19 Feb 2009 10:21:08 +0000

Hi;

A comment on this format and using the IANA protocol numbers; 

I like the fact that this allows reuse of a well known namespace, but
using this particular layout does make it difficult to automatically
separate non-TLV tunneled frames from TLV-tunneled frames, does it not?

In the "old" variety, type combinations which resulted in the first four
its yielding values such as 0x6 and 0x4 was forbidden in order to allow
for distinguishing v4/v6 tunneld UDP frames from TLV frames.

As Henrik Levkowetz mentioned in the MEXT discussion thread regarding
TLV, could one not change the layout a bit here, more in the order of:

 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ZERO  |  Res. |     Type      |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

It would allow for automatically figure that a UDP encapsulated frame
does have TLV and needs more extensive processing than just removing the
UDP header.

Regards,
Joel Hortelius

On Wed, 2009-02-18 at 23:02 -0600, Ahmad Muhanna wrote:
> _______________________________________________
> netlmm mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/netlmm
>

---

From: "Ahmad Muhanna" <[email-masked]>
Date: Thu, 19 Feb 2009 11:05:04 -0600

Hi Joel,

That is a good idea. 
I have no problem with your proposed format but let us hear from other
people on the list and see if anyone has any different opinion.

Regards,
Ahmad

> From: Joel Hortelius [mailto:[email-masked]] 
> Sent: Thursday, February 19, 2009 4:21 AM
> To: Muhanna, Ahmad (RICH1:2H10)
> Cc: Vijay Devarapalli; Jari Arkko; [email-masked]
> Subject: Re: [netlmm] TLV Header Format 
> indraft-ietf-netlmm-grekey-option-05.txt
> 
> Hi;
> 
> I like the fact that this allows reuse of a well known 
> namespace, but using this particular layout does make it 
> difficult to automatically separate non-TLV tunneled frames 
> from TLV-tunneled frames, does it not?
> 
> In the "old" variety, type combinations which resulted in the 
> first four its yielding values such as 0x6 and 0x4 was 
> forbidden in order to allow for distinguishing v4/v6 tunneld 
> UDP frames from TLV frames.
> 
> As Henrik Levkowetz mentioned in the MEXT discussion thread 
> regarding TLV, could one not change the layout a bit here, 
> more in the order of:
> 
>  0                   1                   2                   3
> It would allow for automatically figure that a UDP 
> encapsulated frame does have TLV and needs more extensive 
> processing than just removing the UDP header.
> 
> Regards,
> Joel Hortelius
> 
> > > > If an IPv6 header follows, it should be '41'. If it is a GRE 
> > > > header that follows, it should be '47' and so on. It 
> does not make
> > > sense to
> > > > create a new name space.
> > > > 
> > > > Vijay
> > > > 
> > >

---

From: Vijay Devarapalli <[email-masked]>
Date: Thu, 19 Feb 2009 15:11:46 -0800

> TLV, could one not change the layout a bit here, more in the order of:

This is fine with me. But we need some minor modifications. I prefer the 
one that Henrik proposed. The new format would be as follows.

     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Type  |  Res. |  Next Header  |            Length             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    Type

       This field is always 0 (zero) and distinguishes the TLV header
       from the IPv4 and IPv6 headers.

Calling a field "ZERO" while describing a message format is kind of odd. 
:) And the field "Next Header" tells you more precisely what the field 
is for.

Vijay

---

From: "Ahmad Muhanna" <[email-masked]>
Date: Mon, 23 Feb 2009 14:51:04 -0600

Hi Vijay,

> 
> This is fine with me. But we need some minor modifications. I 
> prefer the one that Henrik proposed. The new format would be 
> as follows.
> 
>      0                   1                   2                   3
> :) And the field "Next Header" tells you more precisely what 
> the field is for.

[Ahmad]
Sure. We will adopt this.

Regards,
Ahmad