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
[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
[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 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] [RFC8277] is 20
bits while in [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