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