2018-11-26 02:05 UTC+0100 ~ Daniel Borkmann <dan...@iogearbox.net> > On 11/23/2018 02:38 AM, John Fastabend wrote: >> This adds a BPF SK_MSG program helper so that we can pop data from a >> msg. We use this to pop metadata from a previous push data call. >> >> Signed-off-by: John Fastabend <john.fastab...@gmail.com> >> --- >> include/uapi/linux/bpf.h | 13 +++- >> net/core/filter.c | 169 >> +++++++++++++++++++++++++++++++++++++++++++++++ >> net/ipv4/tcp_bpf.c | 14 +++- >> 3 files changed, 192 insertions(+), 4 deletions(-) >> >> diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h >> index c1554aa..64681f8 100644 >> --- a/include/uapi/linux/bpf.h >> +++ b/include/uapi/linux/bpf.h >> @@ -2268,6 +2268,16 @@ union bpf_attr { >> * >> * Return >> * 0 on success, or a negative error in case of failure. >> + * >> + * int bpf_msg_pop_data(struct sk_msg_buff *msg, u32 start, u32 pop, u64 >> flags) >> + * Description >> + * Will remove 'pop' bytes from a msg starting at byte 'start'. >> + * This result in ENOMEM errors under certain situations where >> + * a allocation and copy are required due to a full ring buffer. >> + * However, the helper will try to avoid doing the allocation >> + * if possible. Other errors can occur if input parameters are >> + * invalid either do to start byte not being valid part of msg >> + * payload and/or pop value being to large. >> */
Hi John, If you respin could you please update the helper documentation to use RST syntax for argument and constant names (*pop* instead of 'pop', *msg*, *start*, *flags*, **ENOMEM**), and document the return value from the helper? Thanks a lot, Quentin