BPFJIT(4)

BPFJIT(4) | Device Drivers Manual | BPFJIT(4)

# NAME

`bpfjit` — Just-In-Time compiler for Berkeley Packet Filter

# SYNOPSIS

`options BPFJIT`
`options SLJIT`

# DESCRIPTION

The `bpfjit` kernel interface adds Just-In-Time compilation of filter programs sent to a bpf(4) device. Instead of being interpreted for every packet, these filter programs are compiled into native code and the code is being executed for every packet.

The implementation of `bpfjit` is based on the Stack-Less Just-In-Time library, or `sljit` for short. The library supports multiple platforms including

- AMD-x86 64
- ARM 32 (ARM-v5, ARM-v7 and Thumb2 instruction sets)
- Intel-x86 32
- MIPS 32 (III, R1)
- MIPS 64 (III, R1)
- PowerPC 32
- PowerPC 64
- SPARC 32

`bpfjit` supports all architectures listed above.

`bpfjit` is also available as a module in modular kernels.

# SYSCTLS

The following sysctl is available when `bpfjit` is enabled:

`net.bpf.jit`
  Toggle Just-In-Time compilation of new filter programs. Changing a value of this sysctl doesn't affect existing filter programs.

# SEE ALSO

bpf(4), modload(8)

sljit library

# HISTORY

The `bpfjit` interface first appeared in NetBSD 7.0.

# AUTHORS

The `bpfjit` code was written by Alexander Nasonov <alnsn@NetBSD.org>.

The `sljit` library was written by
Zoltan Herczeg <hzmester@freemail.hu>.

July 24, 2014 | NetBSD 11.0