xref: /netbsd-src/share/man/man4/bpfjit.4 (revision 17512a6a3373125d0368137df06da0a2d4ac9e5a)
16021eb40Salnsn.\" -*- nroff -*-
26021eb40Salnsn.\"
3*17512a6aSrillig.\"	$NetBSD: bpfjit.4,v 1.3 2024/09/07 20:33:53 rillig Exp $
46021eb40Salnsn.\"
56021eb40Salnsn.\" Copyright (c) 2014 Alexander Nasonov.
66021eb40Salnsn.\" All rights reserved.
76021eb40Salnsn.\"
86021eb40Salnsn.\" Redistribution and use in source and binary forms, with or without
96021eb40Salnsn.\" modification, are permitted provided that the following conditions
106021eb40Salnsn.\" are met:
116021eb40Salnsn.\"
126021eb40Salnsn.\" 1. Redistributions of source code must retain the above copyright
136021eb40Salnsn.\"    notice, this list of conditions and the following disclaimer.
146021eb40Salnsn.\" 2. Redistributions in binary form must reproduce the above copyright
156021eb40Salnsn.\"    notice, this list of conditions and the following disclaimer in
166021eb40Salnsn.\"    the documentation and/or other materials provided with the
176021eb40Salnsn.\"    distribution.
186021eb40Salnsn.\"
196021eb40Salnsn.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
206021eb40Salnsn.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
216021eb40Salnsn.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
226021eb40Salnsn.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
236021eb40Salnsn.\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
246021eb40Salnsn.\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
256021eb40Salnsn.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
266021eb40Salnsn.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
276021eb40Salnsn.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
286021eb40Salnsn.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
296021eb40Salnsn.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
306021eb40Salnsn.\" SUCH DAMAGE.
316021eb40Salnsn.\"
326021eb40Salnsn.Dd July 24, 2014
336021eb40Salnsn.Dt BPFJIT 4
346021eb40Salnsn.Os
356021eb40Salnsn.Sh NAME
366021eb40Salnsn.Nm bpfjit
376021eb40Salnsn.Nd Just-In-Time compiler for Berkeley Packet Filter
386021eb40Salnsn.Sh SYNOPSIS
396021eb40Salnsn.Cd "options BPFJIT"
406021eb40Salnsn.Cd "options SLJIT"
416021eb40Salnsn.Sh DESCRIPTION
426021eb40SalnsnThe
436021eb40Salnsn.Nm
446021eb40Salnsnkernel interface adds
456021eb40Salnsn.Sy Just-In-Time
4699697e5bSwizcompilation of filter programs sent to a
476021eb40Salnsn.Xr bpf 4
486021eb40Salnsndevice.
4999697e5bSwizInstead of being interpreted for every packet,
5099697e5bSwizthese filter programs are compiled into native code
516021eb40Salnsnand the code is being executed for every packet.
526021eb40Salnsn.Pp
536021eb40SalnsnThe implementation of
546021eb40Salnsn.Nm
5599697e5bSwizis based on the
566021eb40Salnsn.Sy Stack-Less Just-In-Time
576021eb40Salnsnlibrary, or
586021eb40Salnsn.Nm sljit
596021eb40Salnsnfor short.
606021eb40SalnsnThe library supports multiple platforms including
616021eb40Salnsn.Bl -bullet -offset indent -compact
626021eb40Salnsn.It
636021eb40SalnsnAMD-x86 64
646021eb40Salnsn.It
656021eb40SalnsnARM 32 (ARM-v5, ARM-v7 and Thumb2 instruction sets)
666021eb40Salnsn.It
676021eb40SalnsnIntel-x86 32
686021eb40Salnsn.It
696021eb40SalnsnMIPS 32 (III, R1)
706021eb40Salnsn.It
716021eb40SalnsnMIPS 64 (III, R1)
726021eb40Salnsn.It
736021eb40SalnsnPowerPC 32
746021eb40Salnsn.It
756021eb40SalnsnPowerPC 64
766021eb40Salnsn.It
776021eb40SalnsnSPARC 32
786021eb40Salnsn.El
796021eb40Salnsn.Pp
806021eb40Salnsn.Nm
816021eb40Salnsnsupports all architectures listed above.
826021eb40Salnsn.Pp
836021eb40Salnsn.Nm
846021eb40Salnsnis also available as a module in modular kernels.
856021eb40Salnsn.Sh SYSCTLS
866021eb40SalnsnThe following sysctl is available when
876021eb40Salnsn.Nm
886021eb40Salnsnis enabled:
896021eb40Salnsn.Bl -tag -width "XnetXbpfXjitXX"
906021eb40Salnsn.It Li net.bpf.jit
916021eb40SalnsnToggle
926021eb40Salnsn.Sy Just-In-Time
936021eb40Salnsncompilation of new filter programs.
946021eb40SalnsnChanging a value of this sysctl doesn't affect
956021eb40Salnsnexisting filter programs.
966021eb40Salnsn.El
976021eb40Salnsn.Sh SEE ALSO
986021eb40Salnsn.Xr bpf 4 ,
9999697e5bSwiz.Xr modload 8
1006021eb40Salnsn.Pp
101*17512a6aSrillig.Lk https://zherczeg.github.io/sljit/ sljit library
1026021eb40Salnsn.Sh HISTORY
1036021eb40SalnsnThe
1046021eb40Salnsn.Nm
10599697e5bSwizinterface first appeared in
10699697e5bSwiz.Nx 7.0 .
1076021eb40Salnsn.Sh AUTHORS
1086021eb40SalnsnThe
1096021eb40Salnsn.Nm
1106021eb40Salnsncode was written by
1116021eb40Salnsn.An Alexander Nasonov Aq Mt alnsn@NetBSD.org .
1126021eb40Salnsn.Pp
1136021eb40SalnsnThe
1146021eb40Salnsn.Nm sljit
11599697e5bSwizlibrary was written by
1166021eb40Salnsn.An Zoltan Herczeg Aq Mt hzmester@freemail.hu .
117