Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dynamic_modules: HTTP filter config implementation #37070

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

mathetake
Copy link
Member

@mathetake mathetake commented Nov 8, 2024

Commit Message: dynamic_modules: HTTP filter config implementation
Additional Description:

This expands the ABI for HTTP filter configurations. Especially this adds two
even hooks coupled with the life cycle of HTTP filter config handled in the main
thread.

The key idea is to do the direct pointer (context) passing between the boundary;
This allows us to avoid maintaining IDs and global mapping state, which makes it
easier to test as well as it has benefit in terms of performance. E.g. there's no
need to look up "contexts" on each even hook entry.

The next follow-up PR will add per-stream event hooks (filter implementation).
After the event hooks are done, module->Envoy functions will be added (e.g.
accessing headers, etc.)

Risk Level: low
Testing: done
Docs Changes: n/a
Release Notes: n/a
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

Copy link

As a reminder, PRs marked as draft will not be automatically assigned reviewers,
or be handled by maintainer-oncall triage.

Please mark your PR as ready when you want it to be reviewed!

🐱

Caused by: #37070 was opened by mathetake.

see: more, trace.

Signed-off-by: Takeshi Yoneda <[email protected]>
Signed-off-by: Takeshi Yoneda <[email protected]>
Signed-off-by: Takeshi Yoneda <[email protected]>
Signed-off-by: Takeshi Yoneda <[email protected]>
Signed-off-by: Takeshi Yoneda <[email protected]>
Signed-off-by: Takeshi Yoneda <[email protected]>
Signed-off-by: Takeshi Yoneda <[email protected]>
@mathetake mathetake marked this pull request as ready for review November 8, 2024 23:10
@mathetake
Copy link
Member Author

cc @marc-barry

@mathetake
Copy link
Member Author

sorry for the slow progress for the last few weeks - i've been swamped by other works, now I managed to allocate some cycles on this one. The plan is after this PR, the per-stream event hooks will be implemented and then module->envoy call backs (e.g. getting headers etc) will be added. Feels like we will soon be able to provide basic functionality.

Signed-off-by: Takeshi Yoneda <[email protected]>
@mathetake
Copy link
Member Author

/retest

@mathetake
Copy link
Member Author

As a side note, Linkedin's infra team has extensively tested my PoC impl, and according to their evaluation, it's working pretty great and they observed almost zero overhead compared with the native C++ impl, which sounds awesome. The work here is and subsequent PRs will be based on their feedback as well as the original PoC implementation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant