Hi Yisong, and Authors of draft-ietf-grow-bmp-over-quic,

Thank you !
This email has inputs/suggestions for Question 2, the multi-stream type TLV.
I shall firm up on Question 1 (stream-local error handling) in a 
separate/subsequent email, thought its related and I tried my best to detail 
out only #2 here.
Please correct anything I mis-interpreted from your literature 😊

As we all know, the premise is that the monitoring station needs to know what 
each stream carries.
And just to avoid any confusion, in this email, "scope” refers to the peers 
(Peer Stream) and/or the AFI/SAFI (Per-AFI/SAFI Stream) that a stream carries.

I propose "STREAM DESCRIPTOR TLV”, A new Information TLV, registered in the BMP 
Initiation Message TLVs registry .

  *
The router sends it in the Initiation message that Section 4.1 already requires 
as the first message on each stream.

The structure of the Value fields can be (open to further inputs):

  *
Selection (1 octet): single-stream, Peer Stream, Per-AFI/SAFI Stream, or 
Function Streams.
  *
Kind/Type (1 octet): the role of the stream within the selection, for example 
peer-set stream, common stream, or AFI/SAFI stream.
  *
Stream Index (2 octets) and Stream Count (2 octets): this is stream i of N (For 
example, 2nd stream out of total 100). Count 0 means streams are created on 
demand.
  *
Epoch (4 octets): 0 when the stream is first created. The router adds 1 each 
time it creates a new stream for the same scope after a stream failure. This 
can be leveraged for covering the gap as in question 1
  *
AFI (2 octets) and SAFI (1 octet): present only for AFI/SAFI streams.

Important part of the solution is that peers are not listed in the TLV.  
Section 4.2 mentions that the peer-to-stream mapping follows configuration, and 
configuration can change.
Hence, we can narrow it to the stream on which its Peer Up message is sent:

  *
The station learns the peers of each stream from the Peer Up messages.
  *
An optional (explicit) list of peers can be added if agreeable to all

Following are open questions for backward compatibility, 
boundary-condition-handling (guardrails):

  1.
Unrecognized TLV type:
     *
the draft should mention that the station ignores a TLV type it does not 
recognize.
     *
BMP messages carry their own peer and type information, so the station can 
process them without the TLV.
  2.
Scope mismatch.
     *
if a message arrives on a stream whose declared scope does not match it (for 
example a Route Monitoring message for another AFI/SAFI), the station processes 
the message and records the mismatch.
  3.
Function Streams.
     *
Section 4.1 requires an Initiation message on each stream in the Peer Stream 
and Per-AFI/SAFI selections.
     *
Sections 4.1 and 4.4 seems to require it only on the control channel in the 
Function Streams selection. If that is right, the descriptor of a function 
channel needs another carrier, for example a Peer Up Information TLV on the 
control channel that names the function channel. Open to discussion on which 
one is preferred  here?
  4.
Stream Count.
     *
In the Peer Stream selection, a configured stream that never opens should be 
considered the same as a stream whose peers send no messages.
     *
Stream Count lets the station detect the missing stream.

Let me know your thoughts on above while the response to other query is on its 
way.
If it crowds the existing email chain, we can always spawn-off as you mentioned.

Best Regards,
Saumya


From: Yisong Liu <[email protected]>
Date: Friday, 30 October 2026 at 9:27 AM
To: Dikshit <[email protected]>; Dikshit, Saumya 
<[email protected]>; grow <[email protected]>
Cc: draft-ietf-grow-bmp- <[email protected]>
Subject: Re:Re: [GROW] Fw:New Version Notification 
fordraft-ietf-grow-bmp-over-quic-01.txt


Hi Saumya,



Thanks for the quick feedback, and for the pointers to your nmop draft and the 
earlier GROW thread.



On question 2, I agree the argument is grounded in the same principle, and I'm 
inclined to move the multi-stream type TLV from the "future extension" wording 
in Section 4.1 into the next revision of this document. I would welcome your 
ideas on the solution and text — especially on the TLV value semantics, since 
in the Peer Stream and Per-AFI/SAFI Stream selections the collector also needs 
to know which peers / which AFI/SAFI each stream carries, not just the type.


