Skip to content

Helper function bpf_ringbuf_submit

v5.8

Definition

Copyright (c) 2015 The Libbpf Authors. All rights reserved.

Submit reserved ring buffer sample, pointed to by data. If BPF_RB_NO_WAKEUP is specified in flags, no notification of new data availability is sent. If BPF_RB_FORCE_WAKEUP is specified in flags, notification of new data availability is sent unconditionally. If 0 is specified in flags, an adaptive notification of new data availability is sent.

See 'bpf_ringbuf_output()' for the definition of adaptive notification.

Returns

Nothing. Always succeeds.

static void (* const bpf_ringbuf_submit)(void *data, __u64 flags) = (void *) 132;

Usage

Submit makes the data reserved in the ringbuf available for reading. The data argument must be a pointer to the reserved data in the ring buffer. The flags argument declares how the notification of new data availability should be handled.

Program types

This helper call can be used in the following program types:

Example

// Reserve space in the ring buffer
struct ringbuf_data *rb_data = bpf_ringbuf_reserve(&my_ringbuf, sizeof(struct ringbuf_data), 0);
if(!rb_data) {
    // if bpf_ringbuf_reserve fails, print an error message and return
    bpf_printk("bpf_ringbuf_reserve failed\n");
    return 1;
}

// Fill the reserved data with some values
rb_data->data = 42;
rb_data->timestamp = bpf_ktime_get_ns();

// Submit the reserved data
bpf_ringbuf_submit(rb_data, 0);