Download Latest Version pwru-linux-amd64.tar.gz (4.2 MB)
Email in envelope

Get an email when there's a new version of pwru

Home / v1.0.6
Name Modified Size InfoDownloads / Week
Parent folder
pwru-linux-arm64.tar.gz.sha256sum 2024-04-24 90 Bytes
pwru-linux-amd64.tar.gz.sha256sum 2024-04-24 90 Bytes
pwru-linux-arm64.tar.gz 2024-04-24 3.5 MB
pwru-linux-amd64.tar.gz 2024-04-24 3.9 MB
README.md 2024-04-24 5.3 kB
Release v1.0.6 source code.tar.gz 2024-04-24 3.9 MB
Release v1.0.6 source code.zip 2024-04-24 4.7 MB
Totals: 7 Items   16.0 MB 0

We are pleased to release the 1.0.6 version of pwru.

The major changes include:

  • pwru can track non-skb functions specified via --filter-non-skb-funcs (#355). For example, one can use pwru --filter-non-skb-funcs='xfrm_state_look_at,xfrm_state_lookup,xfrm_state_lookup_byaddr,xfrm_state_lookup_byspi' to enrich IPsec packet traces.
  • Added tracing of skb's even if they were kfree-d (#354). By specifying --filter-track-skb-by-stackid, one can trace packets if they were freed, and then rebuilt (e.g., L2 bridge traffic).
  • pwru is now able to output in JSON (#285). For example:

    pwru --output-tuple --output-meta --output-json 'host 1.1.1.1' | jq .

    <..> { "skb": "0xffff8fad947baf00", "cpu": 10, "process": "/usr/lib/firefox/firefox:1416291", "func": "kfree_skbmem", "iface": "0", "proto": 2048, "len": 94, "tuple": { "saddr": "1.1.1.1", "daddr": "192.168.1.159", "sport": 53, "dport": 34815, "proto": 17 } } * (De)attaching kprobes got ~1.2 times faster (#277).

Functional changes:

  • 4111cd8 - Remove skb-func from non-skb-func slice (@jschwinger233)
  • 0257005 - Remove duplicate funcs from --filter-non-skb-funcs (@jschwinger233)
  • 65d506d - Add --filter-non-skb-funcs (@jschwinger233)
  • 088a54a - bpf: kprobe_skb_by_stackid (@jschwinger233)
  • 3694303 - Implement --filter-track-skb-by-stackid (@jschwinger233)
  • a7cb537 - Print header line for once (@jschwinger233)
  • cebc409 - Avoid printing garvage skb written by previous writer (@YutaroHayakawa)
  • e4b8499 - reduce the build context sent during a docker build (@lpmi-13)
  • d10f9c4 - Output: Add json output (@darox)
  • 9ea2ba5 - Attach tracing of tc-bpf concurrently (@Asphaltt)
  • 47a823e - chore: Show detaching progress always (@Asphaltt)
  • 4ee0356 - Change license of build.go to Apache-2 (@brb)
  • 359e753 - chore: Update copyright statement of bpf_prog.go (@Asphaltt)
  • 29a7ef0 - chore: Add comment for addr of tc bpf prog (@Asphaltt)
  • 20a13ad - Reject to run --filter-trace-tc when not support fentry/fexit (@Asphaltt)
  • 8945a2b - Fix get_func_ip for --filter-trace-tc (@Asphaltt)
  • b47cfab - Fix go.mod (@Asphaltt)
  • f539556 - Flush output file (@Asphaltt)
  • 53e8f30 - Accelerate attaching/detaching kprobes (@Asphaltt)
  • 817bf7c - Add CODEOWNERS (@brb)
  • d53537a - Update .gitignore (@brb)
  • ce2d747 - Update cilium/ebpf to v0.13.0 (@brb)
  • 6258125 - gh/github: Bump LVH dependency in pwru-test (@brb)
  • 724fd83 - Revert "gh/workflows: Use the kprobe backend" (@Asphaltt)
  • f7c6303 - Do kprobe.multi on addresses instead of symbols (@Asphaltt)
  • 7b444b3 - Refactor code of getting kprobe_skb bpf prog (@Asphaltt)
  • 5a90a02 - gh/workflows: Bump LVH action depedency (@brb)
  • 1adec8b - gh/workflows: Change test kernels (@brb)
  • 8f10df1 - gh/workflows: Do not set dns-resolver (@brb)
  • 0b3d5e1 - Add actions: pwru-run, pwru-log (@jschwinger233)
  • f4087c2 - README.md: fix kernel config table rendering (@tklauser)
  • 5919ba7 - README.md: adjust kernel config table (@tklauser)
  • 860705a - Automatically fallback to kprobe backend if available_filter_functions not found (@jschwinger233)
  • 58ecef0 - Filter with available_filter_functions only for kprobe-multi (@jschwinger233)
  • af9ed1c - Remove unused relative timestamp config option (@tklauser)
  • 05cc882 - Bump Go to 1.21.5 (@tklauser)
  • fd88377 - internal/pwru: replace unmaintained mitchellh/go-ps dependency (@tklauser)

Dependency changes:

  • 133b041 - build(deps): bump actions/upload-artifact from 4.3.1 to 4.3.3
  • 5c2c5b3 - build(deps): bump github.com/cilium/ebpf from 0.14.0 to 0.15.0
  • edaa366 - build(deps): bump actions/download-artifact from 4.1.4 to 4.1.5
  • 5a9c525 - build(deps): bump golang.org/x/sync from 0.6.0 to 0.7.0
  • a591840 - build(deps): bump github.com/cilium/ebpf from 0.13.2 to 0.14.0
  • 43200e2 - build(deps): bump golang.org/x/net from 0.21.0 to 0.24.0
  • 0a9e2d1 - build(deps): bump cilium/little-vm-helper from 0.0.16 to 0.0.17
  • c825d7f - build(deps): bump actions/checkout from 4.1.1 to 4.1.2
  • 4ca5c81 - build(deps): bump golang.org/x/sys from 0.17.0 to 0.18.0
  • e2d32b2 - build(deps): bump actions/download-artifact from 4.1.3 to 4.1.4
  • 17830c3 - build(deps): bump actions/download-artifact from 4.1.2 to 4.1.3
  • 97398fc - build(deps): bump golang.org/x/sync from 0.3.0 to 0.6.0
  • fa55033 - build(deps): bump github.com/cilium/ebpf from 0.13.0 to 0.13.2
  • 18c7bdf - build(deps): bump actions/upload-artifact from 4.3.0 to 4.3.1
  • 9e40901 - build(deps): bump actions/download-artifact from 4.1.1 to 4.1.2
  • 732586d - build(deps): bump golang.org/x/net from 0.20.0 to 0.21.0
  • b8c253d - build(deps): bump github.com/cheggaaa/pb/v3 from 3.1.4 to 3.1.5
  • 5d8da3d - build(deps): bump github.com/jsimonetti/rtnetlink from 1.4.0 to 1.4.1
  • b1a5273 - build(deps): bump actions/upload-artifact from 4.0.0 to 4.3.0
  • 2172e77 - build(deps): bump actions/download-artifact from 4.1.0 to 4.1.1
  • 587aa49 - build(deps): bump golang.org/x/net from 0.19.0 to 0.20.0
  • 4aceb7f - build(deps): bump actions/upload-artifact from 3.1.3 to 4.0.0
  • 50bd586 - build(deps): bump golang.org/x/sys from 0.15.0 to 0.16.0
Source: README.md, updated 2024-04-24