Subject: [Idr] RtgDir review: draft-ietf-idr-bgp-ls-segment-routing-msd-16.txt

From: Mach Chen <[email-masked]>
Date: Fri, 17 Apr 2020 07:38:41 +0000

Hello,

I have been selected as the Routing Directorate reviewer for this draft. The Routing Directorate seeks to review all routing or routing-related drafts as they pass through IETF last call and IESG review, and sometimes on special request. The purpose of the review is to provide assistance to the Routing ADs. For more information about the Routing Directorate, please see ​http://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir

Although these comments are primarily for the use of the Routing ADs, it would be helpful if you could consider them along with any other IETF Last Call comments that you receive, and strive to resolve them through discussion or by updating the draft.

Document: draft-ietf-idr-bgp-ls-segment-routing-msd-16.txt
Reviewer: Mach Chen
Review Date: April 17, 2020 
IETF LC End Date: 
Intended Status: Standards Track

Summary:
I have some minor concerns about this document that I think should be resolved before publication.

Comments:
This document is clearly written and easy to understand.

Major Issues:
No major issues found.

Minor Issues:
The Node MSD TLV and Link MSD TLV are designed to be able to carry multiple MSDs. I guess this is designed for future extensibility, where a Node may have multiple types of MSD, right? But for each type, is it allowed to carry multiple instances of MSD-Type/MSD-Value pair or only one instance? For whichever case, there need some text to describe the rule about the sending and receiving procedures. For example, when multiple instances allowed, how does a node decide which instance takes effect; if only one instance allowed and multiple instances received, how to handle this, discard the whole TLV, or only the first instance takes effect and the rest ignored.  

Nits:
1. 
Section 1,
s/learn/learns

2.
Section 3 and Section 4:
The TLV format of Node/Link MSD is defined 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             |             Length            |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |    MSD-Type   |  MSD-Value    |  MSD-Type...  |  MSD-Value... |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Since the MSD-Type/MSD-Value pairs are variable in length, the above definition does not reflect this, suggest to change the figure as below:
      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            |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     //    MSD-Type   |  MSD-Value    |  MSD-Type...  |  MSD-Value... //
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Best regards,
Mach

---

From: Alvaro Retana <[email-masked]>
Date: Fri, 17 Apr 2020 14:08:33 -0700

Mach:

Hi!  How are you?

Thanks for the review!!

Keep in mind that BGP-LS simply transports the information from the IGPs,
so the ability to carry multiple instances/multiple values depends on the
specification of the MSD itself, and any rules in the corresponding IGP
RFCs.  IOW, specifying that behavior for BGP-LS in this document is not
needed.

Take care!

Alvaro.

On April 17, 2020 at 3:38:55 AM, Mach Chen ([email-masked]) wrote:

Minor Issues:
The Node MSD TLV and Link MSD TLV are designed to be able to carry multiple
MSDs. I guess this is designed for future extensibility, where a Node may
have multiple types of MSD, right? But for each type, is it allowed to
carry multiple instances of MSD-Type/MSD-Value pair or only one instance?
For whichever case, there need some text to describe the rule about the
sending and receiving procedures. For example, when multiple instances
allowed, how does a node decide which instance takes effect; if only one
instance allowed and multiple instances received, how to handle this,
discard the whole TLV, or only the first instance takes effect and the rest
ignored.

---

From: Jeff Tantsura <[email-masked]>
Date: Fri, 17 Apr 2020 14:27:57 -0700

Hi Mach/Alvaro,

Many thanks for your review.

Please see inline

Have a great weekend and stay safe!

Cheers,
Jeff
> The Node MSD TLV and Link MSD TLV are designed to be able to carry multiple MSDs. I guess this is designed for future extensibility, where a Node may have multiple types of MSD, right? But for each…
[jeff] ack
> The TLV format of Node/Link MSD is defined as follows:

[jeff] As Alvaro already explained in his email, BGP-LS is simply the transport here, https://tools.ietf.org/html/rfc8491#section-2 shows the format exactly as you suggested, thanks for that!
I’m with Alvaro - this need not to be done in this document, since it is already done in the IGP RFC.

---

From: Mach Chen <[email-masked]>
Date: Sat, 18 Apr 2020 03:30:02 +0000

Hi Alvaro,