On question 1, I agree an explicit signal is preferable to leaving the 
collector to infer a gap after the fact, and I can see stream-reset proposal 
and the Events-Suppressed code point as two faces of the same problem. I would 
be glad to work through the signal and re-synchronization design with you, and 
to keep the analysis consistent with draft-retana-idr-bgp-quic, which raises 
the same question.



If convenient, feel free to send your concrete ideas to the list, and I think 
we can take them into the next revision (or a separate thread if that works 
better for you).



Best Regards

Yisong


----邮件原文----
发件人:"Dikshit, Saumya" <[email protected]>
收件人:Yisong Liu  <[email protected]>,grow  <[email protected]>
抄 送: draft-ietf-grow-bmp-  <[email protected]>
发送时间:2026-10-28 16:03:27
主题:Re: [GROW] Fw:New Version Notification 
fordraft-ietf-grow-bmp-over-quic-01.txt



Hello Authors of draft-ietf-grow-bmp-over-quic and GROW WG members,

Thanks for publishing the new rev. I had few inputs for your two queries based 
on prior published ietf drafts (in different group: nmop) and also an earlier 
discussions in GROW itself.

So here it is:

On question 2, the multi-stream type TLV in the Initiation message.
I have another ietf draft in nmop ( 
draft-dikshit-nmop-telemetry-identifier-scoping ) and the argument presented in 
it applies directly here:
a value cannot be safely interpreted by a consumer until the context it was 
produced under is declared alongside it, rather than assumed from configuration 
the consumer may not see.
As I write this, a collector has to be told about which specific out of band 
multi-stream selection a router is using. The TLV you already propose would 
make that declaration explicit and in band instead. If you think it’s grounded 
in that same argument, I  have few ideas on the solution/textual-insinuations.

On question 1, stream-local error recovery. Earlier in the year,  a separate 
thread with subject line "Question on draft-geng-grow-bmp-rel-enhancement," I 
had proposed an Events-Suppressed code point so a collector is told explicitly 
when events were dropped, instead of being left to infer a gap after the fact. 
I firmly believe that resetting one stream without killing the session falls in 
the same problem bucket: the collector needs an explicit signal that a stream 
was reset.
Attaching the thread and I will more than willing to help work through what the 
signal and re-synchronization may/would/should matter here.

Please let me know your thoughts on above.

Best Regards,
Saumya


From: Yisong Liu <[email protected]>
Date: Tuesday, 27 October 2026 at 5:57PM
To: grow <[email protected]>
Cc: draft-ietf-grow-bmp- <[email protected]>
Subject: [GROW] Fw:New Version Notification for 
draft-ietf-grow-bmp-over-quic-01.txt


Dear WG,


We have just posted the -01 revision of this document. It mainly incorporates 
comments collected during the WG adoption process. Below is a summary of the 
main updates in document section order.

Main updates in -01

  *   Section 3.2.2: clarified graceful BMP session termination and 
reconnection behavior after QUIC connection interruption.

  *   Section 4.1: added the mandatory single-stream baseline and guidance on 
the optional multi-stream selections.

  *   Section 4.3: Route Mirroring messages are always carried over the common 
stream (stream 0), regardless of whether AFI/SAFI information can be extracted.

  *   Section 6: removed the automatic TCP fallback and added QUIC debugging 
guidance and an open issue on stream-level error handling.

  *   Section 8: added ICMP handling security considerations for long-lived 
BMPoQUIC connections.

  *   Other: added an IPv6 use case, clarified stream numbering and QUIC Stream 
ID mapping, updated references, and made editorial improvements.

Please review the document and let us know if you have any comments or 
suggestions.


We would also like to send the following questions for this document. Look 
forward to hearing your thoughts.

1) Stream-local error handling

The document currently does not define any stream-level error recovery 
mechanism: if a monitoring station receives a BMP message it cannot parse, it 
SHOULD terminate the entire BMP session (Section 6). We would like to converge 
on the behavior of sender and  receiver when a single stream is reset (e.g., 
after a malformed message), including stream identity negotiation and message 
re-synchronization. This interacts with the future evolution of the control 
channel and with the equivalent issue in BGP over QUIC 
(draft-retana-idr-bgp-quic);  a shared analysis across both documents may be 
worthwhile.

Questions for the WG: Should a malformed message on one stream be recoverable 
by resetting only that stream? If so, what stream identity negotiation and 
re-synchronization mechanism would be needed?

