envoy icon indicating copy to clipboard operation
envoy copied to clipboard

http3: happy eyeballs

Open alyssawilk opened this issue 1 year ago • 6 comments

Adding happy eyeballs lite for HTTP/3 when going through the grid. This will try one v4 and one v6 address if the first two addresses have differing address families.

Risk Level: medium Testing: new unit tests, e2e tests Docs Changes: inline Release Notes: inline [Optional Runtime guard:] yes

alyssawilk avatar Jun 24 '24 19:06 alyssawilk

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!

:cat:

Caused by: https://github.com/envoyproxy/envoy/pull/34872 was opened by alyssawilk.

see: more, trace.

CC @envoyproxy/runtime-guard-changes: FYI only for changes made to (source/common/runtime/runtime_features.cc).

:cat:

Caused by: https://github.com/envoyproxy/envoy/pull/34872 was opened by alyssawilk.

see: more, trace.

@RyanTheOptimist pre-review question - I'm (mostly) calling this happy eyeballs but it's not really given it's currently doing the first v4/v6 address iff sorted correctly. Have a prefered name or is happy eyeballs with comments on limitations ok?

alyssawilk avatar Jun 24 '24 19:06 alyssawilk

ok I'll just mark this ready for review =P

right now we're only attempting a second connection if the first two entries have differing families. I suspect it's worth the trouble of walking the list but want your take first.

alyssawilk avatar Jun 25 '24 13:06 alyssawilk

also the coverage failure is real - I'll need to add a test of trying to create an alternate pool when it's no longer [family1][family2] once we decide what to do there https://storage.googleapis.com/envoy-pr/3891971/coverage/source/common/http/http3/conn_pool.cc.gcov.html

alyssawilk avatar Jun 26 '24 14:06 alyssawilk

ok hopefully this fixes coverage, and adds the tests we discussed offline

alyssawilk avatar Jun 27 '24 13:06 alyssawilk