feat(netprobe): IPv6 UDP + ICMPv6 flow attribution (#3425) #3528
No reviewers
Labels
No labels
1week
2weeks
Failed compliance check
IP cameras
NATS
Possible security concern
Review effort 1/5
Review effort 2/5
Review effort 3/5
Review effort 4/5
Review effort 5/5
UI
aardvark
accessibility
amd64
api
arm64
auth
back-end
bgp
blog
bug
build
checkers
ci-cd
cleanup
cnpg
codex
core
dependencies
device-management
documentation
duplicate
dusk
ebpf
enhancement
eta 1d
eta 1hr
eta 3d
eta 3hr
feature
fieldsurvey
github_actions
go
good first issue
help wanted
invalid
javascript
k8s
log-collector
mapper
mtr
needs-triage
netflow
network-sweep
observability
oracle
otel
plug-in
proton
python
question
reddit
redhat
research
rperf
rperf-checker
rust
sdk
security
serviceradar-agent
serviceradar-agent-gateway
serviceradar-web
serviceradar-web-ng
siem
snmp
sysmon
topology
ubiquiti
wasm
wontfix
zen-engine
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
carverauto/serviceradar!3528
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/netprobe-udp-icmp"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Extends netprobe flow attribution (built on the #3425 native add-on framework) to cover UDP-over-IPv6 and ICMPv6, on top of the base UDP/ICMP-v4 5-tuple fix.
netprobe (eBPF + userspace)
udpv6_sendmsg/udpv6_recvmsgkprobes — IPv6 UDP never traverses the v4udp_*path, so it was missed entirely. Both share a newemit_udphelper (socket_tuplereads the family → one helper serves v4 + v6).ping_v6_sendmsg/rawv6_sendmsgkprobes;emit_icmp_sendderivesIPPROTO_ICMPV6(58) from the socket address family.attach_optional_probe, renamed fromattach_icmp_probe) — a missing optional hook (IPv6 disabled, renamed symbol) must not take down core TCP/UDP attribution.flow_key_from_record;transport_protocolmaps 58 →"icmpv6".core
FlowAttributionEventtransport string"icmpv6"was being dropped byflow_attribution.ex(it only knewicmp6/ipv6-icmp), so ICMPv6 rows never reachedflow_process_attributions. Bothtransport_to_protomappings (flow_attribution+attributed_flow_joiner) now accept all three variantsicmp6/icmpv6/ipv6-icmp→ 58.Validation
On a kernel 6.8 box (attribution-only mode),
flow_process_attributionsnow carries:udpv6_sendmsgFLOW_EVENTS(flow_to_pidfamily=10 proto=58); end-to-end proto-58 rows land once this core proto-mapping fix is deployed.🤖 Generated with Claude Code