We are pleased to release the 1.0.0 version of pwru
. It is the first major version ever released 🎉
The major changes include:
-
Added support for libpcap-based filtering (#198 by @jschwinger233). Now it's possible to filter packets in the same way as with tcpdump. For example, to trace only TCP SYN packets to 1.1.1.1 run
pwru 'host 1.1.1.1 and tcp[tcpflags] == tcp-syn'
. Please refer to man 7 pcap-filter for the full filtering syntax. -
Added
--filter-track-skb
to trace packets even if they were modified and no longer match given filters (#194 by @jschwinger233). Useful when tracing packets which can be (d)encapsulated, SNAT-ed, encrypted, etc. -
Fixed
pwru
slow loading on Ubuntu due to the bug inpahole
(cilium/ebpf#1084 by @lmb). -
Fixed trace loses due to perf ring buffer being full (#195 by @jschwinger233). Now traces are stored in
BPF_MAP_TYPE_QUEUE
instead ofBPF_MAP_TYPE_PERF_EVENT_ARRAY
. -
The userspace code was re-licensed under Apache-2.0, while the BPF under BSD 2-Clause and GPL-2.0 (#190 by @brb).
Functional changes:
- bc07418 - Update demo cast (@brb)
- fe0c59f - Fix code not matching the comment (@mozillazg)
- f4e7b0e - Update cilium/ebpf to v0.11.0 (@brb)
- 8e2cf58 - release: Fix cross-compilation for arm64 (@brb)
- e7019e2 - make: Cross-compile pwru target (@brb)
- 0b59297 - make: Add cross-compilation of libpcap.a (@brb)
- 8d213f7 - build: Rename arch variable (@brb)
- 5f366c5 - Change licenses (@brb)
- 5b80bae - Derive the L4 hdr from the L3 hdr (@jschwinger233)
- a15be32 - make: Update libpcap.a target (@brb)
- 1e99df0 - Use vendored libpcap.a and related headers (@brb)
- b6e7f19 - Vendor libpcap v1.10.4 under libpcap/ (@brb)
- de5b0e9 - Move libpcap into internal/ (@brb)
- 7ed9082 - Minor: s/TC_ACT_OK/r0/ (@jschwinger233)
- 24a5b42 - Delete obsolete perf output flag: --per-cpu-buffer (@jschwinger233)
- d15f647 - gh/workflows: Use ubuntu-22.04 for running tests (@brb)
- a3c0e90 - make: Compile bare minimal libpcap.a (@brb)
- 55d7fb3 - make: Use absolute path for clang-13 (@brb)
- d0360c9 - build, ci: update Go to 1.20.5 (@tklauser)
- f7f9bdb - Drop legacy filter flags (@jschwinger233)
- b79bd9e - Fix wrong StackOffset for converting cbpf to ebpf (@jschwinger233)
- f470db0 - Update README (@jschwinger233)
- 20cf22a - Update build flow (@jschwinger233)
- c753d31 - Delete obsolete configs (@jschwinger233)
- a877fbf - Update dependencies: add cloudflare/cbpfc (@jschwinger233)
- d68f8f7 - Add --filter-pcap flags (@jschwinger233)
- 7dab5f1 - Intro libpcap pkg for ebpf compilation and injection (@jschwinger233)
- ddddb13 - bpf: delete filter_l3_and_l4, add bpf_printk as placeholder (@jschwinger233)
- 62d0dff - main: pass -target to bpf2go (@lmb)
- 0578811 - main: use rlimit.RemoveMemlock() (@lmb)
- 2b720fb - Add flag --filter-track-skb to enable tracking skb by address (@jschwinger233)
- b9dd685 - bpf: add track_skb logic in bpf program (@jschwinger233)
- cdab14e - Replace BPF_MAP_TYPE_PERF_EVENT_ARRAY by BPF_MAP_TYPE_QUEUE (@jschwinger233)
- d3ace5d - gh/workflows: Use 6.3 instead of 6.0 (@brb)
- 8002526 - gh/workflows: Disable bpf-next (@brb)
- 86a49b9 - gh/workflows: Pin LVH VM images (@brb)
- 7d0f047 - README.md: Fix amd64 -> arm64 typo (@kdrag0n)
- 56f1ae8 - Updated Vagrantfile to use latest Ubuntu Image (@PMaynard)
- 0ea1175 - Add note about debugfs to requirements (@pgampe)
Dependency changes:
- 658dbbc - build(deps): bump github.com/cheggaaa/pb/v3 from 3.1.2 to 3.1.4
- f7c232d - build(deps): bump golang.org/x/tools from 0.10.0 to 0.11.0
- 4554207 - build(deps): bump KyleMayes/install-llvm-action from 1.8.2 to 1.8.3
- ef0d566 - build(deps): bump golang.org/x/sys from 0.9.0 to 0.10.0
- 7fbf855 - build(deps): bump KyleMayes/install-llvm-action from 1.8.1 to 1.8.2
- 5291216 - Bump cilium/little-vm-helper from 0.0.5 to 0.0.7
- 7753fe6 - Bump golang.org/x/tools from 0.9.3 to 0.10.0
- 45794bd - Bump actions/checkout from 3.5.2 to 3.5.3
- b915176 - Bump golang.org/x/sys from 0.8.0 to 0.9.0
- 8f35632 - Bump KyleMayes/install-llvm-action from 1.8.0 to 1.8.1
- 74dc67b - Bump golang.org/x/tools from 0.9.2 to 0.9.3
- beded6f - Bump cilium/little-vm-helper from 0.0.4 to 0.0.5
- ce78405 - Bump golang.org/x/tools from 0.9.1 to 0.9.2
- 3315bec - Bump cilium/little-vm-helper from 0.0.3 to 0.0.4
- 232f2da - Bump actions/setup-go from 4.0.0 to 4.0.1
- 3d78bb2 - Bump golang.org/x/tools from 0.9.0 to 0.9.1
- d87353a - Bump golang.org/x/tools from 0.8.0 to 0.9.0
- 0a08823 - Bump golang.org/x/sys from 0.7.0 to 0.8.0
- bbc414b - Bump actions/checkout from 3.5.0 to 3.5.2
- 347e780 - Bump golang.org/x/tools from 0.7.0 to 0.8.0
- fadf199 - Bump golang.org/x/sys from 0.6.0 to 0.7.0
- f699d81 - Bump KyleMayes/install-llvm-action from 1.7.0 to 1.8.0
- 5106872 - Bump actions/checkout from 3.4.0 to 3.5.0