Connection level local Flow Controller doesn't create MAX_DATA frame.
- Server Side
```
[Aug 31 15:31:49.677] {0xb000c000} DEBUG: <QUICNetVConnection.cc:1472
(_init_flow_c> (quic_flow_ctrl) [b7c75d8d-4d307134] [REMOTE]
0/8192
[Aug 31 15:31:49.741] {0xb000c000} DEBUG: <QUICNetVConnection.cc:1284
(_packetize_f> (quic_flow_ctrl) [b7c75d8d-4d307134] [REMOTE]
1142/8192
[Aug 31 15:31:49.741] {0xb000c000} DEBUG: <QUICNetVConnection.cc:1284
(_packetize_f> (quic_flow_ctrl) [b7c75d8d-4d307134] [REMOTE]
2284/8192
[Aug 31 15:31:49.741] {0xb000c000} DEBUG: <QUICNetVConnection.cc:1284
(_packetize_f> (quic_flow_ctrl) [b7c75d8d-4d307134] [REMOTE]
3426/8192
[Aug 31 15:31:49.742] {0xb000c000} DEBUG: <QUICNetVConnection.cc:1284
(_packetize_f> (quic_flow_ctrl) [b7c75d8d-4d307134] [REMOTE]
4568/8192
[Aug 31 15:31:49.742] {0xb000c000} DEBUG: <QUICNetVConnection.cc:1284
(_packetize_f> (quic_flow_ctrl) [b7c75d8d-4d307134] [REMOTE]
5710/8192
[Aug 31 15:31:49.742] {0xb000c000} DEBUG: <QUICNetVConnection.cc:1284
(_packetize_f> (quic_flow_ctrl) [b7c75d8d-4d307134] [REMOTE]
6852/8192
[Aug 31 15:31:49.742] {0xb000c000} DEBUG: <QUICNetVConnection.cc:1284
(_packetize_f> (quic_flow_ctrl) [b7c75d8d-4d307134] [REMOTE]
7898/8192
[Aug 31 15:31:49.742] {0xb000c000} DEBUG: <QUICNetVConnection.cc:1284
(_packetize_f> (quic_flow_ctrl) [b7c75d8d-4d307134] [REMOTE]
7988/8192
[Aug 31 15:31:49.743] {0xb000c000} DEBUG: <QUICNetVConnection.cc:1284
(_packetize_f> (quic_flow_ctrl) [b7c75d8d-4d307134] [REMOTE]
8192/8192
```
- Client Side
`QUICFlowController::_threshold` is added in the debug log. Format is
`offset`/`threshold`/`limit`.
```
[Aug 31 15:31:49.610] {0x10aa13000} DEBUG: <QUICNetVConnection.cc:1470
(_init_flow_c> (quic_flow_ctrl) [4d307134-b7c75d8d] [LOCAL]
0/8192
[Aug 31 15:31:49.819] {0x10aa13000} DEBUG: <QUICNetVConnection.cc:1388
(_recv_and_ac> (quic_flow_ctrl) [4d307134-b7c75d8d] [LOCAL]
1142/1024/8192
[Aug 31 15:31:49.820] {0x10aa13000} DEBUG: <QUICNetVConnection.cc:1396
(_recv_and_ac> (quic_flow_ctrl) [4d307134-b7c75d8d] [LOCAL]
1142/807/9334
[Aug 31 15:31:49.825] {0x10aa13000} DEBUG: <QUICNetVConnection.cc:1388
(_recv_and_ac> (quic_flow_ctrl) [4d307134-b7c75d8d] [LOCAL]
2284/807/9334
[Aug 31 15:31:49.825] {0x10aa13000} DEBUG: <QUICNetVConnection.cc:1396
(_recv_and_ac> (quic_flow_ctrl) [4d307134-b7c75d8d] [LOCAL]
2284/1615/10476
[Aug 31 15:31:49.826] {0x10aa13000} DEBUG: <QUICNetVConnection.cc:1388
(_recv_and_ac> (quic_flow_ctrl) [4d307134-b7c75d8d] [LOCAL]
3426/1615/10476
[Aug 31 15:31:49.826] {0x10aa13000} DEBUG: <QUICNetVConnection.cc:1396
(_recv_and_ac> (quic_flow_ctrl) [4d307134-b7c75d8d] [LOCAL]
3426/2422/11618
[Aug 31 15:31:49.827] {0x10aa13000} DEBUG: <QUICNetVConnection.cc:1388
(_recv_and_ac> (quic_flow_ctrl) [4d307134-b7c75d8d] [LOCAL]
4568/2422/11618
[Aug 31 15:31:49.827] {0x10aa13000} DEBUG: <QUICNetVConnection.cc:1396
(_recv_and_ac> (quic_flow_ctrl) [4d307134-b7c75d8d] [LOCAL]
4568/3230/12760
[Aug 31 15:31:49.827] {0x10aa13000} DEBUG: <QUICNetVConnection.cc:1388
(_recv_and_ac> (quic_flow_ctrl) [4d307134-b7c75d8d] [LOCAL]
5710/3230/12760
[Aug 31 15:31:49.827] {0x10aa13000} DEBUG: <QUICNetVConnection.cc:1396
(_recv_and_ac> (quic_flow_ctrl) [4d307134-b7c75d8d] [LOCAL]
5710/4038/13902
[Aug 31 15:31:49.828] {0x10aa13000} DEBUG: <QUICNetVConnection.cc:1388
(_recv_and_ac> (quic_flow_ctrl) [4d307134-b7c75d8d] [LOCAL]
6852/4038/13902
[Aug 31 15:31:49.828] {0x10aa13000} DEBUG: <QUICNetVConnection.cc:1396
(_recv_and_ac> (quic_flow_ctrl) [4d307134-b7c75d8d] [LOCAL]
6852/4845/15044
[Aug 31 15:31:49.829] {0x10aa13000} DEBUG: <QUICNetVConnection.cc:1388
(_recv_and_ac> (quic_flow_ctrl) [4d307134-b7c75d8d] [LOCAL]
7988/4845/15044
[Aug 31 15:31:49.829] {0x10aa13000} DEBUG: <QUICNetVConnection.cc:1396
(_recv_and_ac> (quic_flow_ctrl) [4d307134-b7c75d8d] [LOCAL]
7988/5649/16180
[Aug 31 15:31:49.829] {0x10aa13000} DEBUG: <QUICNetVConnection.cc:1388
(_recv_and_ac> (quic_flow_ctrl) [4d307134-b7c75d8d] [LOCAL]
8192/5649/16180
[Aug 31 15:31:49.829] {0x10aa13000} DEBUG: <QUICNetVConnection.cc:1396
(_recv_and_ac> (quic_flow_ctrl) [4d307134-b7c75d8d] [LOCAL]
8192/5793/16384
```
`offset` + `threshold` is always smaller than `limit`. Which means MAX_DATA is
never created.
https://github.com/apache/trafficserver/blob/01030555a4cfe8e421886673e8dfdc592e13c53a/iocore/net/quic/QUICFlowController.cc#L165-L167
On stream level, I haven't seen this. But this could be happen when the
`QUICRateAnalyzer::_rate` get low.
[ Full content available at:
https://github.com/apache/trafficserver/issues/4182 ]
This message was relayed via gitbox.apache.org for [email protected]