Skip to content

Instantly share code, notes, and snippets.

admin: {
address: socket_address: {
address: "::1"
port_value: 9090
}
}
static_resources: {
clusters: [{
connect_timeout: "0.5s"
lb_policy: "ROUND_ROBIN"
admin:
address:
socket_address:
address: ::1
port_value: 9090
static_resources:
clusters:
- connect_timeout: 0.5s
lb_policy: ROUND_ROBIN
load_assignment:
admin:
access_log:
- name: envoy.access_loggers.file
typed_config:
'@type': type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
path: /tmp/admin_access.log
address:
socket_address:
address: ::0
ipv4_compat: true
@moderation
moderation / downstream_httpbin_org.yaml
Created April 13, 2021 02:47
envoy_h3_downstream_local_direct_response_h2_upstream
admin:
access_log:
- name: envoy.access_loggers.file
typed_config:
'@type': type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
path: /tmp/admin_access.log
address:
socket_address:
address: ::0
ipv4_compat: true
QUIC servers
MUST send FLOW_CONTROL_ERROR if a STREAM frame with a large offset is received [Transport 4.1]
MUST send TRANSPORT_PARAMETER_ERROR if initial_source_connection_id is missing [Transport 7.3]
MUST send TRANSPORT_PARAMETER_ERROR if original_destination_connection_id is received [Transport 18.2]
MUST send TRANSPORT_PARAMETER_ERROR if preferred_address, is received [Transport 18.2]
MUST send TRANSPORT_PARAMETER_ERROR if retry_source_connection_id is received [Transport 18.2]
MUST send TRANSPORT_PARAMETER_ERROR if stateless_reset_token is received [Transport 18.2]
MUST send TRANSPORT_PARAMETER_ERROR if max_udp_payload_size < 1200 [Transport 7.4 and 18.2]
MUST send TRANSPORT_PARAMETER_ERROR if ack_delay_exponen > 20 [Transport 7.4 and 18.2]
MUST send TRANSPORT_PARAMETER_ERROR if max_ack_delay >= 2^14 [Transport 7.4 and 18.2]
hyperfine --ignore-failure --warmup 5 --runs 100 \
'~/rust/curl/src/curl --silent --alt-svc ~/.altsvc.cache https://x1.local:4433/get' \
'~/rust/h3/target/x86_64-unknown-linux-musl/release/examples/client https://x1.local:4433/get' \
'~/proxygen/proxygen/_build/proxygen/httpserver/hq -logdir=/tmp -mode=client -early_data=true -connect_udp=true -draft-version=29 -port=4433 -host=x1.local -path=/get' \
'~/istio/pkg/test/echo/cmd/client/client --http3 https://x1.local:4433/get' \
'~/rust/neqo/target/release/neqo-client --output-read-data --resume --alpn h3-29 https://x1.local:4433/get' \
'~/rust/quiche/tools/apps/target/x86_64-unknown-linux-musl/release/quiche-client https://x1.local:4433/get' \
'~/rust/quinn/target/x86_64-unknown-linux-musl/release/examples/h3_client https://x1.local:4433/get'
Benchmark #1: ~/rust/curl/src/curl --silent --alt-svc ~/.altsvc.cache https://x1.local:4433/get
@moderation
moderation / envoy_envoycon_2020.opml
Last active October 14, 2020 23:59
OPML for Envoy dependencies
<?xml version="1.0" encoding="UTF-8"?>
<opml version="1.0">
<head>
<title>Envoy dependencies</title>
</head>
<body>
<outline text="software" title="software">
<outline type="rss" text="Recent Commits to abseil-cpp:master" title="Recent Commits to abseil-cpp:master" xmlUrl="https://github.com/abseil/abseil-cpp/commits/master.atom" htmlUrl="https://github.com/abseil/abseil-cpp/commits/master"/>
<outline type="rss" text="Recent Commits to cel-cpp:master" title="Recent Commits to cel-cpp:master" xmlUrl="https://github.com/google/cel-cpp/commits/master.atom" htmlUrl="https://github.com/google/cel-cpp/commits/master"/>
@moderation
moderation / acl.cue
Created February 19, 2020 02:37
CUE version of Tailscale acl.json
// Declare static groups of users beyond those in the identity service
Groups: "group:eng": ["u1@example.com", "u2@example.com"]
// Declare convenient hostname aliases to use in place of IP addresses
Hosts: h222: "100.2.2.2"
// Access control list
ACLs: [{
Action: "accept"
// Match any of several users
Users: ["a@example.com", "b@example.com"]
cargo run --release --verbose --example tlsserver -- --certs ~/Library/letsencrypt/cert.pem --key ~/Library/letsencrypt/rsa_key.pem --verbose -p 10443 http
Fresh cfg-if v0.1.2
Fresh safemem v0.2.0
Fresh utf8-ranges v1.0.0
Fresh slab v0.3.0
Fresh libc v0.2.26
Fresh scopeguard v0.3.2
Fresh byteorder v1.1.0
Fresh log v0.3.8
Fresh time v0.1.38

First create a map to propagate headers and then variables to hold the header names and the header values.

prop             map[string]string
headern          = []string{"l5dctxtrace", "xrequestidid", "xotspancontextontext", "xb3traceid", "xb3spanid", "xb3parentspanid", "xb3sampled", "xb3flags"}
headerv          = []string{"l5d-ctx-trace", "x-request-id", "x-ot-span-context", "x-b3-traceid", "x-b3-spanid", "x-b3-parentspanid", "x-b3-sampled", "x-b3-flags"}

In the function that receives the inbound HTTP request, capture the headers (passed by Envoy)