freebsd-skq/sys/netpfil/ipfw
glebius 4ac89986fb PFIL_MEMPTR for ipfw link level hook
With new pfil(9) KPI it is possible to pass a void pointer with length
instead of mbuf pointer to a packet filter. Until this commit no filters
supported that, so pfil run through a shim function pfil_fake_mbuf().

Now the ipfw(4) hook named "default-link", that is instantiated when
net.link.ether.ipfw sysctl is on, supports processing pointer/length
packets natively.

- ip_fw_args now has union for either mbuf or void *, and if flags have
  non-zero length, then we use the void *.
- through ipfw_chk() we handle mem/mbuf cases differently.
- ether_header goes away from args. It is ipfw_chk() responsibility
  to do parsing of Ethernet header.
- ipfw_log() now uses different bpf APIs to log packets.

Although ipfw_chk() is now capable to process pointer/length packets,
this commit adds support for the link level hook only, see
ipfw_check_frame(). Potentially the IP processing hook ipfw_check_packet()
can be improved too, but that requires more changes since the hook
supports more complex actions: NAT, divert, etc.

Reviewed by:	ae
Differential Revision:	https://reviews.freebsd.org/D19357
2019-03-14 22:52:16 +00:00
..
nat64 Add NULL pointer check to nat64_output(). 2019-03-11 10:33:32 +00:00
nptv6 Reimplement how net.inet.ip.fw.dyn_keep_states works. 2018-12-04 16:01:25 +00:00
pmod Use host byte order when comparing mss values. 2018-08-08 17:32:02 +00:00
test sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
dn_aqm_codel.c dummynet: Use strlcpy to appease static checkers 2017-04-13 17:47:44 +00:00
dn_aqm_codel.h
dn_aqm_pie.c Fix the queue delay estimation in PIE/FQ-PIE when the timestamp 2017-05-19 08:38:03 +00:00
dn_aqm_pie.h Change several constants used by the PIE algorithm from unsigned to signed. 2017-03-18 23:00:13 +00:00
dn_aqm.h
dn_heap.c netpfil/ipfw: Make some use of mallocarray(9). 2018-01-11 15:29:29 +00:00
dn_heap.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
dn_sched_fifo.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
dn_sched_fq_codel_helper.h
dn_sched_fq_codel.c Implement 'domainset', a cpuset based NUMA policy mechanism. This allows 2018-01-12 22:48:23 +00:00
dn_sched_fq_codel.h
dn_sched_fq_pie.c netpfil/ipfw: Make some use of mallocarray(9). 2018-01-11 15:29:29 +00:00
dn_sched_prio.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
dn_sched_qfq.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
dn_sched_rr.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
dn_sched_wf2q.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
dn_sched.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
dummynet.txt
ip_dn_glue.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
ip_dn_io.c Remove 'dir' argument from dummynet_io(). This makes it possible to make 2019-03-14 22:32:50 +00:00
ip_dn_private.h Remove 'dir' argument from dummynet_io(). This makes it possible to make 2019-03-14 22:32:50 +00:00
ip_dummynet.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
ip_fw2.c PFIL_MEMPTR for ipfw link level hook 2019-03-14 22:52:16 +00:00
ip_fw_bpf.c PFIL_MEMPTR for ipfw link level hook 2019-03-14 22:52:16 +00:00
ip_fw_dynamic.c - Add more flags to ip_fw_args. At this changeset only IPFW_ARGS_IN and 2019-03-14 22:28:50 +00:00
ip_fw_eaction.c New pfil(9) KPI together with newborn pfil API and control utility. 2019-01-31 23:01:03 +00:00
ip_fw_iface.c Revert r316461: Remove "IPFW static rules" rmlock, and use pfil's global lock. 2019-01-31 21:04:50 +00:00
ip_fw_log.c PFIL_MEMPTR for ipfw link level hook 2019-03-14 22:52:16 +00:00
ip_fw_nat.c - Add more flags to ip_fw_args. At this changeset only IPFW_ARGS_IN and 2019-03-14 22:28:50 +00:00
ip_fw_pfil.c PFIL_MEMPTR for ipfw link level hook 2019-03-14 22:52:16 +00:00
ip_fw_private.h PFIL_MEMPTR for ipfw link level hook 2019-03-14 22:52:16 +00:00
ip_fw_sockopt.c Revert r316461: Remove "IPFW static rules" rmlock, and use pfil's global lock. 2019-01-31 21:04:50 +00:00
ip_fw_table_algo.c Switch RIB and RADIX_NODE_HEAD lock from rwlock(9) to rmlock(9). 2018-06-16 08:26:23 +00:00
ip_fw_table_value.c Revert r316461: Remove "IPFW static rules" rmlock, and use pfil's global lock. 2019-01-31 21:04:50 +00:00
ip_fw_table.c Revert r316461: Remove "IPFW static rules" rmlock, and use pfil's global lock. 2019-01-31 21:04:50 +00:00
ip_fw_table.h