tcp_bpf.readme 1.1 KB

12345678910111213141516171819202122232425262728
  1. This file describes how to run the tcp_*_kern.o tcp_bpf (or socket_ops)
  2. programs. These programs attach to a cgroupv2. The following commands create
  3. a cgroupv2 and attach a bash shell to the group.
  4. mkdir -p /tmp/cgroupv2
  5. mount -t cgroup2 none /tmp/cgroupv2
  6. mkdir -p /tmp/cgroupv2/foo
  7. bash
  8. echo $$ >> /tmp/cgroupv2/foo/cgroup.procs
  9. Anything that runs under this shell belongs to the foo cgroupv2. To load
  10. (attach) one of the tcp_*_kern.o programs:
  11. bpftool prog load tcp_basertt_kern.o /sys/fs/bpf/tcp_prog
  12. bpftool cgroup attach /tmp/cgroupv2/foo sock_ops pinned /sys/fs/bpf/tcp_prog
  13. bpftool prog tracelog
  14. "bpftool prog tracelog" will continue to run printing the BPF log buffer.
  15. The tcp_*_kern.o programs use special print functions to print logging
  16. information (if enabled by the ifdef).
  17. If using netperf/netserver to create traffic, you need to run them under the
  18. cgroupv2 to which the BPF programs are attached (i.e. under bash shell
  19. attached to the cgroupv2).
  20. To remove (unattach) a socket_ops BPF program from a cgroupv2:
  21. bpftool cgroup detach /tmp/cgroupv2/foo sock_ops pinned /sys/fs/bpf/tcp_prog