117 lines
2.9 KiB
Groff
117 lines
2.9 KiB
Groff
.\" -*- 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 .
|