Re: [RFC bpf-next v2 7/8] bpf: add documentation for eBPF helpers (51-57)

2018-04-10 Thread Andrey Ignatov
Quentin Monnet  [Tue, 2018-04-10 07:43 -0700]:
> + * int bpf_bind(struct bpf_sock_addr_kern *ctx, struct sockaddr *addr, int 
> addr_len)
> + *   Description
> + *   Bind the socket associated to *ctx* to the address pointed by
> + *   *addr*, of length *addr_len*. This allows for making outgoing
> + *   connection from the desired IP address, which can be useful for
> + *   example when all processes inside a cgroup should use one
> + *   single IP address on a host that has multiple IP configured.
> + *
> + *   This helper works for IPv4 and IPv6, TCP and UDP sockets. The
> + *   domain (*addr*\ **->sa_family**) must be **AF_INET** (or
> + *   **AF_INET6**). Looking for a free port to bind to can be
> + *   expensive, therefore binding to port is not permitted by the
> + *   helper: *addr*\ **->sin_port** (or **sin6_port**, respectively)
> + *   must be set to zero.
> + *
> + *   As for the remote end, both parts of it can be overridden,
> + *   remote IP and remote port. This can be useful if an application
> + *   inside a cgroup wants to connect to another application inside
> + *   the same cgroup or to itself, but knows nothing about the IP
> + *   address assigned to the cgroup.

The last paragraph ("As for the remote end ...") is not relevant to
bpf_bind() and should be removed. It's about sys_connect hook itself
that can call to bpf_bind() but also has other functionality (and that
other functionality is described by this paragraph).


-- 
Andrey Ignatov
--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH bpf-next v3 7/8] bpf: add documentation for eBPF helpers (51-57)

2018-04-17 Thread Andrey Ignatov
Quentin Monnet  [Tue, 2018-04-17 07:36 -0700]:
> Add documentation for eBPF helper functions to bpf.h user header file.
> This documentation can be parsed with the Python script provided in
> another commit of the patch series, in order to provide a RST document
> that can later be converted into a man page.
> 
> The objective is to make the documentation easily understandable and
> accessible to all eBPF developers, including beginners.
> 
> This patch contains descriptions for the following helper functions:
> 
> Helpers from Lawrence:
> - bpf_setsockopt()
> - bpf_getsockopt()
> - bpf_sock_ops_cb_flags_set()
> 
> Helpers from Yonghong:
> - bpf_perf_event_read_value()
> - bpf_perf_prog_read_value()
> 
> Helper from Josef:
> - bpf_override_return()
> 
> Helper from Andrey:
> - bpf_bind()
> 
> v3:
> - bpf_perf_event_read_value(): Fix time of selection for perf event type
>   in description. Remove occurences of "cores" to avoid confusion with
>   "CPU".
> - bpf_bind(): Remove last paragraph of description, which was off topic.
> 
> Cc: Lawrence Brakmo 
> Cc: Yonghong Song 
> Cc: Josef Bacik 
> Cc: Andrey Ignatov 
> Signed-off-by: Quentin Monnet 
> 
> fix patch 7: Yonghong and Andrey
> ---
>  include/uapi/linux/bpf.h | 178 
> +++
>  1 file changed, 178 insertions(+)
> 
> diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
> index dd79a1c82adf..350459c583de 100644
> --- a/include/uapi/linux/bpf.h
> +++ b/include/uapi/linux/bpf.h
> + *
> + * int bpf_bind(struct bpf_sock_addr_kern *ctx, struct sockaddr *addr, int 
> addr_len)
> + *   Description
> + *   Bind the socket associated to *ctx* to the address pointed by
> + *   *addr*, of length *addr_len*. This allows for making outgoing
> + *   connection from the desired IP address, which can be useful for
> + *   example when all processes inside a cgroup should use one
> + *   single IP address on a host that has multiple IP configured.
> + *
> + *   This helper works for IPv4 and IPv6, TCP and UDP sockets. The
> + *   domain (*addr*\ **->sa_family**) must be **AF_INET** (or
> + *   **AF_INET6**). Looking for a free port to bind to can be
> + *   expensive, therefore binding to port is not permitted by the
> + *   helper: *addr*\ **->sin_port** (or **sin6_port**, respectively)
> + *   must be set to zero.
> + *   Return
> + *   0 on success, or a negative error in case of failure.

Acked-by: Andrey Ignatov 
for bpf_bind() helper.

-- 
Andrey Ignatov
--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html