Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

.\" -*- nroff -*-
.\"
.\"	$NetBSD: bpfjit.4,v 1.2 2014/07/24 21:22:29 wiz Exp $
.\"
.\" Copyright (c) 2014 Alexander Nasonov.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in
.\"    the documentation and/or other materials provided with the
.\"    distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
.\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
.\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.Dd July 24, 2014
.Dt BPFJIT 4
.Os
.Sh NAME
.Nm bpfjit
.Nd Just-In-Time compiler for Berkeley Packet Filter
.Sh SYNOPSIS
.Cd "options BPFJIT"
.Cd "options SLJIT"
.Sh DESCRIPTION
The
.Nm
kernel interface adds
.Sy Just-In-Time
compilation of filter programs sent to a
.Xr 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.
.Pp
The implementation of
.Nm
is based on the
.Sy Stack-Less Just-In-Time
library, or
.Nm sljit
for short.
The library supports multiple platforms including
.Bl -bullet -offset indent -compact
.It
AMD-x86 64
.It
ARM 32 (ARM-v5, ARM-v7 and Thumb2 instruction sets)
.It
Intel-x86 32
.It
MIPS 32 (III, R1)
.It
MIPS 64 (III, R1)
.It
PowerPC 32
.It
PowerPC 64
.It
SPARC 32
.El
.Pp
.Nm
supports all architectures listed above.
.Pp
.Nm
is also available as a module in modular kernels.
.Sh SYSCTLS
The following sysctl is available when
.Nm
is enabled:
.Bl -tag -width "XnetXbpfXjitXX"
.It Li net.bpf.jit
Toggle
.Sy Just-In-Time
compilation of new filter programs.
Changing a value of this sysctl doesn't affect
existing filter programs.
.El
.Sh SEE ALSO
.Xr bpf 4 ,
.Xr modload 8
.Pp
.Lk http://sljit.sourceforge.net/ sljit library
.Sh HISTORY
The
.Nm
interface first appeared in
.Nx 7.0 .
.Sh AUTHORS
The
.Nm
code was written by
.An Alexander Nasonov Aq Mt alnsn@NetBSD.org .
.Pp
The
.Nm sljit
library was written by
.An Zoltan Herczeg Aq Mt hzmester@freemail.hu .