Subject: Re: [pim] About draft-geng-msr6-traffic-engineering

From: "Gengxuesong (Geng Xuesong)" <[email-masked]>
Date: Wed, 12 Jan 2022 06:47:27 +0000

Hi Lihao,

Thanks for reviewing the document and give comments. Please find feedback inline.
Some comments will be addressed in the next version.

Best
Xuesong

From: Lihao [mailto:[email-masked]]
Sent: Tuesday, January 11, 2022 2:54 PM
To: Gengxuesong (Geng Xuesong) <[email-masked]>; Xiejingrong (Jingrong) <[email-masked]>; Lizhenbin <[email-masked]>
Cc: [email-masked]; [email-masked]
Subject: About draft-geng-msr6-traffic-engineering

Hi authors:

I read the draft-geng-msr6-traffic-engineering, and several suggestions and questions are following:

1. written error

8.1<https://datatracker.ietf.org/doc/html/draft-geng-msr6-traffic-engineering#section-8.1>.  MSR6 Illustration: End.RL

   In node A, the packet is encapsulated the packet with an IPv6 header

   carrying an MRH.  The segment list in the MRH is as follows.  The

   destination address of the IPv6 header is the 1st SID in the segment

   list, which is the local SID of node A.  Based on the End.RL behavior

   defined in section 5.1<https://datatracker.ietf.org/doc/html/draft-geng-msr6-traffic-engineering#section-5.1>, the packet is replicated to 2 (Replication

   Number+1=1+1=2) packets.  In the 1st packet, the Segment Left is set

   to 2 and DA is replaced by Segment List[2]; In the 2nd packet, the

   Segment Left is set to 4 and DA is replaced by Segment List[4]; The

   packets are routed to the node B and node C respectively.

                       ===============》 Should be

             In the 2nd packet, the Segment Left is set to 3 and DA is replaced by Segment List[3]

[Xuesong] Thank you for pointing this out.

2. two  Suggestion:

5<https://datatracker.ietf.org/doc/html/draft-geng-msr6-traffic-engineering#section-5>.  MSR6 Endpoint Behaviors
5.1<https://datatracker.ietf.org/doc/html/draft-geng-msr6-traffic-engineering#section-5.1>.  End.RL: MSR6 Endpoint Replication List

When the packet is received by an Replication Endpoint and the DA of

   this packet is a local SID with the function of End.RL, the packet

   will be replicated based on the "replication number".  The DA of the

   1st replicated packet is replaced by the SL="pointer" and the value

   of Segment Left is set to "pointer"; the DA of the 2nd replicated

   packet is replaced by the SL="pointer +1" and the value of Segment

   Left is set to "pointer+1".  The packet is sent out based on the

   updated DA.  Repeat the operation untill all the replicated packets

   are sent out.
            =====================>
1)
  The SL is increasing in prcedure description and the psedou-code.
  The description mode of SL' decreasing will be consistent with SRv6 architecture and understandable

[Xuesong] You’re right. Decreasing SL is easier to be understood.

2)
   Pseudo-code depicts how to process replicated packet.
   The original packet also needs to be sent to the downstream node, and the procedure is different from replicated packets, especially with End.RL.X SID
   So suggest to add description about the original packet in pseudo-code

[Xuesong](If I understand the question right)The behavior in the ingress node is similar to the behavior in the downstream replication nodes, only based on the type of the SID.
For example, if A is the ingress node and supposed to replicate the packet to B and C. The first parsed SID in the segment list will be the local SID of node A and the function TYPE is End.RL; If A is the ingress node and supposed to replicate the packet and sent them out through A1 and A2. The first parsed SID in the segment list will be the local SID of node A and the function TYPE is End.RL.X pointing to A1.

3. Pseudo codes and illustration are conflict

S01. When an MRH is processed {

   S02.   If (Segments Left == 0 or Replication Number==Pointer==0) {

   S03.      Stop processing the MRH, and proceed to process the next

                header in the packet, whose type is identified by

                the Next Header field in the routing header.

     +-----------------------------------------+

     |  Loc:A1 | Fun:End.RL.X| Rp-Nm:1 |  P:3  |

     +-----------------------------------------+

     |  Loc:A2 | Fun:End.RL.X| Rp-Nm:0 |  P:5  |

     +-----------------------------------------+

     |  Loc:B1 | Fun:End.RL.X| Rp-Nm:1 |  P:0  |

     +-----------------------------------------+

     |  Loc:B2 | Fun:End.RL.X| Rp-Nm:0 |  P:0 |

     +-----------------------------------------+

     |  Loc:C1 | Fun:End.RL.X| Rp-Nm:1 |  P:0  |

     +-----------------------------------------+

     |  Loc:C2 | Fun:End.RL.X| Rp-Nm:0 |  P:0  |

     +-----------------------------------------+

In the Illustration, B2's Rp-Nm and pointer are 0,  B will stop processing MRH based on pseudo-code.

[Xuesong] I can’t see the problem here. B will stop processing MRH and start to parse the next header.

In addition, USD flavor should be added to B1、B2、C1、C2

[Xuesong] Yes. We will consider the flavor in the following versions. Not only USD, for example “BUD Node” may need a dedicated flavor .

4. Question about mixed use of End.RL and End.RL.X

  Suppose A allocates a End.RL, B allocates End.RL.X B1 associated to D  and End.RL.X B2 associated to E
 C allocates two End.RL.X SIDs respectively assciated to F and G.
  The multicast tree is composed with End.RL and End.RL.X SIDS.

  Does this scenario need to be considered? And It will be great to add a illustration about that to document.

                   +---+

                  +--| D |

            +---+   B1  +---+

          +--| B |----|

          | +---+   B2  +---+

      +---+  |       +--| E |

  R----- | A |----|         +---+

     +---+   |       +--| F |

          |  +---+   C1 +---+

           +--| C |----|

            +---+   C2 +---+

                 +--| G |

                   +---+

[Xuesong] Mixed deployment should be considered. In order to avoid bringing unnecessary complexity to the solution, we only plan to cover the case of 1 time transfer from End. RL to End. RL.X or or vice versa.  We could add an example.

Lihao
H3C
[email-masked]<mailto:[email-masked]>
www.h3c.com<http://www.h3c.com/>
This e-mail and its attachments contain confidential information from H3C, which is intended only for the person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by phone or email immediately and delete it!

-------------------------------------------------------------------------------------------------------------------------------------
本邮件及其附件含有新华三集团的保密信息，仅限于发送给上面地址中列出
的个人或群组。禁止任何其他人以任何形式使用（包括但不限于全部或部分地泄露、复制、
或散发）本邮件中的信息。如果您错收了本邮件，请您立即电话或邮件通知发件人并删除本
邮件！
This e-mail and its attachments contain confidential information from New H3C, which is
intended only for the person or entity whose address is listed above. Any use of the
information contained herein in any way (including, but not limited to, total or partial
disclosure, reproduction, or dissemination) by persons other than the intended
recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender
by phone or email immediately and delete it!