ringbuf

package
v0.10.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 27, 2023 License: MIT Imports: 14 Imported by: 0

Documentation

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.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrClosed = os.ErrClosed
)

Functions

This section is empty.

Types

type Reader

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

Reader allows reading bpf_ringbuf_output from user space.

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.

Returns os.ErrClosed if Close is called on the Reader, or os.ErrDeadlineExceeded if a deadline was set.

func (*Reader) ReadInto

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

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

func (*Reader) SetDeadline

func (r *Reader) SetDeadline(t time.Time)

SetDeadline controls how long Read and ReadInto will block waiting for samples.

Passing a zero time.Time will remove the deadline.

type Record

type Record struct {
	RawSample []byte
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL