bneradt commented on code in PR #9117:
URL: https://github.com/apache/trafficserver/pull/9117#discussion_r985951880


##########
proxy/http2/Http2ConnectionState.cc:
##########
@@ -1039,8 +1039,18 @@ Http2ConnectionState::Http2ConnectionState() : 
stream_list()
 void
 Http2ConnectionState::init(Http2CommonSession *ssn)
 {
-  session            = ssn;
-  this->_server_rwnd = Http2::initial_window_size;
+  session = ssn;
+
+  if (Http2::initial_window_size < HTTP2_INITIAL_WINDOW_SIZE) {
+    // There is no HTTP/2 specified way to shrink the connection window size
+    // other than to receive data and not send WINDOW_UPDATE frames for a
+    // while.
+    this->_server_rwnd              = HTTP2_INITIAL_WINDOW_SIZE;

Review Comment:
   `HTTP2_INITIAL_WINDOW_SIZE` is actually the 65,535 value, so this isn't the 
lower but rather the higher value. So here's the function:
   
   ```
    if (Http2::initial_window_size < HTTP2_INITIAL_WINDOW_SIZE) {
        // There is no HTTP/2 specified way to shrink the connection window size
        // other than to receive data and not send WINDOW_UPDATE frames for a
        // while.
        this->_server_rwnd              = HTTP2_INITIAL_WINDOW_SIZE;
        this->_server_rwnd_is_shrinking = true;
      } else {
        this->_server_rwnd              = Http2::initial_window_size;
        this->_server_rwnd_is_shrinking = false;
      }
   ```
   
   * If, per the first branch, the user configured a _smaller_ value than the 
spec's default session window size (`HTTP2_INITIAL_WINDOW_SIZE`, 65,535), then 
we initialize the window to that higher value and indicate that we are actively 
shrinking the window to the desired state. `restart_receiving` already handles 
this appropriately without any change in this patch...it sends `WINDOW_UPDATE` 
frames when the receive session window drops below the configured session 
window (not this default window).
   * If the user configures a session window _larger_ than the default window 
size of 65,535 (the else case above), then we can simply set the `_server_rwnd` 
to the larger value and, later in the function, we send a `WINDOW_UPDATE` frame 
to tell the peer to increase the session window size as desired.



##########
proxy/http2/Http2ConnectionState.cc:
##########
@@ -1039,8 +1039,18 @@ Http2ConnectionState::Http2ConnectionState() : 
stream_list()
 void
 Http2ConnectionState::init(Http2CommonSession *ssn)
 {
-  session            = ssn;
-  this->_server_rwnd = Http2::initial_window_size;
+  session = ssn;
+
+  if (Http2::initial_window_size < HTTP2_INITIAL_WINDOW_SIZE) {
+    // There is no HTTP/2 specified way to shrink the connection window size
+    // other than to receive data and not send WINDOW_UPDATE frames for a
+    // while.
+    this->_server_rwnd              = HTTP2_INITIAL_WINDOW_SIZE;

Review Comment:
   Thank you for the review. Let me know whether I misunderstood your question.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to