BPFJIT(4)

BPFJIT(4) | Kernel Interfaces 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 7.0