Skip to content

Releases: cilium/pwru

Release v1.0.0

14 Jul 13:43
Compare
Choose a tag to compare

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 in pahole (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 of BPF_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:

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

Release v0.0.9

17 Mar 15:55
Compare
Choose a tag to compare

We are pleased to release the 0.0.9 version of pwru.

The major changes include:

  • Fix the IPv6 filtering, in particular --filter-{src,dst}-ip and --filter-proto=icmp6 (#157 and #165).

Functional changes:

Dependency changes:

  • c895af3 - Bump actions/checkout from 3.3.0 to 3.4.0
  • 53e2e55 - Bump actions/setup-go from 3.5.0 to 4.0.0
  • 6654c61 - Bump actions/cache from 3.3.0 to 3.3.1
  • 9e64551 - Bump actions/cache from 3.2.6 to 3.3.0
  • 84d00b7 - Bump golang.org/x/tools from 0.5.0 to 0.7.0
  • a097dfa - Bump golang.org/x/sys from 0.5.0 to 0.6.0
  • a33df81 - Bump github.com/cheggaaa/pb/v3 from 3.1.0 to 3.1.2
  • 227c9cf - Bump actions/cache from 3.2.5 to 3.2.6
  • 4b97395 - Bump cilium/ebpf to v0.10.0
  • 0cbf834 - Bump actions/cache from 3.2.4 to 3.2.5
  • a1ddc97 - Bump golang.org/x/sys from 0.4.0 to 0.5.0

Release v0.0.8

07 Feb 10:47
Compare
Choose a tag to compare

We are pleased to release the 0.0.8 version of pwru.

The major changes include:

  • New filter --filter-port to allow users to filter either source or destination L4 port (#141).
  • Print packet drop reason from kfree_skb_reason (#148). For example:
     kfree_skb_reason(SKB_DROP_REASON_NETFILTER_DROP) 2.2.2.2:52276->1.1.1.1:4240(tcp)
    

Functional changes:

Dependency changes (dependabot):

  • 1a55e48 - Bump actions/cache from 3.2.3 to 3.2.4
  • 4c5f6c1 - Bump KyleMayes/install-llvm-action from 1.6.1 to 1.7.0
  • 7fffe1f - Bump actions/cache from 3.2.2 to 3.2.3
  • 2c1d48c - Bump golang.org/x/tools from 0.4.0 to 0.5.0
  • f003c72 - Bump actions/upload-artifact from 3.1.1 to 3.1.2
  • afa3cf1 - Bump golang.org/x/sys from 0.3.0 to 0.4.0
  • 1039b26 - Bump actions/checkout from 3.2.0 to 3.3.0
  • f1790aa - Bump actions/cache from 3.2.0 to 3.2.2
  • 5b5f886 - Bump actions/cache from 3.0.11 to 3.2.0
  • 8d5ac07 - Bump cilium/little-vm-helper
  • eea1a65 - Bump actions/checkout from 3.1.0 to 3.2.0

Release v0.0.7

14 Dec 14:44
Compare
Choose a tag to compare

We are pleased to release the 0.0.7 version of pwru.

The major changes include:

  • Blazingly fast load time thanks to the multi-link kprobes #99.
  • Continuous integration tests #111.
  • Fix of the IPv6 filtering #121.

12fcaef - make: Use git safe.directory instead of mangling uid/gid (@brb)
120e969 - Add IPv6 test case (@brb)
6b118cf - Fix ipv6 filtering (@brb)
fe62d2c - Small vars declaration cleanup (@brb)
ee7e5e7 - Add type shim for kprobes representation in Go (@brb)
820fbb2 - Add multi-link kprobe support (@brb)
feba59a - Add HaveBPFLinkKprobeMulti (@brb)
5bd118a - bpf: Add kprobe.multi (@brb)
19ca0ed - bpf: Prepare for bpf_get_func_ip() (@brb)
93cf26f - Bump actions/setup-go from 3.4.0 to 3.5.0 (dependabot)
f37867b - Bump KyleMayes/install-llvm-action from 1.6.0 to 1.6.1 (dependabot)
f4bb669 - Bump actions/setup-go from 3.3.1 to 3.4.0 (dependabot)
32cf9dd - Bump actions/upload-artifact from 3.1.0 to 3.1.1 (dependabot)
fbdd809 - Bump cilium/little-vm-helper (dependabot)
b8de3be - Bump cilium/little-vm-helper (dependabot)
3d205fe - Add CI tests (@brb)
0a23f88 - Add hidden --ready-file (@brb)
0a62618 - Add --output-file to log traces (@brb)
2692f2e - Update after renaming to main branch (@tklauser)

Release v0.0.6

22 Nov 08:27
Compare
Choose a tag to compare

We are pleased to release the 0.0.6 version of pwru.

The major changes include:

  • Fix for a failure when running on the 6.0.8 kernel.

286623e - Bump cilium/ebpf to latest (@brb)
7afe5d8 - Simplify README wrt to debugfs mount (@brb)
9b0acba - Add flag to attach to all available kernel modules (@varunkumare99)
ccdcad9 - Update docker/Kubernetes deployment instructions in README (@anubhabMajumdar)
d7e5de9 - Bump actions/setup-go from 3.3.0 to 3.3.1 (dependabot)
e35c400 - Bump KyleMayes/install-llvm-action from 1.5.5 to 1.6.0 (dependabot)
4dca6ab - [StepSecurity] ci: Harden GitHub Actions (StepSecurity Bot)
4451809 - Bump actions/cache from 3.0.10 to 3.0.11 (dependabot)
43d5841 - Bump github.com/cilium/ebpf from 0.9.2 to 0.9.3 (dependabot)
3a5c32e - Bump actions/cache from 3.0.9 to 3.0.10 (dependabot)
ff8c2d0 - Bump actions/cache from 3.0.8 to 3.0.9 (dependabot)
63c5838 - Filter out non-available_filter_functions (@brb)
4c42375 - Add example how to run on K8s (@brb)
e8ce718 - Update Dockerfile to use llvm 14 and Go 1.19.1 (@jauderho)
5ded771 - Bump cilium/ebpf to v0.9.2 (@brb)
634b700 - Bump KyleMayes/install-llvm-action from 1.5.4 to 1.5.5 (dependabot)
84f82d5 - gh/workflows: Remove slack notification (@brb)

Release v0.0.5

22 Sep 12:30
Compare
Choose a tag to compare

We are pleased to release the 0.0.5 version of pwru.

The major changes include:

  • pwru is published in a Docker image, and can be run with
    docker run --privileged --rm -t --pid=host cilium/pwru [args].
  • Changes to the output format (added CPU, made Timestamp optional).
  • Fix function offsets to handle endbr64 in the kernel code.

f9c08d7 - Update README.md (@brb)
93fee0a - Make timestamp optional (@brb)
5c28bfc - Add CPU ID to output (@brb)
f166870 - Try to fix endbr64 kprobe mess (@brb)
73eaf6e - Bump 8398a7/action-slack from 3.13.1 to 3.13.2 (dependabot)
d01a490 - Bump actions/cache from 3.0.7 to 3.0.8 (dependabot)
fb370b6 - Bump 8398a7/action-slack from 3.13.0 to 3.13.1 (dependabot)
8a36dc0 - add multi-stage builds to minimize docker image size (@voldemorte)
bb24e94 - Bump actions/cache from 3.0.6 to 3.0.7 (dependabot)
c4aea7d - Bump actions/cache from 3.0.5 to 3.0.6 (dependabot)

Release v0.0.4

21 Jul 16:56
Compare
Choose a tag to compare

We are pleased to release the 0.0.4 version of pwru.

The major changes include:

Full changelog:

Release v0.0.3

25 Jan 20:37
Compare
Choose a tag to compare

We are pleased to release the 0.0.3 version of pwru.

The major changes include:

Full changelog:

pwru v0.0.2

25 Oct 14:56
@brb brb
Compare
Choose a tag to compare

We are pleased to release the 0.0.2 version of pwru.

The major changes include:

  • The new filter param --filter-func which selects to which functions pwru should attach the BPF tracing programs. It accepts regexp syntax (RE2). This can be used to drastically reduce the load time (@duanjiong).
  • IPv6 support both in filtering and outputting tuples (@duanjiong).
  • Optimize the configuration retrieval in the BPF programs (@duanjiong).

The pwru asset includes the statically linked binary for x86_64 arch (amd64) which includes the eBPF bytecode.

Contributors:

pwru v0.0.1

15 Oct 18:42
@brb brb
Compare
Choose a tag to compare

We are pleased to release the very first version of pwru.

The first version includes the basic filtering based on the following filters:

  • --filter-mark (skb mark)
  • --filter-proto (L4 protocol; udp, tcp, icmp)
  • --filter-{src,dst}-ip (IPv4 addr)
  • --filter-{src,dst}-port (TCP/UDP port)

The output can be enhanced by the following options:

  • --output-tuple (prints L3/L4 tuple)
  • --output-skb (prints skb with BTF)
  • --output-meta (prints some skb's metadata)
  • --output-relative-timestamp (prints relative timestamp; useful for identifying performance issues)

The pwru asset includes the statically linked binary for x86_64 arch (amd64) which includes the eBPF bytecode.

Contributors: