freebsd-skq/sys/net
Gleb Smirnoff c93410229c Most Ethernet drivers that potentially can run a pfil(9) hook with
PFIL_MEMPTR flag are intentionally providing a memory address that
isn't aligned to pointer alignment. This is done to align an IPv4
or IPv6 header that is expected to follow Ethernet header.

When we return PFIL_REALLOCED we store a pointer to allocated mbuf
at this address. With this change the KPI changes to store the pointer
at aligned address, which usually yields in +2 bytes.

Provide two inlines:

pfil_packet_align() to get aligned pfil_packet_t for a misaligned one
pfil_mem2mbuf() to read out mbuf pointer from misaligned pfil_packet_t

Provide function pfil_realloc(), not used yet, that would convert a
memory pfil_packet_t to an mbuf one.

Reported by:	hps
Reviewed by:	hps, gallatin
2019-03-10 17:20:09 +00:00
..
altq Reduce the time it takes the kernel to install a new PF config containing a large number of queues 2019-02-11 05:17:31 +00:00
bpf_buffer.c
bpf_buffer.h
bpf_filter.c
bpf_jitter.c Make UMA and malloc(9) return non-executable memory in most cases. 2018-06-13 17:04:41 +00:00
bpf_jitter.h Make UMA and malloc(9) return non-executable memory in most cases. 2018-06-13 17:04:41 +00:00
bpf_zerocopy.c
bpf_zerocopy.h
bpf.c Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
bpf.h
bpfdesc.h Move BPFIF_* macro definitions into .c file, where struct bpf_if is 2018-06-19 10:34:45 +00:00
bridgestp.c Mechanical cleanup of epoch(9) usage in network stack. 2019-01-09 01:11:19 +00:00
bridgestp.h
dlt.h Re-apply r190640. 2018-05-31 09:11:21 +00:00
ethernet.h
firewire.h
ieee8023ad_lacp.c if_media: Add new 2.5G/5G/25G/40G/50G/100G/200G/400G media types 2018-08-22 18:19:56 +00:00
ieee8023ad_lacp.h
ieee_oui.h
if_arp.h Improve ARP logging. 2019-03-09 01:12:59 +00:00
if_bridge.c bridge: Fix spurious warnings about capabilities 2019-03-04 22:01:09 +00:00
if_bridgevar.h Allow different bridge types to coexist 2018-05-11 05:00:40 +00:00
if_clone.c Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
if_clone.h iflib(9): Add support for cloning pseudo interfaces 2018-05-11 20:08:28 +00:00
if_dead.c
if_debug.c
if_disc.c Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
if_dl.h
if_edsc.c Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
if_enc.c New pfil(9) KPI together with newborn pfil API and control utility. 2019-01-31 23:01:03 +00:00
if_enc.h
if_epair.c Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
if_ethersubr.c Update for IETF draft-ietf-6man-ipv6only-flag. 2019-03-06 23:31:42 +00:00
if_fwsubr.c
if_gif.c Add handling for appearing/disappearing of ingress addresses to if_gif(4). 2018-10-21 18:06:15 +00:00
if_gif.h Add handling for appearing/disappearing of ingress addresses to if_gif(4). 2018-10-21 18:06:15 +00:00
if_gre.c Add handling for appearing/disappearing of ingress addresses to if_gre(4). 2018-10-21 18:13:45 +00:00
if_gre.h Add handling for appearing/disappearing of ingress addresses to if_gre(4). 2018-10-21 18:13:45 +00:00
if_ipsec.c Allow configuration of several ipsec interfaces with the same tunnel 2018-11-16 14:21:57 +00:00
if_ipsec.h
if_lagg.c This commit adds the missing release mechanism for the 2019-02-13 14:57:59 +00:00
if_lagg.h CK: update consumers to use CK macros across the board 2018-05-24 23:21:23 +00:00
if_llatbl.c Mechanical cleanup of epoch(9) usage in network stack. 2019-01-09 01:11:19 +00:00
if_llatbl.h CK: update consumers to use CK macros across the board 2018-05-24 23:21:23 +00:00
if_llc.h
if_loop.c Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
if_me.c Add the check that current VNET is ready and access to srchash is allowed. 2018-10-23 13:11:45 +00:00
if_media.c Finish removing FDDI and tokenring media support. 2018-04-23 21:10:33 +00:00
if_media.h if_media: Add new 2.5G/5G/25G/40G/50G/100G/200G/400G media types 2018-08-22 18:19:56 +00:00
if_mib.c
if_mib.h
if_pflog.h
if_pfsync.h
if_sppp.h
if_spppfr.c
if_spppsubr.c ifnet: Replace if_addr_lock rwlock with epoch + mutex 2018-05-18 20:13:34 +00:00
if_stf.c Prevent stf(4) from panicing due to unprotected access to INADDR_HASH. 2018-10-27 04:45:28 +00:00
if_tap.c Remove unused argument to priv_check_cred. 2018-12-11 19:32:16 +00:00
if_tap.h
if_tapvar.h
if_tun.c tun: VIMAGE fix for if_tun cloner 2019-03-05 13:21:07 +00:00
if_tun.h
if_types.h
if_var.h New pfil(9) KPI together with newborn pfil API and control utility. 2019-01-31 23:01:03 +00:00
if_vlan_var.h Add the ability to look up the 3b PCP of a VLAN interface. Use it in 2018-08-16 23:46:38 +00:00
if_vlan.c This commit adds the missing release mechanism for the 2019-02-13 14:57:59 +00:00
if_vxlan.c net: fix set but not used 2018-05-19 05:27:49 +00:00
if_vxlan.h
if.c Rework CASE_IOC_IFGROUPREQ() to require a case before the macro. 2019-01-22 17:39:26 +00:00
if.h Plug routing sysctl leaks. 2018-11-26 13:42:18 +00:00
ifdi_if.m iflib(9): Add support for cloning pseudo interfaces 2018-05-11 20:08:28 +00:00
iflib_clone.c iflib(9): Add support for cloning pseudo interfaces 2018-05-11 20:08:28 +00:00
iflib_private.h Use busdma unconditionally in iflib 2018-11-27 20:01:05 +00:00
iflib.c Remove references to CONTIGMALLOC_WORKS in iflib and em 2019-03-05 19:12:51 +00:00
iflib.h onvert vmx(4) to being an iflib driver. 2019-01-22 01:11:17 +00:00
ifq.h
mp_ring.c mp_ring: avoid items offset difference between iflib and mp_ring 2019-01-03 23:06:05 +00:00
mp_ring.h mp_ring: avoid items offset difference between iflib and mp_ring 2019-01-03 23:06:05 +00:00
mppc.h
mppcc.c
mppcd.c
netisr_internal.h
netisr.c Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
netisr.h
netmap_legacy.h netmap: align codebase to the current upstream (commit id 3fb001303718146) 2018-04-12 07:20:50 +00:00
netmap_user.h netmap: align codebase to the current upstream (760279cfb2730a585) 2018-12-05 11:57:16 +00:00
netmap_virt.h netmap: align codebase to the current upstream (760279cfb2730a585) 2018-12-05 11:57:16 +00:00
netmap.h netmap: upgrade sync-kloop support 2019-02-02 22:39:29 +00:00
paravirt.h
pfil.c Most Ethernet drivers that potentially can run a pfil(9) hook with 2019-03-10 17:20:09 +00:00
pfil.h Most Ethernet drivers that potentially can run a pfil(9) hook with 2019-03-10 17:20:09 +00:00
pfkeyv2.h
pfvar.h Reduce the time it takes the kernel to install a new PF config containing a large number of queues 2019-02-11 05:17:31 +00:00
ppp_defs.h
radix_mpath.c Switch RIB and RADIX_NODE_HEAD lock from rwlock(9) to rmlock(9). 2018-06-16 08:26:23 +00:00
radix_mpath.h
radix.c Switch RIB and RADIX_NODE_HEAD lock from rwlock(9) to rmlock(9). 2018-06-16 08:26:23 +00:00
radix.h Fix typo. 2018-06-16 19:21:09 +00:00
raw_cb.c
raw_cb.h
raw_usrreq.c
rndis.h
route_var.h Switch RIB and RADIX_NODE_HEAD lock from rwlock(9) to rmlock(9). 2018-06-16 08:26:23 +00:00
route.c Mechanical cleanup of epoch(9) usage in network stack. 2019-01-09 01:11:19 +00:00
route.h Plug routing sysctl leaks. 2018-11-26 13:42:18 +00:00
rss_config.c
rss_config.h
rtsock.c Remove recursive NET_EPOCH_ENTER() from sysctl_ifmalist(), missed in r342872. 2019-01-11 00:45:22 +00:00
sff8436.h
sff8472.h
slcompress.c
slcompress.h
toeplitz.c
toeplitz.h
vnet.c With more excessive use of modules, more kernel parts working with 2018-10-30 20:45:15 +00:00
vnet.h Don't mark module data as static on RISC-V. 2018-09-12 08:05:33 +00:00