-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Loading status checks…
[USM] extract fix frame from filtering (#20528)
* usm: http2: Change PROG_HTTP2 to PROG_HTTP2_FRAME_FILTER In this PR we'll add a new hook point, so for clarity it is best to have meaningful names which represent better the usage of the tail-calls * usm: http2: Introduce first frame handler The new tail call intended to run a the first tail call for http2 (instead of frames_filter). The goal will be to read the first frame, with consideration to remainder from previous packet and to reduce the complexity of frames_filter, that will lead into processing more frames * usm: http2: Extract first-frame-handler into a function As a preliminary step, extracting the relevant code into a separated function to ease future modifications * usm: http2: Move tcp termination handling to socket__http2_handle_first_frame The first tail call should handle it, as there is no need to call further tail-calls for cleanup. Also, less code in socket__http2_filter, means less complexity for the verifier and higher chance to process more frames. * usm: http2: Move initialization of iteration_value to socket__http2_handle_first_frame The first frame might be interesting, so we need to move the initialization into socket__http2_handle_first_frame for that case. Thus in socket__http2_filter we just need to get the pointer * usm: http2: socket__http2_handle_first_frame is now responsbile for extracting first frame Changed socket__http2_handle_first_frame so it will extract the first frame, and clear the frame_state if consumed. We also override the data_off field cached in dispatcher_arguments map, so socket__http2_filter will have the correct offset of the next frame to read from. * usm: Added documentation for some consts
- Loading branch information
Showing
5 changed files
with
133 additions
and
68 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters