Repository navigation
docs(http3): Azure L7 지원 현황과 AGFC 실측 정리 - #70
Conversation
HTTP/3 개요와 Azure L7 공개 지원 정보를 실제 AGFC 연결 결과 및 별도 로컬 성능 관측과 구분한다. 재현 가능한 로컬 sample과 비식별화한 실측 근거를 보존하고, 신규 topic을 허용하도록 문서 수 고정 테스트를 catalog 검증으로 바꾼다. 공식 원문 대조와 Learn MCP 재검증 상태를 구분해 needs-review를 유지한다. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🟡 Changes recommended
Moderate issues remain in origin validation, benchmark setup/control behavior, and catalog-preservation testing.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Adds Azure HTTP/3 support documentation, sanitized AGFC observations, and a reproducible Dockerized Go benchmark with recorded results.
Changes:
- Adds the HTTP/3 research topic and taxonomy entries.
- Adds benchmark implementation, tests, orchestration, and evidence artifacts.
- Updates documentation catalog validation for dynamically added topics.
File summaries
| File | Reviewed change |
|---|---|
tests/docs/test_topics.py |
Canonical topic validation; preservation baseline requires follow-up. |
tests/docs/test_faceted_discovery.py |
Catalog-derived discovery counts. |
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/mobile-network-bench/transport_test.go |
Transport integration tests. |
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/mobile-network-bench/summary.go |
Benchmark summaries and percentile calculations. |
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/mobile-network-bench/server.go |
Local HTTP/2 and HTTP/3 server. |
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/mobile-network-bench/sample.yml |
Benchmark sample manifest. |
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/mobile-network-bench/run.sh |
Docker and network orchestration; setup and control behavior require changes. |
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/mobile-network-bench/results/2026-09-15/trials.jsonl |
Raw benchmark trials. |
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/mobile-network-bench/results/2026-09-15/summary.json |
Recorded benchmark summaries. |
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/mobile-network-bench/results/2026-09-15/network.json |
Recorded network evidence. |
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/mobile-network-bench/results/2026-09-15/environment.json |
Run metadata and checksums. |
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/mobile-network-bench/README.md |
Usage and methodology documentation; capability requirements need clarification. |
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/mobile-network-bench/payload.go |
Payload handling and verification. |
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/mobile-network-bench/main.go |
CLI and result validation; origin validation requires changes. |
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/mobile-network-bench/go.sum |
Dependency checksums. |
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/mobile-network-bench/go.mod |
Go module definition. |
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/mobile-network-bench/Dockerfile |
Pinned benchmark image. |
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/mobile-network-bench/client.go |
HTTP/2 and HTTP/3 measurement client. |
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/mobile-network-bench/bench_test.go |
Benchmark unit tests. |
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/mobile-network-bench/.dockerignore |
Docker build-context restrictions. |
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/agfc-protocol-check/sample.yml |
AGFC artifact manifest. |
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/agfc-protocol-check/result.json |
Sanitized AGFC observations. |
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/agfc-protocol-check/README.md |
AGFC artifact scope documentation. |
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/index.md |
HTTP/3 research documentation. |
docs-taxonomy.yml |
Service and source taxonomy entries. |
Review details
Suppressed comments (4)
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/mobile-network-bench/main.go:48
- This validation still accepts origin strings such as
https://server:8443?(ForceQueryis true whileRawQueryis empty) andhttps://server:8443/%2F(Pathis/whileRawPathis non-empty). Because the unnormalized original string is then concatenated with/bytes, these inputs are accepted but every request targets the wrong path/query and the run fails instead of rejecting the invalid origin. RejectForceQueryand non-emptyRawPath(or validate a normalized origin), and add regression cases for both forms.
if u.Scheme != "https" || u.Hostname() == "" || u.User != nil || u.RawQuery != "" || u.Fragment != "" || (u.Path != "" && u.Path != "/") {
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/mobile-network-bench/run.sh:147
- The
unshapedbranch still installs anetemqdisc withlimit 10000; the archivednetwork.jsonrecords that qdisc as well. This contradicts the documented no-limit/no-added-queue baseline and means these measurements are not a true no-qdisc control; either usenoqueue/remove the qdisc and regenerate the recorded dataset, or document and justify the queue limit.
docker exec "$router" tc qdisc replace dev "$device" root netem limit 10000
docs/services/azure-application-gateway-for-containers/http3-mobile-performance/samples/mobile-network-bench/run.sh:100
- The client drops
CAP_NET_RAW, but the script later invokespingunderset -e. On Docker/Linux hosts that do not permit unprivileged ICMP sockets, this returnsOperation not permittedand aborts every profile before measurements. AddNET_RAWto the client or explicitly configure and validate an unprivileged ping socket, then reflect that choice in the sample requirements.
--cap-drop ALL --cap-add NET_ADMIN --read-only \
tests/docs/test_topics.py:1075
- This makes the expected set come from the same current
servicestree that the catalog scans, so deleting an otherwise-unreferenced canonicalindex.mdor whole topic makes both sides shrink and still passes. The old fixed count caught that class of accidental content loss; keep an independent baseline (for example, a maintained manifest/expected path set or another minimum-preservation check) while allowing new topics dynamically.
assert {document.relative_path for document in catalog.documents} == canonical_paths
assert len(catalog.documents) == len(canonical_paths)
assert set(catalog.topics) == {path.parts[1:3] for path in canonical_paths}
- Files reviewed: 23/25 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
빈 query와 fragment가 있는 URL을 거부하고 origin을 파싱 결과로 구성한다. 클라이언트의 ICMP datagram 소켓 범위를 명시해 NET_RAW 추가 없이 ping 동작을 보장한다. 세 컨테이너의 NET_ADMIN 요구사항과 공통 netem 큐 한도를 설명하고, 문서 수가 유지되어도 독립 기준선 문서 누락을 검출하는 회귀 테스트를 추가한다. 기존 실측 데이터는 변경하지 않는다. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot 리뷰 검토 및 처리 결과수정 커밋: 4698766
검증
리뷰 본문에만 있던 추가 의견 4건은 이 코멘트에 처리 근거를 정리했습니다. 별도 인라인 스레드가 없으므로 resolve 대상은 실제 생성된 인라인 스레드 1개입니다. |
요약
리뷰 시 주의사항
verification_status: needs-review를 유지합니다.검증
python -m pytest tests/docs -q: 1,882 passedmkdocs build --strict, search-index 검사, pre-Pages 감사 통과 (62/62 기준선 문서 보존, 현재 67개 문서)go test -race -count=1 ./...,go mod verify,gofmt,bash -n run.sh통과GitHub Copilot 리뷰를 요청합니다.