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