Lars Eggert has entered the following ballot position for
draft-ietf-ipsecme-iptfs-14: Discuss

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to 
https://www.ietf.org/about/groups/iesg/statements/handling-ballot-positions/ 
for more information about how to handle DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-ipsecme-iptfs/



----------------------------------------------------------------------
DISCUSS:
----------------------------------------------------------------------

# GEN AD review of draft-ietf-ipsecme-iptfs-14

CC @larseggert

Thanks to Peter E. Yee for the General Area Review Team (Gen-ART) review
(https://mailarchive.ietf.org/arch/msg/gen-art/VKlfYh3uoGomO4_Lv8e6kltl36g).

## Discuss

### Section 2.4.1, paragraph 3
```
     For similar reasons as given in [RFC7510] the non-congestion-
     controlled mode should only be used where the user has full
     administrative control over the path the tunnel will take.  This is
     required so the user can guarantee the bandwidth and also be sure as
     to not be negatively affecting network congestion [RFC2914].  In this
     case, packet loss should be reported to the administrator (e.g., via
     syslog, YANG notification, SNMP traps, etc.) so that any failures due
     to a lack of bandwidth can be corrected.
```
There is a lot more nuance and there are a lot more restrictions in RFC7510 that
also apply here. If a non-congestion-controlled mode is desired, especially
without even using RFC8084 circuit breakers, similar mandatory text needs to be
crafted for this mechanism. (I would also strongly suggest to require circuit
breakers here.)

### Section 2.4.2, paragraph 0
```
  2.4.2.  Congestion-Controlled Mode
```
This mode adds a LOT of complexity to this mechanism. Is this really needed?
Could not RFC8229 be used instead of defining an entirely separate congestion
control scheme for (padded/fragmented) ESP?

### Section 2.4.2.1, paragraph 1
```
     In additional to congestion control, implementations MAY choose to
     define and implement circuit breakers [RFC8084] as a recovery method
     of last resort.  Enabling circuit breakers is also a reason a user
     may wish to enable congestion information reports even when using the
     non-congestion-controlled mode of operation.
```
This makes no sense. If implemented in addition to CC, circuit breakers will
never fire, because a functioning congestion control algorithm will always
maintain a send rate below the circuit breaker threshold.

What would make sense is to use circuit breakers in the
non-congestion-controlled case, to provide a safety mechanism in cases the
network provisioning changes for an active tunnel.

### Section 3.1, paragraph 0
```
  3.1.  ECN Support
```
There is a lot more nuance to this, as described in RC6040. This document needs
to follow that existing standard rather than define another variant.

### Section 6.1.2, paragraph 9
```
     RTT:
        A 22-bit value specifying the sender's current round-trip time
        estimate in microseconds.  The value MAY be zero prior to the
        sender having calculated a round-trip time estimate.  The value
        SHOULD be set to zero on non-AGGFRAG_PAYLOAD-enabled SAs.  If the
        RTT is equal to or larger than 0x3FFFFF the value MUST be set to
        0x3FFFFF.
```
This can only encode RTTs of up to around four seconds. That is too little for
Internet usage. (Same concern about other 22-bit microsecond values below.)


----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

## Comments

### Section 2, paragraph 0
```
  2.  The AGGFRAG Tunnel
```
This description in this section doesn't seem to accurately reflect the
availability of a congestion-controlled mode of operation, it's only about CBR.

### Section 2.2.3.1, paragraph 1
```
     When the tunnel bandwidth is not being fully utilized, a sender MAY
     pad-out the current encapsulating packet in order to deliver an inner
     packet un-fragmented in the following outer packet.  The benefit
```
If this MAY is not followed, the tunnel isn't a CBR tunnel anymore. Permitting
that seems to contradict one of the main premises of this approach?

### Section 2.2.5.2, paragraph 0
```
  2.2.5.2.  ECN value
```
RFC6040 has updated the guidance in RFC4301 for ECN (see above, too.)

### Section 2.4.2, paragraph 1
```
     The required inputs for the TCP friendly rate control algorithm
     described in [RFC5348] are the receiver's loss event rate and the
     sender's estimated round-trip time (RTT).  These values are provided
     by IP-TFS using the congestion information header fields described in
     Section 3.  In particular, these values are sufficient to implement
     the algorithm described in [RFC5348].
```
RFC5348 like most IETF congestion control mechanisms are sender-side. Is there a
good reason to flip this around and do the computation on the receiver, which
complicates the actual use of RFC5348?

### Section 2.4.2, paragraph 2
```
     the available tunnel bandwidth.  An implementation choosing to always
     send the data MAY also choose to only update the LossEventRate and
     RTT header field values it sends every RTT though.
```
Why? Sending known stale data is worse than not sending any data.

### Section 4.1, paragraph 1
```
     Bandwidth is a local configuration option.  For non-congestion-
     controlled mode, the bandwidth SHOULD be configured.  For congestion-
     controlled mode, the bandwidth can be configured or the congestion
     control algorithm discovers and uses the maximum bandwidth available.
     No standardized configuration method is required.
```
For congestion-controlled mode, what is the point of configuring bandwidth? The
CC algorithm will not use this at all.

### Section 4.3, paragraph 1
```
     Congestion control is a local configuration option.  No standardized
     configuration method is required.
```
I don't understand what this is supposed to express?

### Section 6.1.2, paragraph 8
```
     E:
        A 1-bit value that if set indicates that Congestion Experienced
        (CE) ECN bits were received and used in deriving the reported
        LossEventRate.
```
What is the reason for signaling this? CC does not depend on this.

### Inclusive language

Found terminology that should be reviewed for inclusivity; see
https://www.rfc-editor.org/part2/#inclusive_language for background and more
guidance:

 * Term `traditional`; alternatives might be `classic`, `classical`, `common`,
   `conventional`, `customary`, `fixed`, `habitual`, `historic`,
   `long-established`, `popular`, `prescribed`, `regular`, `rooted`,
   `time-honored`, `universal`, `widely used`, `widespread`
 * Term `native`; alternatives might be `built-in`, `fundamental`, `ingrained`,
   `intrinsic`, `original`

## Nits

All comments below are about very minor potential issues that you may choose to
address in some way - or ignore - as you see fit. Some were flagged by
automated tools (via https://github.com/larseggert/ietf-reviewtool), so there
will likely be some false positives. There is no need to let me know what you
did with these suggestions.

### Section 2.4.2, paragraph 1
```
     practice RECOMMENDS that the algorithm conform to [RFC5348].
```
"RECOMMENDS" is not an RFC2119 keyword.

### Grammar/style

#### Section 2.2.3, paragraph 5
```
mbers will not work for this document so the sequence number stream MUST incr
                                     ^^^
```
Use a comma before "so" if it connects two independent clauses (unless they are
closely connected and short).

#### Section 2.2.3, paragraph 5
```
w sizes. This is because packets outside of the smaller window but inside the
                                 ^^^^^^^^^^
```
This phrase is redundant. Consider using "outside".

#### Section 2.2.3.1, paragraph 3
```
load is called an empty payload. Currently this situation is only applicable
                                 ^^^^^^^^^
```
A comma may be missing after the conjunctive/linking adverb "Currently".

#### Section 2.2.3.1, paragraph 4
```
[RFC4301], AGGFRAG mode may and often will be encapsulating more than one IP
                                ^^^^^^^^^^^^^
```
The adverb "often" is usually put between "will" and "be".

#### Section 2.2.7, paragraph 1
```
e tunnel will take. This is required so the user can guarantee the bandwidth
                                    ^^^
```
Use a comma before "so" if it connects two independent clauses (unless they are
closely connected and short).

#### Section 2.5, paragraph 3
```
to have a round-trip time estimate. Thus the sender communicates this estimat
                                    ^^^^
```
A comma may be missing after the conjunctive/linking adverb "Thus".

#### Section 6.1.1, paragraph 7
```
value of zero indicates no loss. Otherwise the loss event rate is 1/LossEven
                                 ^^^^^^^^^
```
A comma may be missing after the conjunctive/linking adverb "Otherwise".

#### Section 6.1.3.3, paragraph 3
```
ffecting network congestion in a predictable way, and if it would be, then n
                            ^^^^^^^^^^^^^^^^^^^^
```
Consider replacing this phrase with the adverb "predictably" to avoid
wordiness.

## Notes

This review is in the ["IETF Comments" Markdown format][ICMF], You can use the
[`ietf-comments` tool][ICT] to automatically convert this review into
individual GitHub issues. Review generated by the [`ietf-reviewtool`][IRT].

[ICMF]: https://github.com/mnot/ietf-comments/blob/main/format.md
[ICT]: https://github.com/mnot/ietf-comments
[IRT]: https://github.com/larseggert/ietf-reviewtool



_______________________________________________
IPsec mailing list
IPsec@ietf.org
https://www.ietf.org/mailman/listinfo/ipsec

Reply via email to