Technically, according to Table 2 of RFC 7752, the source of BGP-LS information can be from IGP, Direct or Static configuration. And the rules in question are not specified in the IGP RFCs, I personally think they are essential. It’s pity that we did not catch it when progressing those RFCs. I do agree this document may not be the perfect place to specify  those rules, but with the current situation, to write down something here is better than do nothing.

Best regards,
Mach

From: Alvaro Retana [mailto:[email-masked]]
Sent: Saturday, April 18, 2020 5:09 AM
To: <[email-masked]> <[email-masked]>; Mach Chen <[email-masked]>
Cc: [email-masked]; IDR List <[email-masked]>; [email-masked]
Subject: Re: RtgDir review: draft-ietf-idr-bgp-ls-segment-routing-msd-16.txt

Mach:

Hi!  How are you?

Thanks for the review!!

Keep in mind that BGP-LS simply transports the information from the IGPs, so the ability to carry multiple instances/multiple values depends on the specification of the MSD itself, and any rules in the corresponding IGP RFCs.  IOW, specifying that behavior for BGP-LS in this document is not needed.

Take care!

Alvaro.

On April 17, 2020 at 3:38:55 AM, Mach Chen ([email-masked]<mailto:[email-masked]>) wrote:
Minor Issues:
The Node MSD TLV and Link MSD TLV are designed to be able to carry multiple MSDs. I guess this is designed for future extensibility, where a Node may have multiple types of MSD, right? But for each type, is it allowed to carry multiple instances of MSD-Type/MSD-Value pair or only one instance? For whichever case, there need some text to describe the rule about the sending and receiving procedures. For example, when multiple instances allowed, how does a node decide which instance takes effect; if only one instance allowed and multiple instances received, how to handle this, discard the whole TLV, or only the first instance takes effect and the rest ignored.

---

From: Mach Chen <[email-masked]>
Date: Sat, 18 Apr 2020 03:44:27 +0000

Hi Jeff,

Please see my response inline…

From: Jeff Tantsura [mailto:[email-masked]]
Sent: Saturday, April 18, 2020 5:28 AM
To: <[email-masked]> <[email-masked]>; Mach Chen <[email-masked]>
Cc: [email-masked]; [email-masked]; IDR List <[email-masked]>
Subject: Re: RtgDir review: draft-ietf-idr-bgp-ls-segment-routing-msd-16.txt

Hi Mach/Alvaro,

Please see inline

Cheers,
Jeff
On Apr 17, 2020, 12:38 AM -0700, Mach Chen <[email-masked]<mailto:[email-masked]>>, wrote:

Hello,

Summary:

Comments:

Major Issues:
No major issues found.

Minor Issues:

Nits:
1.
Section 1,
s/learn/learns
[jeff] ack

2.
Section 3 and Section 4:

[Mach] I may be a little bit picky here☺  According to Figure 1 and Figure 2, they shows that value field is fixed (four octets) in length, but actually the length is variable as designed. IMHO, the format of IGP TLV will not be exactly mapped to the format BGP TLV format, BGP-LS has its own definitions. It’s better that this document keeps the definition sane by itself.

Best regards,
Mach

Best regards,
Mach

---

From: Alvaro Retana <[email-masked]>
Date: Mon, 20 Apr 2020 06:10:50 -0700

Mach:

Hi!

You have a good point, the information can come from other sources.
Besides Direct or Static, BGP is another defined source.

So far, all the BGP-LS RFCs that have been published assume an IGP origin.
Note that this document originally talked about carrying data originated by
BGP — but it would have been the first published document to do so…and
defining the general operation of a BGP source didn’t seem to best fit in
an extension document.  So it was agreed to document that in its own
document [1].

Your point about processing of BGP-LS, in general, at the consumer is also
a good one…and one that caused a lot go discussion related
to draft-ietf-idr-bgp-ls-segment-routing-ext (IIRC).  The result being
rfc7752bis.

Thanks!

Alvaro.

[1] https://mailarchive.ietf.org/arch/msg/idr/uiTEbxlhsfGX_A5D7RQRrrRuA-M/

On April 17, 2020 at 11:30:11 PM, Mach Chen ([email-masked]) wrote:

Technically, according to Table 2 of RFC 7752, the source of BGP-LS
information can be from IGP, Direct or Static configuration. And the rules
in question are not specified in the IGP RFCs, I personally think they are
essential. It’s pity that we did not catch it when progressing those RFCs.
I do agree this document may not be the perfect place to specify  those
rules, but with the current situation, to write down something here is
better than do nothing.