• J
    bpf: sk_msg program helper bpf_msg_push_data · 6fff607e
    John Fastabend 提交于
    This allows user to push data into a msg using sk_msg program types.
    The format is as follows,
    
    	bpf_msg_push_data(msg, offset, len, flags)
    
    this will insert 'len' bytes at offset 'offset'. For example to
    prepend 10 bytes at the front of the message the user can,
    
    	bpf_msg_push_data(msg, 0, 10, 0);
    
    This will invalidate data bounds so BPF user will have to then recheck
    data bounds after calling this. After this the msg size will have been
    updated and the user is free to write into the added bytes. We allow
    any offset/len as long as it is within the (data, data_end) range.
    However, a copy will be required if the ring is full and its possible
    for the helper to fail with ENOMEM or EINVAL errors which need to be
    handled by the BPF program.
    
    This can be used similar to XDP metadata to pass data between sk_msg
    layer and lower layers.
    Signed-off-by: NJohn Fastabend <john.fastabend@gmail.com>
    Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
    6fff607e
bpf.h 110.0 KB