maskit opened a new issue, #9428:
URL: https://github.com/apache/trafficserver/issues/9428

   We have `max_settings_per_frame`, `max_settings_per_minute`, and 
`max_settings_frames_per_minute` for H2, but sending multiple SETTINGS frame on 
H3 is not allowed.
   
   > SETTINGS frames always apply to an entire HTTP/3 connection, never a 
single stream. A SETTINGS frame MUST be sent as the first frame of each 
[control stream](https://datatracker.ietf.org/doc/html/rfc9114#control-streams) 
(see [Section 
6.2.1](https://datatracker.ietf.org/doc/html/rfc9114#control-streams)) by each 
peer, and it MUST NOT be sent subsequently. If an endpoint receives a second 
SETTINGS frame on the [control 
stream](https://datatracker.ietf.org/doc/html/rfc9114#control-streams), the 
endpoint MUST respond with a [connection 
error](https://datatracker.ietf.org/doc/html/rfc9114#errors) of type 
[H3_FRAME_UNEXPECTED](https://datatracker.ietf.org/doc/html/rfc9114#H3_FRAME_UNEXPECTED).[ΒΆ](https://datatracker.ietf.org/doc/html/rfc9114#section-7.2.4-2)
   
   https://datatracker.ietf.org/doc/html/rfc9114#name-settings
   
   
   It's testable through `H3FrameDispatcher` like the unit test does (Need to 
add Http3SettingsHandler instead of the mock handler).
   
https://github.com/apache/trafficserver/blob/2402444b5864411f2415ae142ba81d7637656531/proxy/http3/test/test_Http3FrameDispatcher.cc#L31-L47
   
   It's also testable by calling `Http3SettingsHandler::handleFrame` directly.
   
https://github.com/apache/trafficserver/blob/2402444b5864411f2415ae142ba81d7637656531/proxy/http3/Http3App.h#L99


-- 
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