003 File Manager
Current Path:
/usr/src/sys/net
usr
/
src
/
sys
/
net
/
📁
..
📁
altq
📄
bpf.c
(69.94 KB)
📄
bpf.h
(14.6 KB)
📄
bpf_buffer.c
(6.39 KB)
📄
bpf_buffer.h
(2.04 KB)
📄
bpf_filter.c
(12.09 KB)
📄
bpf_jitter.c
(3.43 KB)
📄
bpf_jitter.h
(3.3 KB)
📄
bpf_zerocopy.c
(16.12 KB)
📄
bpf_zerocopy.h
(2.36 KB)
📄
bpfdesc.h
(6.04 KB)
📄
bridgestp.c
(55.53 KB)
📄
bridgestp.h
(13.06 KB)
📄
debugnet.c
(26.35 KB)
📄
debugnet.h
(8.54 KB)
📄
debugnet_inet.c
(12.67 KB)
📄
debugnet_int.h
(3.11 KB)
📄
dlt.h
(44.23 KB)
📄
ethernet.h
(22.17 KB)
📄
firewire.h
(3.95 KB)
📄
ieee8023ad_lacp.c
(53.91 KB)
📄
ieee8023ad_lacp.h
(9.22 KB)
📄
ieee_oui.h
(3.64 KB)
📄
if.c
(105.86 KB)
📄
if.h
(22.3 KB)
📄
if_arp.h
(5.41 KB)
📄
if_bridge.c
(89.97 KB)
📄
if_bridgevar.h
(11.54 KB)
📄
if_clone.c
(17.42 KB)
📄
if_clone.h
(3.38 KB)
📄
if_dead.c
(3.83 KB)
📄
if_debug.c
(4.02 KB)
📄
if_disc.c
(5.95 KB)
📄
if_dl.h
(3.56 KB)
📄
if_edsc.c
(9.93 KB)
📄
if_enc.c
(12.02 KB)
📄
if_enc.h
(1.65 KB)
📄
if_epair.c
(27.75 KB)
📄
if_ethersubr.c
(37.23 KB)
📄
if_fwsubr.c
(19.22 KB)
📄
if_gif.c
(16.66 KB)
📄
if_gif.h
(4.16 KB)
📄
if_gre.c
(18.8 KB)
📄
if_gre.h
(5.69 KB)
📄
if_infiniband.c
(14.99 KB)
📄
if_ipsec.c
(24.98 KB)
📄
if_ipsec.h
(1.62 KB)
📄
if_lagg.c
(62.68 KB)
📄
if_lagg.h
(8.94 KB)
📄
if_llatbl.c
(20.5 KB)
📄
if_llatbl.h
(9.52 KB)
📄
if_llc.h
(4.53 KB)
📄
if_loop.c
(10.62 KB)
📄
if_me.c
(16.73 KB)
📄
if_media.c
(12.81 KB)
📄
if_media.h
(36.45 KB)
📄
if_mib.c
(4.6 KB)
📄
if_mib.h
(5.58 KB)
📄
if_pflog.h
(2.24 KB)
📄
if_pfsync.h
(6.85 KB)
📄
if_sppp.h
(8.37 KB)
📄
if_spppfr.c
(15.11 KB)
📄
if_spppsubr.c
(132.44 KB)
📄
if_stf.c
(19.3 KB)
📄
if_tap.h
(2.54 KB)
📄
if_tun.h
(1.43 KB)
📄
if_tuntap.c
(47.67 KB)
📄
if_types.h
(12.2 KB)
📄
if_var.h
(29.92 KB)
📄
if_vlan.c
(53.04 KB)
📄
if_vlan_var.h
(6.1 KB)
📄
if_vxlan.c
(88.14 KB)
📄
if_vxlan.h
(4.71 KB)
📄
ifdi_if.m
(8.4 KB)
📄
iflib.c
(185.91 KB)
📄
iflib.h
(14.41 KB)
📄
iflib_clone.c
(7.37 KB)
📄
iflib_private.h
(2.31 KB)
📄
ifq.h
(12.2 KB)
📄
infiniband.h
(2.64 KB)
📄
mp_ring.c
(13.3 KB)
📄
mp_ring.h
(2.77 KB)
📄
mppc.h
(2.37 KB)
📄
mppcc.c
(8.88 KB)
📄
mppcd.c
(7.89 KB)
📄
netisr.c
(44.33 KB)
📄
netisr.h
(9.31 KB)
📄
netisr_internal.h
(4.77 KB)
📄
netmap.h
(32.93 KB)
📄
netmap_legacy.h
(9.49 KB)
📄
netmap_user.h
(30.33 KB)
📄
netmap_virt.h
(3.89 KB)
📄
paravirt.h
(6.91 KB)
📄
pfil.c
(16.83 KB)
📄
pfil.h
(5.86 KB)
📄
pfkeyv2.h
(14.54 KB)
📄
pfvar.h
(48.83 KB)
📄
ppp_defs.h
(5.41 KB)
📄
radix.c
(30.87 KB)
📄
radix.h
(6.83 KB)
📄
raw_cb.c
(3.77 KB)
📄
raw_cb.h
(3.04 KB)
📄
raw_usrreq.c
(6.26 KB)
📄
rndis.h
(10.74 KB)
📁
route
📄
route.c
(19.25 KB)
📄
route.h
(16.54 KB)
📄
rss_config.c
(14.12 KB)
📄
rss_config.h
(4.69 KB)
📄
rtsock.c
(62.94 KB)
📄
sff8436.h
(8.3 KB)
📄
sff8472.h
(18.95 KB)
📄
slcompress.c
(16.25 KB)
📄
slcompress.h
(6.4 KB)
📄
toeplitz.c
(1.96 KB)
📄
toeplitz.h
(1.72 KB)
📄
vnet.c
(22.42 KB)
📄
vnet.h
(14.62 KB)
Editing: pfil.h
/* $FreeBSD$ */ /* $NetBSD: pfil.h,v 1.22 2003/06/23 12:57:08 martin Exp $ */ /*- * SPDX-License-Identifier: BSD-3-Clause * * Copyright (c) 2019 Gleb Smirnoff <glebius@FreeBSD.org> * Copyright (c) 1996 Matthew R. Green * 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. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. */ #ifndef _NET_PFIL_H_ #define _NET_PFIL_H_ #include <sys/ioccom.h> enum pfil_types { PFIL_TYPE_IP4, PFIL_TYPE_IP6, PFIL_TYPE_ETHERNET, }; #define MAXPFILNAME 64 struct pfilioc_head { char pio_name[MAXPFILNAME]; int pio_nhooksin; int pio_nhooksout; enum pfil_types pio_type; }; struct pfilioc_hook { char pio_module[MAXPFILNAME]; char pio_ruleset[MAXPFILNAME]; int pio_flags; enum pfil_types pio_type; }; struct pfilioc_list { u_int pio_nheads; u_int pio_nhooks; struct pfilioc_head *pio_heads; struct pfilioc_hook *pio_hooks; }; struct pfilioc_link { char pio_name[MAXPFILNAME]; char pio_module[MAXPFILNAME]; char pio_ruleset[MAXPFILNAME]; int pio_flags; }; #define PFILDEV "pfil" #define PFILIOC_LISTHEADS _IOWR('P', 1, struct pfilioc_list) #define PFILIOC_LISTHOOKS _IOWR('P', 2, struct pfilioc_list) #define PFILIOC_LINK _IOW('P', 3, struct pfilioc_link) #define PFIL_IN 0x00010000 #define PFIL_OUT 0x00020000 #define PFIL_FWD 0x00040000 #define PFIL_DIR(f) ((f) & (PFIL_IN|PFIL_OUT)) #define PFIL_MEMPTR 0x00080000 #define PFIL_HEADPTR 0x00100000 #define PFIL_HOOKPTR 0x00200000 #define PFIL_APPEND 0x00400000 #define PFIL_UNLINK 0x00800000 #define PFIL_LENMASK 0x0000ffff #define PFIL_LENGTH(f) ((f) & PFIL_LENMASK) #ifdef _KERNEL struct mbuf; struct ifnet; struct inpcb; typedef union { struct mbuf **m; void *mem; uintptr_t __ui; } pfil_packet_t __attribute__((__transparent_union__)); static inline pfil_packet_t pfil_packet_align(pfil_packet_t p) { return ((pfil_packet_t ) (((uintptr_t)(p).mem + (_Alignof(void *) - 1)) & - _Alignof(void *))); } static inline struct mbuf * pfil_mem2mbuf(void *v) { return (*(struct mbuf **) (((uintptr_t)(v) + (_Alignof(void *) - 1)) & - _Alignof(void *))); } typedef enum { PFIL_PASS = 0, PFIL_DROPPED, PFIL_CONSUMED, PFIL_REALLOCED, } pfil_return_t; typedef pfil_return_t (*pfil_func_t)(pfil_packet_t, struct ifnet *, int, void *, struct inpcb *); /* * A pfil head is created by a packet intercept point. * * A pfil hook is created by a packet filter. * * Hooks are chained on heads. Historically some hooking happens * automatically, e.g. ipfw(4), pf(4) and ipfilter(4) would register * theirselves on IPv4 and IPv6 input/output. */ typedef struct pfil_hook * pfil_hook_t; typedef struct pfil_head * pfil_head_t; /* * Give us a chance to modify pfil_xxx_args structures in future. */ #define PFIL_VERSION 1 /* Argument structure used by packet filters to register themselves. */ struct pfil_hook_args { int pa_version; int pa_flags; enum pfil_types pa_type; pfil_func_t pa_func; void *pa_ruleset; const char *pa_modname; const char *pa_rulname; }; /* Public functions for pfil hook management by packet filters. */ pfil_hook_t pfil_add_hook(struct pfil_hook_args *); void pfil_remove_hook(pfil_hook_t); /* Argument structure used by ioctl() and packet filters to set filters. */ struct pfil_link_args { int pa_version; int pa_flags; union { const char *pa_headname; pfil_head_t pa_head; }; union { struct { const char *pa_modname; const char *pa_rulname; }; pfil_hook_t pa_hook; }; }; /* Public function to configure filter chains. Used by ioctl() and filters. */ int pfil_link(struct pfil_link_args *); /* Argument structure used by inspection points to register themselves. */ struct pfil_head_args { int pa_version; int pa_flags; enum pfil_types pa_type; const char *pa_headname; }; /* Public functions for pfil head management by inspection points. */ pfil_head_t pfil_head_register(struct pfil_head_args *); void pfil_head_unregister(pfil_head_t); /* Public functions to run the packet inspection by inspection points. */ int pfil_run_hooks(struct pfil_head *, pfil_packet_t, struct ifnet *, int, struct inpcb *inp); /* * Minimally exposed structure to avoid function call in case of absence * of any filters by protocols and macros to do the check. */ struct _pfil_head { int head_nhooksin; int head_nhooksout; }; #define PFIL_HOOKED_IN(p) (((struct _pfil_head *)(p))->head_nhooksin > 0) #define PFIL_HOOKED_OUT(p) (((struct _pfil_head *)(p))->head_nhooksout > 0) /* * Alloc mbuf to be used instead of memory pointer. */ int pfil_realloc(pfil_packet_t *, int, struct ifnet *); #endif /* _KERNEL */ #endif /* _NET_PFIL_H_ */
Upload File
Create Folder