...

Package ringbuf

import "github.com/cilium/ebpf/ringbuf"
Overview
Index

Overview ▾

Package ringbuf allows interacting with Linux BPF ring buffer.

BPF allows submitting custom events to a BPF ring buffer map set up by userspace. This is very useful to push things like packet samples from BPF to a daemon running in user space.

Variables

var (
    ErrClosed = os.ErrClosed
)

type Reader

Reader allows reading bpf_ringbuf_output from user space.

type Reader struct {
    // contains filtered or unexported fields
}

func NewReader

func NewReader(ringbufMap *ebpf.Map) (*Reader, error)

NewReader creates a new BPF ringbuf reader.

func (*Reader) Close

func (r *Reader) Close() error

Close frees resources used by the reader.

It interrupts calls to Read.

func (*Reader) Read

func (r *Reader) Read() (Record, error)

Read the next record from the BPF ringbuf.

Calling Close interrupts the function.

func (*Reader) ReadInto

func (r *Reader) ReadInto(rec *Record) error

ReadInto is like Read except that it allows reusing Record and associated buffers.

type Record

type Record struct {
    RawSample []byte
}