transport sockets: support passthrough state for internal connections#19435
transport sockets: support passthrough state for internal connections#19435lizan merged 67 commits intoenvoyproxy:mainfrom
Conversation
Signed-off-by: Kuat Yessenov <kuat@google.com>
|
CC @envoyproxy/api-shepherds: Your approval is needed for changes made to |
|
@kyessenov Should we add the target internal listener address as the first field of this transport socket? |
|
@lambdai I am not sure since we already have that as |
|
CC @alyssawilk in case you are interested. This is bare minimum needed to propagate policies from the first upstream to the internal listener. but also could be used to propagate the actual destination. |
|
@adisuissa ping! |
adisuissa
left a comment
There was a problem hiding this comment.
Thanks for working on this.
I suggest maybe setting the proto as WIP, and add #not-implemented-hide, but up to you.
/lgtm api
@kyessenov - your thought? In any case, merge master may hopefully clear coverage? |
|
Thanks, marked as WIP. Implementation likely needs #19467 first to land. |
Signed-off-by: Kuat Yessenov <kuat@google.com>
Signed-off-by: Kuat Yessenov <kuat@google.com>
Signed-off-by: Kuat Yessenov <kuat@google.com>
Signed-off-by: Kuat Yessenov <kuat@google.com>
|
/retest |
|
Retrying Azure Pipelines: |
|
Build looks clean, @lizan - are your concerns addressed? |
|
@kyessenov there's a merge conflict to resolve. /wait |
|
Thanks, fixed the conflict. |
|
/retest to determine whether this was a fluke; |
|
Retrying Azure Pipelines: |
|
/retest |
|
Retrying Azure Pipelines: |
|
It's a new flake caused by f7a8db0. |
apologies, addressing this now |
|
/retest |
|
Retrying Azure Pipelines: |
…envoyproxy#19435) Implements a special transport socket for transferring state (metadata and filter state) over the internal connection. This transport socket captures a subset of endpoint metadata, cluster metadata, and stream filter state in the user space socket. When an internal listener accepts a user space socket connection, it immediately merges this passthrough state into the connection stream info. Because the state can be transferred from HTTP stream to TCP stream, this transport socket also participates in the hashing decisions in the HTTP connection pools. Commit Message: Add passhtrough state over internal connection. Risk Level: low, new extension Testing: WIP Docs Changes: yes Release Notes: yes Platform Specific Features: Fixes: envoyproxy#19274 Signed-off-by: Kuat Yessenov <kuat@google.com> Signed-off-by: Amila Senadheera <amila.15@cse.mrt.ac.lk>
Commit Message: Adds a new flag for filter state objects that indicates the intent to share with the upstream. Additional Description: Follow-up to #19809. There have been multiple reports of unexpected lifecycle changes for the filter state objects because they are stored in the transport socket options. This PR addresses this issue by introducing a new mark for filter state that explicitly changes the usage of filter state objects: marked objects always participate in the connection pool hashing (generalizing and simplifying transport sockets: support passthrough state for internal connections #19435); marked objects are copied by reference to the upstream info - this allows sharing state between downstream and upstream (and further down the chain, the internal listeners). Risk Level: medium, revert to the original behavior prior to #19809 Testing: yes Docs Changes: yes Release Notes: yes
Signed-off-by: Kuat Yessenov kuat@google.com
Implements a special transport socket for transferring state (metadata and filter state) over the internal connection.
This transport socket captures a subset of endpoint metadata, cluster metadata, and stream filter state in the user space socket. When an internal listener accepts a user space socket connection, it immediately merges this passthrough state into the connection stream info. Because the state can be transferred from HTTP stream to TCP stream, this transport socket also participates in the hashing decisions in the HTTP connection pools.
Commit Message: Add passhtrough state over internal connection.
Risk Level: low, new extension
Testing: WIP
Docs Changes: yes
Release Notes: yes
Platform Specific Features:
Fixes: #19274