Ballot for draft-ietf-masque-connect-udp-listen

Discuss

Éric Vyncke

Yes

Mike Bishop

No Objection

Andy Newton
Charles Eckel
Christopher Inacio
Deb Cooley
Gorry Fairhurst
Gunter Van de Velde
Jim Guichard
Ketan Talaulikar
Mahesh Jethanandani
Mohamed Boucadair
Roman Danyliw
Tommy Jensen

Summary: Has a DISCUSS. Has enough positions to pass once DISCUSS positions are resolved.

Éric Vyncke
Discuss
Discuss (2026-08-03 for -13) Sent
# Éric Vyncke INT AD comments for draft-ietf-masque-connect-udp-listen-13
CC @evyncke

Thank you for the work put into this document.

Please find below some blocking DISCUSS points (easy to address), some non-blocking COMMENT points/nits (replies would be appreciated even if only for my own education).

Special thanks to Alejandro Sedeño for the shepherd's very short write-up but it lack information about the WG consensus, i.e., the IESG needs to trust the WG chairs.

I hope that this review helps to improve the document,

Regards,

-éric

Note: this ballot comments follow the Markdown syntax of https://github.com/mnot/ietf-comments/tree/main, i.e., they can be processed by a tool to create github issues.

## DISCUSS (blocking)

As noted in https://datatracker.ietf.org/doc/statement-iesg-handling-ballot-positions-20220121/, a DISCUSS ballot is a request to have a discussion on the points below; I really think that the document would be improved with a change here, but can be convinced otherwise.

### Section 2

Why not a MUST in `SHOULD use the 400 (Bad Request) status code` ? The MUST would ensure interoperability.

See also https://datatracker.ietf.org/doc/statement-iesg-statement-on-clarifying-the-use-of-bcp-14-key-words/

### Section 3 use of "IP"

s/target IP/target IP *address*/, using "IP" for "IP address" is an ellipsis that is ambiguous, therefore should not appear in a PS.

The above point occurs in other places in the document, please fix all of them even if most of the time "IP address" is used correctly in the document.

NB: I note that Gorry Fairhurst had the same comment.

### Section 10

Thanks for the MTU discussion, but what about plain ICMP messages handling ? 

Even if handled by CONNECT-UDP, there should be some text in this section about ICMP handling, e.g., with a reference to CONNECT-UDP.
Comment (2026-08-03 for -13) Sent
## COMMENTS (non-blocking)


### Section 1

Please expand ICE at first use.

Why using capitalisation for Web in `two Web browsers` ?

s/This document describes an extension /This document *specifies* an extension / as it is PS.

To be honest, the text is not crystal clear.

### Section 7

s/The format of the String is defined using IP-literal, IPv4address, and port/The format of the String is defined using IP-literal *(for an IPv6 address)*, IPv4address, and port/ ? I would save a heart attack for some IPv6 fanatics ;-)

### Section 9

Expand TURN at first use ?

As a side note, I appreciate the use of "MUST" rather than "SHOULD" in this section.

### Appendix B

The discussion about CONNECT-IP would benefit from moving to the section 1.
Mike Bishop
Yes
Andy Newton
No Objection
Comment (2026-08-04 for -13) Not sent
Many thanks to Jasdip Singh for the ARTART review, and thanks to the authors for addressing his review.
Charles Eckel
No Objection
Christopher Inacio
No Objection
Comment (2026-08-05 for -14) Sent
Thanks to Yaroslav R. for the SECDIR review and Alejandro S. for the shepherd's write up.

I will note that the security considerations continues in reference-after-reference and there could be some consideration on how to provide such extensive (and generally quite good) guidance without forcing readers to open 4+ RFCs to get it all.
Deb Cooley
No Objection
Comment (2026-08-03 for -13) Sent
Thanks to Yaroslav Rosomakho for their secdir review 

Only one Nit:  Section 1, spell out ICE on first use.
Gorry Fairhurst
No Objection
Comment (2026-07-06 for -13) Sent
I have some COMMENTS (non-blocking), which I hope will improve this specification:

(1) Perhaps editorial, but at least reducing clarity for me: the terms "IP" "target IP" "unknown IPs" "Restricting IPs" "Unknown IP" etc seem like an incorrect use of an abbreviation IP meaning the "Internet Protocol". Please check carefully and then replace "IP" by "IP address" or "IP addresses" etc, to follow the usage in https://www.rfc-editor.org/info/rfc9484/.

(2) The text says: “Once an endpoint has either sent or received a COMPRESSION_CLOSE for a given Context ID, it MUST NOT send any further datagrams with that Context ID. "
- This was understood, but I did not see where the document said whether datagrams could be re-ordered - so, can datagrams be delivered after a close? .. and what should then happen? (Is it intended to be covered by section 8?)

