Hi Yubao,

If it is clear enough then I would avoid adding more text to confuse people
:-)

Thanks again for flagging this issue.

Thanks,
Ketan


On Fri, Jun 17, 2022 at 2:52 PM <wang.yub...@zte.com.cn> wrote:

>
> Hi Ketan,
>
>
> Thanks for your further explanations.
>
> Please see in line with [Yubao2].
>
>
> Thanks,
>
> Yubao
>
>
>
> 原始邮件
> *发件人:*KetanTalaulikar
> *收件人:*王玉保10045807;
> *抄送人:*draft-ietf-bess-srv6-servi...@ietf.org;BESS;
> *日 期 :*2022年06月17日 15:44
> *主 题 :**Re: Whether the TC/S field of the ESI label field can be used to
> carry a portion of Arg.FE2 according to draft-ietf-bess-srv6-services-15 ?*
> Hi Yubao,
> Please check inline below.
>
> On Fri, Jun 17, 2022 at 12:28 PM <wang.yub...@zte.com.cn> wrote:
>
>>
>> Hi Ketan,
>>
>>
>> Please see in line with [Yubao].
>>
>>
>> Thanks,
>>
>> Yubao
>>
>>
>>
>> 原始邮件
>> *发件人:*KetanTalaulikar
>> *收件人:*王玉保10045807;
>> *抄送人:*draft-ietf-bess-srv6-servi...@ietf.org;BESS;
>> *日 期 :*2022年06月17日 13:33
>> *主 题 :**Re: Whether the TC/S field of the ESI label field can be used to
>> carry a portion of Arg.FE2 according to draft-ietf-bess-srv6-services-15 ?*
>> Hi Yubao,
>> The label fields per RFC7432 are 24-bit. When carrying actual MPLS labels
>> in them, the high-order 20 bits are to be used per RFC7432. The rest of the
>> 4 bits are not meant for TC/S though. Moreover, for SRv6 we are following
>> the convention of VXLAN where 24-bit VNI is encoded in the EVPN label
>> fields - refer
>> <https://datatracker.ietf.org/doc/html/rfc8365#section-5.1.3>
>> https://datatracker.ietf.org/doc/html/rfc8365#section-5.1.3
>>
>>
>> [Yubao]  But an Arg.FE2 is not always 24 bits, it can be 16 bits,  8
>> bits, or 23 bits.  That's the difference between VNI and Arg.FE2.
>>
>>               For example, when the Argument Length of an Arg.FE2 is 16
>> bits, and the value of that Arg.FE2 is 17,
>>
>>               and it is "set in the 24 bits" of an ESI label field,
>>
>>               My understanding is that, that 24 bits ESI label field
>> should be set to 0x000011 (RFC8365 VNI style), not 0x001100 or 0x000110
>> (RFC7432 MPLS style).
>>
>>               Is my understanding correct?
>>
> KT> Yes. In your example, the Arg value is 17 and it is just encoded in
> the ESI label field. Much as a VNI value of 17 would be encoded.
>
>>
>>               I ask this question because I indeed noticed that there are
>> already different implements.
>>
>>               In previous mail, I used the phrase "bit order" to refer to
>> these different implementations.
>>
>>               I think it will be better to clarify this with more
>> detailed description.
>>
> KT> Following is the proposed updated text for sec 6.1. Would this be
> clear enough?
>
>    The 24-bit ESI Label field of the ESI Label extended community
>    carries the whole or a portion of the Argument part of the SRv6 SID
>    when the ESI filtering approach is used along with the Transposition
>    Scheme of encoding (Section 4); otherwise, it is set to the Implicit
>    NULL value (i.e., as 0x000030).  *In either case*, the value is set in
> the
>    24 bits.  When using the Transposition Scheme, the Transposition
>    Length MUST be less than or equal to 24 and less than or equal to the
> AL.
>
>
>
> [Yubao2]  I think it is clear enough for many people,
>
>                 But if we can describe it more clearly, maybe it will be
> better.
>
>                 For example, when we say that the Implicit NULL value is
> set in the 24 bits,
>
>                 I think it should be the same as we say that the label
> value 3 is set in the 24 bits,
>
>                 then the 24 bits should be 0x000003, not 0x000030.
>
>                 but now we imply that when 3 is set in the 24 bits, it
> should be 0x000030, not 0x000003.
>
>                 I think this updated text may still implies that when an
> Arg.FE2 is 3 and it is set in the 24 bits,
>
>                 the ESI label field should be set to 0x000030, not
> 0x000003.
>
>                 I think the phrase "In either case" can be modified.
>
>                 For example: In the former case, the value is set in the
> 24 bits. in the latter case,
>
>                the implicit NULL value is set in the high order 20 bits or
> the 0x000030 (but not an implicit NULL label) is set in the 24 bits..
>
>
> <rfc3032>
>
>           iv. A value of 3 represents the "Implicit NULL Label".  This
>
>               is a label that an LSR may assign and distribute, but
>
>               which never actually appears in the encapsulation.  When
>
>               an LSR would otherwise replace the label at the top of the
>
>               stack with a new label, but the new label is "Implicit
>
>               NULL", the LSR will pop the stack instead of doing the
>
>               replacement.  Although this value may never appear in the
>
>               encapsulation, it needs to be specified in the Label
>
>               Distribution Protocol, so a value is reserved.
>
> </rfc3032>
>
>
>
>               By the way, RFC8365 won't use the ESI label field.
>>
>>               So I think it is not very clear to simply refer to RFC8365.
>> Some detailed clarifications may still be needed.
>>
>>
>>
>> Now contrast this with encodings that follow RFC8277 where the label
>> field itself is 20-bit and leaves 3 bits reserved (not really TC semantics)
>> and 1 bit for S (bottom of the stack semantics but only for the purpose of
>> encoding a stack of labels) - refer
>> <https://datatracker.ietf.org/doc/html/rfc8277#section-2.2>
>> https://datatracker.ietf.org/doc/html/rfc8277#section-2.2
>>
>>
>> [Yubao] So when the function part of an End.DT4 SID is just 16 bits (not
>> 20 bits) and its value is 17 which is carried in the label field,
>>
>>               the value of the 20 bits label field should be 0x00011, not
>> 0x00110,
>>
>>               is my understanding correct?
>>
> KT> Yes. There is no error/issue with the L3VPN text so I don't know why
> would anyone do "0x00110".
>
>>
>>               I think the factor that the length of the Function part or
>> Argument part  of a SRv6 SID will be varied,
>>
>>               that factor may make it need more clarifications in the
>> draft.
>>
>
> KT> Again, not sure what more is required besides the correction indicated
> above in the EVPN text.
>
> Thanks,
> Ketan
>
>>
>> I hope this clarifies.
>>
>> Thanks,
>> Ketan
>>
>> On Fri, Jun 17, 2022 at 9:33 AM <wang.yub...@zte.com.cn> wrote:
>>
>>>
>>> Hi Ketan,
>>>
>>>
>>> Thanks for your clarifications.
>>>
>>> But I still don't notice that RFC7432 has said that the label value is
>>> 24 bits,
>>>
>>> I just found these paragraphs in RFC7432 or rfc7432bis:
>>>
>>>
>>> <rfc7432#section9.2.1>
>>>
>>>    The MPLS Label1 field is encoded as 3 octets, where *the high-order*
>>>
>>> *   20 bits* contain *the label value*.  The MPLS Label1 MUST be
>>> downstream
>>>
>>>    assigned, and it is associated with the MAC address being advertised
>>>
>>>    by the advertising PE.  The advertising PE uses this label when it
>>>
>>>    receives an MPLS-encapsulated packet to perform forwarding based on
>>>
>>>    the destination MAC address toward the CE.  The forwarding procedures
>>>
>>>    are specified in Sections 13 and 14.
>>>
>>>    ...
>>>
>>>    The MPLS Label2 field is an optional field.  If it is present, then
>>>
>>>    it is encoded as 3 octets, where *the high-order 20 bits* contain
>>> *the*
>>>
>>> *   label value*.
>>>
>>> </rfc7432>
>>>
>>>
>>> <rfc7432bis>
>>>
>>> 7.5.  ESI Label Extended Community
>>>
>>>
>>>    This Extended Community is a new transitive Extended Community having
>>>
>>>    a Type field value of 0x06 and the Sub-Type 0x01.  It may be
>>>
>>>    advertised along with Ethernet Auto-discovery routes, and it enables
>>>
>>>    split-horizon procedures for multihomed sites as described in
>>>
>>>    Section 8.3 ("Split Horizon").  The ESI Label field represents an ES
>>>
>>>    by the advertising PE, and it is used in split-horizon filtering by
>>>
>>>    other PEs that are connected to the same multihomed Ethernet segment.
>>>
>>>
>>>    The ESI Label field is encoded as 3 octets, where *the high-order*
>>>
>>> *   20 bits* contain *the label value*.
>>>
>>> </rfc7432bis>
>>>
>>>
>>> In these paragraphs, It is clear that the MPLS Label/ESI label can only
>>> carry a label value which is no more than 20 bits.
>>>
>>> Have I missed something important?
>>>
>>> When the ESI label field of RFC7432 carries a 20 bits ESI label 17, the
>>> 24 bits ESI label field should be 0x000110 or 0x000011?
>>>
>>> When the ESI label field of draft-ietf-bess-srv6-services-15 carries a
>>> 20 bits Arg.FE2 17, the 24 bits ESI label field should be 0x000110 or
>>> 0x000011?
>>>
>>> When the ESI label field of draft-ietf-bess-srv6-services-15 carries a
>>> 16 bits Arg.FE2 17, the 24 bits ESI label field should be 0x000110 or
>>> 0x001100 or 0x000011?
>>>
>>>
>>>
>>> Thanks,
>>>
>>> Yubao
>>>
>>>
>>>
>>>
>>>
>>> 原始邮件
>>> *发件人:*KetanTalaulikar
>>> *收件人:*王玉保10045807;
>>> *抄送人:*draft-ietf-bess-srv6-servi...@ietf.org;BESS;
>>> *日 期 :*2022年06月16日 22:04
>>> *主 题 :**Re: Whether the TC/S field of the ESI label field can be used
>>> to carry a portion of Arg.FE2 according to draft-ietf-bess-srv6-services-15
>>> ?*
>>> Hi Yubao,
>>> Sorry for the delay in response and thanks for catching this issue.
>>> We'll try to correct this during the AUTH48 process.
>>>
>>> Please check inline below.
>>>
>>> On Thu, May 26, 2022 at 8:20 AM <wang.yub...@zte.com.cn> wrote:
>>>
>>>>
>>>> Hi authors,
>>>>
>>>>
>>>> There may be conflicting description in
>>>> draft-ietf-bess-srv6-services-15#section-6.1.1
>>>> <https://datatracker.ietf.org/doc/html/draft-ietf-bess-srv6-services-15#section-6.1.1>
>>>> on the usage of Transposition Length.
>>>>
>>>>
>>>> <draft-ietf-bess-srv6-services-15#section-6.1.1>
>>>>
>>>>    The 24-bit ESI label field of the ESI label extended community
>>>>
>>>>    carries the whole or a portion of the Argument part of the SRv6 SID
>>>>
>>>>    when the ESI filtering approach is used along with the Transposition
>>>>
>>>>    Scheme of encoding (Section 4) and otherwise set to Implicit NULL
>>>>
>>>>    value.  *In either case*, *the value* is set in *the high order 20
>>>> bits*
>>>>
>>>>    (e.g., as 0x000030 in the case of Implicit NULL).  When using the
>>>>
>>>>    Transposition Scheme, the *Transposition Length* MUST be less than
>>>> or
>>>>
>>>>    *equal to 24* and less than or equal to the Argument Length.
>>>>
>>>> </draft-ietf-bess-srv6-services-15>
>>>>
>>>>
>>>> I think that "The value" which is set in "the high order 20 bits"
>>>> should be the same thing as "the whole or a portion of the Argument part of
>>>> the SRv6 SID",
>>>>
>>>> If this is true, the length of "The value" (which is also the
>>>> Transposition Length)  can only be as much as 20, it can't be equal to 24.
>>>>
>>>> Otherwise, "The value" may have to be carried in the high X bits of the
>>>> ESI label field (wherein X is the argument length), not always the "the
>>>> high order 20 bits".
>>>>
>>>>
>>>>
>>> KT> This is an error in the draft. Since the field is 24-bit, we should
>>> just say "set in the 24 bits" instead of the existing text "set in the high
>>> order 20 bits". This applies to all EVPN encodings in the draft.
>>>
>>>>
>>>>
>>>> I also noted that in some other sections(e.g. Section 5.1), it is
>>>> clearly described that the Transposition Length MUST be no more 20.
>>>>
>>> KT> This depends on the encoding for the specific AFI/SAFI. For those
>>> that use the RFC8277 label encoding, the transposition length is limited to
>>> 20. That is why the "high order" clarification came in but it does not
>>> apply to EVPN. Please also see the following text in Sec 3.2.1
>>>
>>>    The size of the MPLS label field limits the bits transposed from the    
>>> SRv6 SID value into it.  E.g., the size of MPLS label field in    [RFC4364 
>>> <https://datatracker.ietf.org/doc/html/rfc4364>] [RFC8277 
>>> <https://datatracker.ietf.org/doc/html/rfc8277>] is 20 bits while in 
>>> [RFC7432 <https://datatracker.ietf.org/doc/html/rfc7432>] is 24 bits.
>>>
>>>
>>>>
>>>> So I think may be the transposition length for EVPN routes is not
>>>> necessary to be greater than 20.
>>>>
>>> KT> For EVPN encodings the field is 24-bit and so we can transpose up to
>>> 24 bits.
>>>
>>>>
>>>> If it is greater than 20, the TC/S field of the ESI label may have to
>>>> be used,
>>>>
>>> KT> There is no TC/S encoding in the ESI label field.
>>>
>>>>
>>>> and the bit order may be not the same "In either case".
>>>>
>>> KT> I am not sure what you mean by bit order. If you are referring to
>>> byte ordering then everything is in network byte order.
>>>
>>> Thanks,
>>> Ketan
>>>
>>>>
>>>> Because that if the Transposition Length is less than 21, it MUST be
>>>> cairried in the high order 20 bits (along with some padding bits) according
>>>> to the history of this draft, not just the high X bits.
>>>>
>>>> Is my understanding correct?
>>>>
>>>>
>>>> Glad to receive any clarifications.
>>>>
>>>>
>>>> Thanks,
>>>>
>>>> Yubao
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>
_______________________________________________
BESS mailing list
BESS@ietf.org
https://www.ietf.org/mailman/listinfo/bess

Reply via email to