Subject: Re: [Pce] Query regarding draft-ietf-pce-binding-label-sid-02

From: Mrinmoy Das <[email-masked]>
Date: Wed, 22 Apr 2020 09:34:57 +0530

Hi All,

If we only mention 20-bit label then what will be the structure of it?
As per generic MPLS label structure 24-bit used to look like as follows:

|<--------20-bit---------->|<-3-bit->|<-1-bit->|
|<-MPLS 20-bit label->|<- TC ->|<-  S  ->|

Now if we just mention about MPLS 20-bit label, is that mean following
representation:

|<-4-bit->|<--------20-bit---------->|
|<-all 0->|<-MPLS 20-bit label->|

Thanks & Regards,
Mrinmoy

On Wed, Mar 25, 2020 at 3:56 PM stefano previdi <[email-masked]> wrote:

> Hi Dhruv,
>
> I agree with your proposed changes:
>
> 1. only mention the 20 bits label value
> 2. fix the length to 4.
>
>
> Thanks.
> s.
>
>
> > On Mar 24, 2020, at 3:14 PM, Dhruv Dhody <[email-masked]> wrote:
> >
> > Hi Mrinmoy,
> >
> > I will give authors some time to respond and confirm (and spin a new
> > update). I have noted this in the PCE WG wiki [
> > https://trac.ietf.org/trac/pce/wiki/WikiStart ] to make sure we could
> > track this to closure.
> >
> > Thanks!
> > Dhruv
> >
> > On Tue, Mar 24, 2020 at 7:11 PM Mrinmoy Das <[email-masked]>
> wrote:
> >>
> >> Hi Dhruv,
> >>
> >> Thanks for your quick reply.
> >>
> >> I have added PCE WG in this mail. More inline.
> >>
> >> Thanks & Regards,
> >> Mrinmoy
> >>
> >> On Tue, Mar 24, 2020 at 6:00 PM Dhruv Dhody <[email-masked]>
> wrote:
> >>>
> >>> Hi Mrinmoy,
> >>>
> >>> I was suggest you to also include [email-masked]; WG could benefit from
> >>> the discussion in future. More inline.
> >>>
> >>> On Tue, Mar 24, 2020 at 5:08 PM Mrinmoy Das <[email-masked]>
> wrote:
> >>>>
> >>>> Respected Authors and Contributors,
> >>>>
> >>>> Hope you all are doing well and safe in this tough times of Corona
> Virus Outbreak.
> >>>>
> >>>> I like to draw your attention regarding some parts of
> draft-ietf-pce-binding-label-sid-02 which I didn't able to understand
> properly.
> >>>>
> >>>> 1. BT = 0: The binding value is an MPLS label carried in the format
> >>>>
> >>>>  specified in [RFC5462] where only the label value is valid, and
> >>>>  other fields (TC, S, and TTL) fields MUST be considered invalid.
> >>>>  The Length MUST be set to 7.
> >>>>
> >>>>
> >>>>    Previous versions of private draft uses 4 byte to store MPLS 20
> Bit label and ignores TC, S & TTL fields.
> >>>
> >>> The length in the previous version was 6, which was incorrect. The TLV
> >>> length is as per https://tools.ietf.org/html/rfc5440#section-7.1
> >>> Which didnt make sense and your calculation below is correct!
> >>>
> >>>>    But in IETF draft after TLV structure redefinition, total length
> of the TLV becomes 7, i.e. BT(1 Byte)+Reserved(3 Byte)+MPLS 20bit Label(3
> Byte) = 7 Byte
> >>>
> >>> Yes
> >>>
> >>>>    So, now MPLS 20 Bit Labelwill be stored in 3 byte. Is it correct?
> >>>
> >>> You can consider it a case of rounding up 20 bits to 3 bytes.
> >>>
> >>>
> >>>>    If this is correct then I feel the wording of the above paragraph
> needs to be more specific, meaning in 3 Byte Label there will be no space
> for TTL, so
> >>>>    my suggestion is to make below correction:
> >>>>
> >>>>    BT = 0: The binding value is an MPLS label carried in the format
> >>>>
> >>>>  specified in [RFC5462] where only the label value is valid, and
> >>>>  other fields (TC, S, and TTL) fields MUST be considered invalid.
> >>>>  The Length MUST be set to 7.
> >>>>
> >>>
> >>> My suggestion would be not mention any of the other fields and talk
> >>> only of 20 bits of Label. I see other SR RFCs take similar approach.
> >>
> >>
> >> Sounds Good. I'm agree with you.
> >>
> >>>
> >>>>
> >>>> 2. In some cases, a stateful PCE can request the PCC to allocate a
> >>>>
> >>>>  binding value.  It may do so by sending a PCUpd message containing an
> >>>>  empty TE-PATH-BINDING TLV, i.e., no binding value is specified
> >>>>  (making the length field of the TLV as 2).  A PCE can also make the
> >>>>  request PCC to allocate a binding at the time of initiation by
> >>>>  sending a PCInitiate message with an empty TE-PATH-BINDING TLV.
> >>>>
> >>>>
> >>>>  As per new Binding TLV Structure below, BT is of 1 Byte and there
> will be 3 Byte Reserved.
> >>>>
> >>>>         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            |
> >>>>      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> >>>>      |      BT       |                 Reserved                      |
> >>>>      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> >>>>      ~            Binding Value (variable length)                    ~
> >>>>      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> >>>>
> >>>>
> >>>>   Now, an empty Binding TLV should have length of BT(1 Byte) +
> Reserved (3 Byte) = 4 Byte instead of 2 Byte.
> >>>>
> >>>>   So, I do not understand how in the draft it is calculated as 2
> Byte. Could you please give me some clue?
> >>>
> >>>
> >>> This seems to be an error IMHO. 4 seems to be correct.
> >>
> >>
> >> Okay. So what would  be your suggestion to developer who is
> implementing this draft? Should it be taken as 4? If draft needs correction
> >> when will that be published?
> >>>
> >>>
> >>> Thanks!
> >>> Dhruv
> >>>
> >>>>
> >>>> Thanks & Regards,
> >>>> Mrinmoy
>
>

---

From: Dhruv Dhody <[email-masked]>
Date: Wed, 22 Apr 2020 09:58:39 +0530

Hi Mrinmoy,

On Wed, Apr 22, 2020 at 9:35 AM Mrinmoy Das <[email-masked]> wrote:
> Now if we just mention about MPLS 20-bit label, is that mean following representation:
>

No!
The format is still based on RFC 5462 and thus it would look something
like this -

       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=7          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      BT=0     |                 Reserved                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                Label                  | all zeros (ignore)    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Even though the length=7, you will need to process the Binding Value
field based on the Binding Type (BT) which says that the format is as
per RFC 5462.

Note that the extra byte of zeros at the end is for padding as per
https://tools.ietf.org/html/rfc5440#section-7.1 and not counted in the
length.

Stay Safe!
Dhruv

PS. Request the authors to update the draft SOON based on Mrinmoy's
original email.

>> > On Tue, Mar 24, 2020 at 7:11 PM Mrinmoy Das <[email-masked]> wrote:
>> >>
>> >> Hi Dhruv,
>> >>
>> >> On Tue, Mar 24, 2020 at 6:00 PM Dhruv Dhody <[email-masked]> wrote:
>> >>>
>> >>> Hi Mrinmoy,
>> >>>
>> >>> On Tue, Mar 24, 2020 at 5:08 PM Mrinmoy Das <[email-masked]> wrote:
>> >>>>
>> >>>> Hope you all are doing well and safe in this tough times of Corona Virus Outbreak.
>> >>>>
>> >>>> I like to draw your attention regarding some parts of draft-ietf-pce-binding-label-sid-02 which I didn't able to understand properly.
>> >>>>
>> >>>>    Previous versions of private draft uses 4 byte to store MPLS 20 Bit label and ignores TC, S & TTL fields.
>> >>>
>> >>>>    But in IETF draft after TLV structure redefinition, total length of the TLV becomes 7, i.e. BT(1 Byte)+Reserved(3 Byte)+MPLS 20bit Label(3 Byte) = 7 Byte
>> >>>
>> >>> Yes
>> >>>
>> >>>>    If this is correct then I feel the wording of the above paragraph needs to be more specific, meaning in 3 Byte Label there will be no space for TTL, so
>> >>>>  As per new Binding TLV Structure below, BT is of 1 Byte and there will be 3 Byte Reserved.
>> >>>>
>> >>>>         0                   1                   2                   3
>> >>>>
>> >>>>   Now, an empty Binding TLV should have length of BT(1 Byte) + Reserved (3 Byte) = 4 Byte instead of 2 Byte.
>> >>>>
>> >>>>   So, I do not understand how in the draft it is calculated as 2 Byte. Could you please give me some clue?
>> >>>
>> >>>
>> >> Okay. So what would  be your suggestion to developer who is implementing this draft? Should it be taken as 4? If draft needs correction

---

From: Mrinmoy Das <[email-masked]>
Date: Wed, 22 Apr 2020 10:58:21 +0530

Thanks a lot Dhruv for the clarification.

Thanks & Regards,
Mrinmoy

On Wed, Apr 22, 2020 at 9:59 AM Dhruv Dhody <[email-masked]> wrote:

> >> >>>>    But in IETF draft after TLV structure redefinition, total
> length of the TLV becomes 7, i.e. BT(1 Byte)+Reserved(3 Byte)+MPLS 20bit
> Label(3 Byte) = 7 Byte
> >> >>>
> >> >>> Yes
> >> >>>
> >> >>>>    If this is correct then I feel the wording of the above
> paragraph needs to be more specific, meaning in 3 Byte Label there will be
> no space for TTL, so
> >> >>>>         0                   1                   2
>  3
> >> >>>>      |             Type              |             Length
>   |
> >> >>>>      |      BT       |                 Reserved
>   |