(3) (Memory) limits are appropriately identified in section 9, but  no method is defined to detect these limits being exceeded. Ought this section also to recommend/require logging or counting when these limits are exceeded?

I also note these NiTs:
The text says: "If an endpoint nreceives COMPRESSION_ACK capsule for a Context ID "
- Insert “a” before “COMPRESSION_ACK capsule”?
The text says: "the effective MTU will change.” I expect this is /change/reduce/ - since I would not expect it to increase by adding protocol headers!
Gunter Van de Velde
No Objection
Comment (2026-07-02 for -13) Sent
Section 11.1: Please use the exact IANA registry name “Hypertext Transfer Protocol (HTTP) Field Name Registry” rather than “HTTP Field Name” registry.
Jim Guichard
No Objection
Ketan Talaulikar
No Objection
Mahesh Jethanandani
No Objection
Comment (2026-08-03 for -13) Sent
Section 3:

246 >    If the uncompressed Context ID is closed, the proxy MUST NOT open new
247 >    compressed Context IDs.  Allowing the proxy to do so would permit
248 >    traffic from source tuples not selected by the client, defeating the
249 >    IP restriction described in Section 8.1.  Note that compressed
250 >    Context IDs that were established prior to the closing of the
251 >    uncompressed Context ID are not impacted.

This resolves half of Ines's question 3 (pre-existing compressed contexts
survive), but leaves the other half open: is the client also expected to
stop opening *new* compressed Context IDs once it has closed its uncompressed
one, or is the restriction deliberately one-sided because the client is
trusted to only register targets it still wants to hear from? Section 8.1
reads as though the asymmetry is intentional -- the client is the one doing
the restricting -- but the document never says so, and a reader coming from
the proxy-side MUST just above could reasonably wonder whether the same
prohibition was meant to apply symmetrically. A one-sentence clarification
would help here.

---

Section 9:

490 >    Note that if the compression response (COMPRESSION_ACK or
491 >    COMPRESSION_CLOSE) cannot be immediately sent due to flow or
492 >    congestion control, an upper limit on how many compression responses
493 >    the endpoint is willing to buffer MUST be set to prevent memory
494 >    exhaustion.  The proxy MUST abort the request stream if this limit is
495 >    reached.

Aborting the whole request stream -- tearing down every Context ID on the
tunnel -- seems like a heavy-handed response to a buffering limit on
COMPRESSION_ACK/COMPRESSION_CLOSE alone, especially since ordinary UDP
payload congestion elsewhere in the tunnel isn't given the same treatment.
Have the authors considered whether rejecting or dropping the specific
registration that would overflow the buffer (i.e., failing that one
COMPRESSION_ASSIGN) is sufficient, reserving the full abort for cases where
the endpoint can no longer track state safely at all?
Mohamed Boucadair
No Objection
Comment (2026-07-10 for -13) Sent
Hi David and Abhijit, 

Thank you for the effort put into this well-written document.

Thanks also to Aihua Guo for the OPSDIR review.

Please find below some few comments: 

# I failed to find where “unextended UDP proxying request“ was defined. Idem for “bound UDP proxying”.

# valid target

CURRENT:
  When "target_host" and "target_port" are set to a valid target, 

I guess we meant here valid host and port values? If so, please make that explicit as I wasn’t sure if by “valid target” we imply some other checks.

# wildcars

CURRENT:
   If only one of the "target_host" and the "target_port" variables is
   set to the '*' character, the request is malformed.  

Maybe this is obvious for the authors, but it wasn’t clear to be why having both as wildcard is acceptable but, for example, expressing no port preference is not allowed.

# Like any address sharing mechanism, the operational complications in rfc6269 will be experienced. I suggest to a note under Section 10.

# Likewise, operating a proxy will have to consider the Logging requirements similar to rfc6888#section-4 are required. You may consider a brief note under Section 10.

# I sent a PR with few editorial change proposals [1].

Cheers,
Med

[1] https://github.com/ietf-wg-masque/draft-ietf-masque-connect-udp-listen/pull/52/changes
Roman Danyliw
No Objection
Comment (2026-07-29 for -13) Not sent
Thank you to Ines Robles for the GENART review.
Tommy Jensen
No Objection
Comment (2026-08-05 for -14) Sent
I second Chris' comment about your Security Considerations. I almost stepped in to DISCUSS why you haven't said anything about amplification attack potential, but realized it's discussed in RFC 8656 (TURN) which you defer to, in its nearly 400 line long security considerations. I highly advise adding at least some basic description of the things an implementer should think about as their greatest risks. In my UDP 53 traumatized mind, this obviously would include amplification attacks.