Adding support for helper function bpf_getsockops to socket_ops BPF programs. This patch only supports TCP_CONGESTION.
Showing the changes to include/uapi/linux (1 of 3 files). Show all
Unified · Split
| @@ -613,12 +613,22 @@ union bpf_attr { · 612 unmodified lines | ||
| 613 | 613 | * int bpf_setsockopt(bpf_socket, level, optname, optval, optlen) |
| 614 | 614 | * Calls setsockopt. Not all opts are available, only those with |
| 615 | 615 | * integer optvals plus TCP_CONGESTION. |
| 616 | − * Supported levels: SOL_SOCKET and IPROTO_TCP | |
| 616 | + * Supported levels: SOL_SOCKET and IPPROTO_TCP | |
| 617 | 617 | * @bpf_socket: pointer to bpf_socket |
| 618 | − * @level: SOL_SOCKET or IPROTO_TCP | |
| 618 | + * @level: SOL_SOCKET or IPPROTO_TCP | |
| 619 | 619 | * @optname: option name |
| 620 | 620 | * @optval: pointer to option value |
| 621 | − * @optlen: length of optval in byes | |
| 621 | + * @optlen: length of optval in bytes | |
| 622 | + * Return: 0 or negative error | |
| 623 | + * | |
| 624 | + * int bpf_getsockopt(bpf_socket, level, optname, optval, optlen) | |
| 625 | + * Calls getsockopt. Not all opts are available. | |
| 626 | + * Supported levels: IPPROTO_TCP | |
| 627 | + * @bpf_socket: pointer to bpf_socket | |
| 628 | + * @level: IPPROTO_TCP | |
| 629 | + * @optname: option name | |
| 630 | + * @optval: pointer to option value | |
| 631 | + * @optlen: length of optval in bytes | |
| 622 | 632 | * Return: 0 or negative error |
| 623 | 633 | * |
| 624 | 634 | * int bpf_skb_adjust_room(skb, len_diff, mode, flags) |
| @@ -721,7 +731,8 @@ union bpf_attr { · 96 unmodified lines | ||
| 721 | 731 | FN(sock_map_update), \ |
| 722 | 732 | FN(xdp_adjust_meta), \ |
| 723 | 733 | FN(perf_event_read_value), \ |
| 724 | − FN(perf_prog_read_value), | |
| 734 | + FN(perf_prog_read_value), \ | |
| 735 | + FN(getsockopt), | |
| 725 | 736 | |
| 726 | 737 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper |
| 727 | 738 | * function eBPF program intends to call |