opnsense-src/sys/netinet
Arseny Smalyuk 81cac3906e ipfw: add support radix tables and table lookup for MAC addresses
By analogy with IP address matching, add a way to use ipfw radix
tables for MAC matching. This is implemented using new ipfw table
with mac:radix type. Also there are src-mac and dst-mac lookup
commands added.

Usage example:
  ipfw table 1 create type mac
  ipfw table 1 add 11:22:33:44:55:66/48
  ipfw add skipto tablearg src-mac 'table(1)'
  ipfw add deny src-mac 'table(1, 100)'
  ipfw add deny lookup dst-mac 1

Note: sysctl net.link.ether.ipfw=1 should be set to enable ipfw
filtering on L2.

Reviewed by:	melifaro
Obtained from:	Yandex LLC
MFC after:	1 month
Relnotes:	yes
Sponsored by:	Yandex LLC
Differential Revision:	https://reviews.freebsd.org/D35103
2022-06-04 19:12:29 +03:00
..
cc tcp cc: don't recurse on non recursive mutex 2022-04-05 13:52:36 +02:00
khelp khelp(9): Fix a typo in a source code comment 2022-04-02 14:10:59 +02:00
libalias libalias(3): Fix two typos in source code comments 2022-04-09 09:14:00 +02:00
netdump netdump: check the support status of the interface 2022-05-14 10:27:53 -03:00
tcp_stacks rack: Fix a common typo in comments and a sysctl description 2022-06-04 17:56:56 +02:00
accf_data.c Define a module version for accept filter modules. 2020-05-19 18:35:08 +00:00
accf_dns.c Define a module version for accept filter modules. 2020-05-19 18:35:08 +00:00
accf_http.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
dccp.h Add header definition for RFC4340, Datagram Congestion Control Protocol 2020-06-17 13:27:13 +00:00
icmp6.h netinet6: Fix mbuf leak in NDP 2022-05-31 21:06:14 +00:00
icmp_var.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
if_ether.c netinet6: Fix mbuf leak in NDP 2022-05-31 21:06:14 +00:00
if_ether.h
igmp.c mbuf: remove PH_vt alias for mbuf packet header persistent shared data 2022-05-13 13:32:43 -07:00
igmp.h
igmp_var.h igmp: convert igmpstat to use PCPU counters 2020-11-08 18:49:23 +00:00
in.c lltable: introduce the llt_post_resolved callback 2022-05-30 10:53:33 +00:00
in.h Add in_localip_fib(), in6_localip_fib(). 2021-11-12 08:59:42 -08:00
in_cksum.c netinet: Implement in_cksum_skip() using m_apply() 2021-11-24 13:31:16 -05:00
in_debug.c Use network epoch to protect local IPv4 addresses hash. 2021-10-22 14:40:53 -07:00
in_fib.c Fix some common typos in comments 2021-08-08 10:16:06 +02:00
in_fib.h Refactor fib4/fib6 functions. 2020-11-29 13:41:49 +00:00
in_fib_algo.c Fix IPv4 fib bsearch4() lookup array construction. 2021-01-17 20:32:26 +00:00
in_fib_dxr.c fib_algo: shift / mask by constants in dxr_lookup() 2022-01-17 00:13:47 +01:00
in_gif.c Use network epoch to protect local IPv4 addresses hash. 2021-10-22 14:40:53 -07:00
in_jail.c sysent: Get rid of bogus sys/sysent.h include. 2022-05-28 20:52:17 +03:00
in_kdtrace.c Fix dtrace SDT probe tcp:::debug-input 2021-12-20 17:15:43 -09:00
in_kdtrace.h
in_mcast.c ifnet_byindex() actually requires network epoch 2021-12-06 09:32:31 -08:00
in_pcb.c in_pcballoc: error is only used for IPSEC or MAC. 2022-04-13 16:08:23 -07:00
in_pcb.h tcp: add sysctl interface for setting socket options 2022-02-09 12:24:41 +01:00
in_pcb_var.h in_pcb: use jenkins hash over the entire IPv6 (or IPv4) address 2021-12-26 10:47:28 -08:00
in_prot.c
in_proto.c domains: make domain_init() initialize only global state 2022-01-03 10:15:22 -08:00
in_rmx.c Refactor rib iterator functions. 2020-11-22 20:21:10 +00:00
in_rss.c in_rss: fix set but not used warning 2022-05-07 18:17:33 +02:00
in_rss.h Implement flowid calculation for outbound connections to balance 2020-10-18 17:15:47 +00:00
in_systm.h
in_var.h Use network epoch to protect local IPv4 addresses hash. 2021-10-22 14:40:53 -07:00
ip.h tcp: Prevent setting of ECN bits with setsockopt() 2022-02-03 20:06:42 +01:00
ip6.h net: Introduce IPV6_DSCP(), IPV6_ECN() and IPV6_TRAFFIC_CLASS() macros 2021-03-04 20:56:48 +01:00
ip_carp.c carp: fix send error demotion recovery 2021-12-18 17:19:26 -08:00
ip_carp.h carp: replace caddr_t with char * 2019-12-06 16:35:48 +00:00
ip_divert.c divert_packet: ip is only used for SCTP. 2022-04-13 16:08:23 -07:00
ip_divert.h
ip_dummynet.h ipfw: use unsigned int for dummynet bandwidth 2021-08-19 10:48:53 +02:00
ip_ecn.c
ip_ecn.h
ip_encap.c
ip_encap.h
ip_fastfwd.c IPv4: fix redirect sending conditions 2021-12-26 15:33:48 +00:00
ip_fw.h ipfw: add support radix tables and table lookup for MAC addresses 2022-06-04 19:12:29 +03:00
ip_gre.c udp: allow udp_tun_func_t() to indicate it did not eat the packet 2022-04-12 10:04:59 +02:00
ip_icmp.c Address issue pointed out in CVE-2020-25705 2022-03-31 16:45:50 +02:00
ip_icmp.h
ip_id.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
ip_input.c sockbuf: merge two versions of sbcreatecontrol() into one 2022-05-17 10:10:42 -07:00
ip_mroute.c IPv4 multicast: fix LOR in shutdown path 2022-04-11 14:51:16 -05:00
ip_mroute.h IPv4 multicast: fix netstat -g 2022-03-22 07:38:01 -05:00
ip_options.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ip_options.h
ip_output.c Fix ipfw fwd that doesn't work in some cases 2022-04-11 14:16:43 +03:00
ip_reass.c ip_reass: do less work in ipreass_slowtimo if possible 2021-08-14 18:50:12 +02:00
ip_var.h protocols: init with standard SYSINIT(9) or VNET_SYSINIT 2022-01-03 10:15:21 -08:00
pim.h
pim_var.h
raw_ip.c rip: Fix a -Wunused-but-set-variable warning 2022-03-01 09:39:43 -05:00
sctp.h Improve the handling of cookie life times. 2020-10-16 10:44:48 +00:00
sctp_asconf.c sctp: improve consistency 2022-05-14 06:28:19 +02:00
sctp_asconf.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
sctp_auth.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
sctp_auth.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
sctp_bsd_addr.c sctp: Remove unused variable. 2022-04-12 14:58:59 -07:00
sctp_bsd_addr.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
sctp_cc_functions.c sctp: plug set-but-not-used vars 2022-04-19 12:45:57 +00:00
sctp_constants.h sctp: improve handling of sctp inpcb flags 2022-06-04 07:38:19 +02:00
sctp_crc32.c sctp: fix a signed/unsigned mismatch. 2022-02-17 22:45:57 +01:00
sctp_crc32.h sctp: fix a signed/unsigned mismatch. 2022-02-17 22:45:57 +01:00
sctp_header.h Whitespace changes. 2020-09-24 12:26:06 +00:00
sctp_indata.c sctp: use sb_avail() when accessing sb_acc for reading 2022-05-14 12:38:43 +02:00
sctp_indata.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
sctp_input.c sctp: improve handling of sctp inpcb flags 2022-06-04 07:38:19 +02:00
sctp_input.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
sctp_kdtrace.c
sctp_kdtrace.h
sctp_lock_bsd.h sctp: get rid of stcb send lock 2022-03-29 01:50:17 +02:00
sctp_module.c protocols: init with standard SYSINIT(9) or VNET_SYSINIT 2022-01-03 10:15:21 -08:00
sctp_os.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
sctp_os_bsd.h sctp: use sb_avail() when accessing sb_acc for reading 2022-05-14 12:38:43 +02:00
sctp_output.c sctp: use a consistent view of the send parameters 2022-05-28 19:35:58 +02:00
sctp_output.h sctp: cleanup the SCTP_MAXSEG socket option. 2021-12-27 23:40:31 +01:00
sctp_pcb.c sctp: improve handling of sctp inpcb flags 2022-06-04 07:38:19 +02:00
sctp_pcb.h sctp: improve handling of sctp inpcb flags 2022-06-04 07:38:19 +02:00
sctp_peeloff.c sctp: Remove an unused sctp_inpcb field 2021-09-07 11:19:29 -04:00
sctp_peeloff.h
sctp_ss_functions.c sctp: fix typos 2022-03-29 21:09:51 +02:00
sctp_structs.h sctp: Cleanup stream schedulers. 2021-09-23 14:16:56 +02:00
sctp_syscalls.c Convert remaining cap_rights_init users to cap_rights_init_one 2021-01-12 13:16:10 +00:00
sctp_sysctl.c sctp: cleanup 2022-04-14 21:52:25 +02:00
sctp_sysctl.h sctp: fix typos 2022-03-29 21:09:51 +02:00
sctp_timer.c sctp: improve path verification 2022-05-14 08:07:28 +02:00
sctp_timer.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
sctp_uio.h sctp: get rid of stcb send lock 2022-03-29 01:50:17 +02:00
sctp_usrreq.c sctp: improve handling of listen() call 2022-05-29 20:40:30 +02:00
sctp_var.h sctp: more sb_cc related cleanups 2022-05-23 16:09:23 +02:00
sctputil.c sctp: improve handling of sctp inpcb flags 2022-06-04 07:38:19 +02:00
sctputil.h sctp: more sb_cc related cleanups 2022-05-23 16:09:23 +02:00
siftr.c siftr: expose t_flags2 in siftr output 2022-04-07 10:17:09 +01:00
tcp.h tcp: LRO code to deal with all 12 TCP header flags 2022-02-01 18:41:36 +01:00
tcp_accounting.h This brings into sync FreeBSD with the netflix versions of rack and bbr. 2021-05-06 11:22:26 -04:00
tcp_debug.c tcp: Access all 12 TCP header flags via inline function 2022-02-03 16:21:58 +01:00
tcp_debug.h inet: remove tcp_debug from netinet/tcp_debug.h 2021-11-01 23:10:30 +00:00
tcp_ecn.c tcp: Restore correct ECT marking behavior on SACK retransmissions 2022-02-25 20:05:32 +01:00
tcp_ecn.h tcp: Restore correct ECT marking behavior on SACK retransmissions 2022-02-25 20:05:32 +01:00
tcp_fastopen.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
tcp_fastopen.h Use stub inline functions for no-op versions of tcp_fastopen*(). 2022-04-08 17:25:13 -07:00
tcp_fsm.h tcp: Remove unused v6 state definitions 2021-08-27 08:31:32 -04:00
tcp_hostcache.c tcp(4): Fix a typo in a sysctl description 2021-11-30 07:17:30 +01:00
tcp_hpts.c tcp - hpts timing is off when we are above 1200 connections. 2022-04-14 16:04:08 -04:00
tcp_hpts.h tcp - hpts timing is off when we are above 1200 connections. 2022-04-14 16:04:08 -04:00
tcp_input.c sockets: use socket buffer mutexes in struct socket directly 2022-05-12 13:22:12 -07:00
tcp_log_buf.c prometheus_sysctl_exporter: fix metric aliasing 2022-04-19 06:56:39 -06:00
tcp_log_buf.h tcp: remove delayed drop KPI 2021-12-26 08:48:24 -08:00
tcp_lro.c Fix typo (interrups -> interrupts) in a sysctl description in tcp_lro.c. 2022-04-04 13:48:32 -07:00
tcp_lro.h tcp: Avoid conditionally defined fields in union lro_address 2022-02-10 15:39:58 -05:00
tcp_offload.c Path MTU discovery hooks for offloaded TCP connections. 2021-04-21 13:00:16 -07:00
tcp_offload.h Path MTU discovery hooks for offloaded TCP connections. 2021-04-21 13:00:16 -07:00
tcp_output.c tcp: Correctly compute the retransmit length for all 64-bit platforms. 2022-06-03 10:49:17 +02:00
tcp_pcap.c Step 4.2: start divorce of M_EXT and M_EXTPG 2020-05-03 00:37:16 +00:00
tcp_pcap.h
tcp_ratelimit.c tcp_ratelimit: Handle some edge cases with TLS + RL send tags. 2022-01-31 16:40:04 -08:00
tcp_ratelimit.h This takes Warners suggested approach to making it so that 2021-05-07 17:32:32 -04:00
tcp_reass.c tcp: Access all 12 TCP header flags via inline function 2022-02-03 16:21:58 +01:00
tcp_sack.c tcp: Warning cleanup from new compiler. 2022-01-18 07:41:18 -05:00
tcp_seq.h tcp: Correctly compute the retransmit length for all 64-bit platforms. 2022-06-03 10:49:17 +02:00
tcp_stats.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
tcp_subr.c TCP sysctl handlers: fin and lin are only used for INET. 2022-04-13 16:08:21 -07:00
tcp_syncache.c TCP syncache: enhance KASSERT output 2022-02-14 00:03:20 +00:00
tcp_syncache.h tcp: Add/update AccECN related statistics and numbers 2022-02-10 00:21:31 +01:00
tcp_timer.c netinet: simplify RSS ifdef statements 2022-02-07 19:22:03 -07:00
tcp_timer.h tcp: virtualise net.inet.tcp.msl sysctl. 2021-12-26 14:56:04 +00:00
tcp_timewait.c tcp: Access all 12 TCP header flags via inline function 2022-02-03 16:21:58 +01:00
tcp_usrreq.c tcp: plug set-but-not-used vars 2022-04-19 12:45:57 +00:00
tcp_var.h tcp_log_vain/addrs: Use a const pointer for the IPv4 header. 2022-04-13 16:08:21 -07:00
tcpip.h
toecore.c tcp: TCP output method can request tcp_drop 2021-12-26 08:48:19 -08:00
toecore.h Path MTU discovery hooks for offloaded TCP connections. 2021-04-21 13:00:16 -07:00
udp.h headers: make a few more headers self-contained 2022-01-03 10:12:30 +01:00
udp_usrreq.c sockbuf: merge two versions of sbcreatecontrol() into one 2022-05-17 10:10:42 -07:00
udp_var.h udp: allow udp_tun_func_t() to indicate it did not eat the packet 2022-04-12 10:04:59 +02:00
udplite.h White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00