This adds BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE, and fixes up the error: enumeration value ‘BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE’ not handled in switch [-Werror=switch-enum] build errors it would otherwise cause in libbpf.
Unified · Split
| @@ -168,6 +168,7 @@ enum bpf_prog_type { · 167 unmodified lines | ||
| 168 | 168 | BPF_PROG_TYPE_SK_REUSEPORT, |
| 169 | 169 | BPF_PROG_TYPE_FLOW_DISSECTOR, |
| 170 | 170 | BPF_PROG_TYPE_CGROUP_SYSCTL, |
| 171 | + BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE, | |
| 171 | 172 | }; |
| 172 | 173 | |
| 173 | 174 | enum bpf_attach_type { |
| @@ -1737,12 +1738,19 @@ union bpf_attr { · 1563 unmodified lines | ||
| 1737 | 1738 | * error if an eBPF program tries to set a callback that is not |
| 1738 | 1739 | * supported in the current kernel. |
| 1739 | 1740 | * |
| 1740 | − * The supported callback values that *argval* can combine are: | |
| 1741 | + * *argval* is a flag array which can combine these flags: | |
| 1741 | 1742 | * |
| 1742 | 1743 | * * **BPF_SOCK_OPS_RTO_CB_FLAG** (retransmission time out) |
| 1743 | 1744 | * * **BPF_SOCK_OPS_RETRANS_CB_FLAG** (retransmission) |
| 1744 | 1745 | * * **BPF_SOCK_OPS_STATE_CB_FLAG** (TCP state change) |
| 1745 | 1746 | * |
| 1747 | + * Therefore, this function can be used to clear a callback flag by | |
| 1748 | + * setting the appropriate bit to zero. e.g. to disable the RTO | |
| 1749 | + * callback: | |
| 1750 | + * | |
| 1751 | + * **bpf_sock_ops_cb_flags_set(bpf_sock,** | |
| 1752 | + * **bpf_sock->bpf_sock_ops_cb_flags & ~BPF_SOCK_OPS_RTO_CB_FLAG)** | |
| 1753 | + * | |
| 1746 | 1754 | * Here are some examples of where one could call such eBPF |
| 1747 | 1755 | * program: |
| 1748 | 1756 | * |
| @@ -2136,6 +2136,7 @@ static bool bpf_prog_type__needs_kver(enum bpf_prog_type type) · 2135 unmodified lines | ||
| 2136 | 2136 | case BPF_PROG_TYPE_UNSPEC: |
| 2137 | 2137 | case BPF_PROG_TYPE_TRACEPOINT: |
| 2138 | 2138 | case BPF_PROG_TYPE_RAW_TRACEPOINT: |
| 2139 | + case BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE: | |
| 2139 | 2140 | case BPF_PROG_TYPE_PERF_EVENT: |
| 2140 | 2141 | case BPF_PROG_TYPE_CGROUP_SYSCTL: |
| 2141 | 2142 | return false; |
| @@ -93,6 +93,7 @@ probe_load(enum bpf_prog_type prog_type, const struct bpf_insn *insns, · 92 unmodified lines | ||
| 93 | 93 | case BPF_PROG_TYPE_CGROUP_DEVICE: |
| 94 | 94 | case BPF_PROG_TYPE_SK_MSG: |
| 95 | 95 | case BPF_PROG_TYPE_RAW_TRACEPOINT: |
| 96 | + case BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE: | |
| 96 | 97 | case BPF_PROG_TYPE_LWT_SEG6LOCAL: |
| 97 | 98 | case BPF_PROG_TYPE_LIRC_MODE2: |
| 98 | 99 | case BPF_PROG_TYPE_SK_REUSEPORT: |