Home | History | Annotate | Line # | Download | only in man4
 -*- nroff -*-

$NetBSD: bpfjit.4,v 1.3 2024/09/07 20:33:53 rillig 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.

p 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 l -bullet -offset indent -compact t AMD-x86 64 t ARM 32 (ARM-v5, ARM-v7 and Thumb2 instruction sets) t Intel-x86 32 t MIPS 32 (III, R1) t MIPS 64 (III, R1) t PowerPC 32 t PowerPC 64 t SPARC 32 .El

p .Nm supports all architectures listed above.

p .Nm is also available as a module in modular kernels. .Sh SYSCTLS The following sysctl is available when .Nm is enabled: l -tag -width "XnetXbpfXjitXX" t 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

p .Lk https://zherczeg.github.io/sljit/ 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 (at] NetBSD.org .

p The .Nm sljit library was written by .An Zoltan Herczeg Aq Mt hzmester (at] freemail.hu .