Files
ja4-platform/services/ja4ebpf/internal/parser/http2.go
Jacquin Antoine f0c8fe81c6 feat(ja4ebpf): add multi-interface TC, LPM_TRIE ignore_src, unit tests, and fix bugs
- Add multi-interface TC attachment (default "any" = all UP interfaces)
- Add BPF LPM_TRIE map ignored_src for kernel-side CIDR filtering
- Add userspace ignore_src filtering for SSL/accept4 path via net.IPNet.Contains()
- Add AcceptCache for fd→SessionKey correlation with TTL and Close()
- Add 5 test files covering writer, procutil, dispatcher, accept_cache, and cmd
- Fix formatTCPOptions infinite loop on EOL (case 0 break→return)
- Fix pseudoOrderToShort panic on empty slice (negative cap)
- Fix AcceptCache goroutine leak (add done channel + Close())
- Update config.yml.example with interfaces, listen_ports, ignore_src
- Rewrite docs/services/ja4ebpf.md (was massively stale: XDP, RingBuffer, etc.)
- Fix stale XDP/RingBuffer references in docs/architecture.md, thesis, tls.go

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 01:49:26 +02:00

36 lines
1.3 KiB
Go

// Package parser fournit les parseurs pour les protocoles HTTP/1.x, HTTP/2 et TLS.
//
// Le parsing HTTP/2 est désormais assuré par internal/parser/h2conn.go qui utilise
// golang.org/x/net/http2.Framer et golang.org/x/net/http2/hpack.Decoder pour une
// conformité RFC complète, incluant la table dynamique HPACK et l'assemblage
// HEADERS+CONTINUATION.
//
// Ce fichier ne conserve que les constantes et le filtre d'en-têtes partagés.
package parser
// hpackCapturedHeaders est la liste des en-têtes HTTP/2 dont on capture la valeur.
// Utilisé par h2conn.go pour filtrer les en-têtes décodés.
var HpackCapturedHeaders = map[string]bool{
"user-agent": true,
"accept": true,
"accept-encoding": true,
"accept-language": true,
"content-type": true,
"x-request-id": true,
"x-trace-id": true,
"x-forwarded-for": true,
"sec-ch-ua": true,
"sec-ch-ua-mobile": true,
"sec-ch-ua-platform": true,
"sec-fetch-dest": true,
"sec-fetch-mode": true,
"sec-fetch-site": true,
":method": true,
":path": true,
":authority": true,
":scheme": true,
":status": true,
"cookie": true,
"referer": true,
"host": true,
}