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]

Reply via email to