2) Indicating the multi-stream selection in use

The draft defines three optional multi-stream selections (Peer Stream, 
Per-AFI/SAFI Stream, Function Streams with Control Stream) on top of a 
mandatory single-stream baseline (Section 4.1). However, the monitoring station 
currently has no in-band way to know  which selection is in use, i.e., what 
kinds of BMP messages to expect in each stream.

One proposal is to expand the information TLV of the Initiation message to 
carry the multi-stream type: in the Peer Stream and Per-AFI/SAFI selections, 
the Initiation message sent on each stream would carry its own multi-stream 
type TLV, while in the Function  Streams selection, the Initiation message on 
the control channel would indicate the selection for the whole connection. We 
welcome feedback on whether such a TLV should be defined in this document or a 
future one, and on its exact semantics.

Thanks a lot for your review and feedback.


Best regards,

Yisong on behalf of co-authors




----邮件原文----

发件人:internet-drafts <[email protected]>

收件人:Changwang Lin <[email protected]>,Mukul Srivastava 
<[email protected]>,Paolo Lucente <[email protected]>,Thomas Graf 
<[email protected]>,Yisong Liu <[email protected]>

抄 送: (无)

发送时间:2026-10-27 20:17:35

主题:New Version Notification for draft-ietf-grow-bmp-over-quic-01.txt


A new version of Internet-Draft draft-ietf-grow-bmp-over-quic-01.txt has been

successfully submitted by Yisong Liu and posted to the

IETF repository.


Name:     draft-ietf-grow-bmp-over-quic

Revision: 01

Title:    Using BMP over QUIC connection

Date:     2026-10-27

Group:    grow

Pages:    20

URL:      
https://www.ietf.org/archive/id/draft-ietf-grow-bmp-over-quic-01.txt<https://urldefense.com/v3/__https://www.ietf.org/archive/id/draft-ietf-grow-bmp-over-quic-01.txt__;!!NpxR!mdkLpOvneOpSrSe9IZiAUAdinYRgMLRSkOY_Qs-SNrFi0PvKHZ45I1GpuHQtWn6fnhWWLKWtkZNQNvfTNMCNOHQa$>

Status:   
https://datatracker.ietf.org/doc/draft-ietf-grow-bmp-over-quic/<https://urldefense.com/v3/__https://datatracker.ietf.org/doc/draft-ietf-grow-bmp-over-quic/__;!!NpxR!mdkLpOvneOpSrSe9IZiAUAdinYRgMLRSkOY_Qs-SNrFi0PvKHZ45I1GpuHQtWn6fnhWWLKWtkZNQNvfTNI-BskKJ$>

HTMLized: 
https://datatracker.ietf.org/doc/html/draft-ietf-grow-bmp-over-quic<https://urldefense.com/v3/__https://datatracker.ietf.org/doc/html/draft-ietf-grow-bmp-over-quic__;!!NpxR!mdkLpOvneOpSrSe9IZiAUAdinYRgMLRSkOY_Qs-SNrFi0PvKHZ45I1GpuHQtWn6fnhWWLKWtkZNQNvfTNFncrI8A$>

Diff:     
https://author-tools.ietf.org/iddiff?url2=draft-ietf-grow-bmp-over-quic-01<https://urldefense.com/v3/__https://author-tools.ietf.org/iddiff?url2=draft-ietf-grow-bmp-over-quic-01__;!!NpxR!mdkLpOvneOpSrSe9IZiAUAdinYRgMLRSkOY_Qs-SNrFi0PvKHZ45I1GpuHQtWn6fnhWWLKWtkZNQNvfTNHSIXM71$>


Abstract:


   The BGP Monitoring Protocol (BMP) provides a convenient interface for

   obtaining route views by monitoring BGP sessions.  BMP operates over

   TCP and is unidirectional (from client to server).  QUIC provides

   multiple simultaneous streams to carry data in one direction,

   enabling much better efficiency and performance for both peers, in

   particular unidirectional streams can provide reverse data protection

   for the sender.  QUIC also provides shorter handshake and includes

   TLS.  This document describes how to use BMP over the QUIC transport

   protocol, named BMPoQUIC.




The IETF Secretariat


_______________________________________________
GROW mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to