freebsd-nq/sys/netpfil/ipfw
Andrey V. Elsukov 369bc48dc5 Do not acquire IPFW_WLOCK when a named object is created and destroyed.
Acquiring of IPFW_WLOCK is requried for cases when we are going to
change some data that can be accessed during processing of packets flow.
When we create new named object, there are not yet any rules, that
references it, thus holding IPFW_UH_WLOCK is enough to safely update
needed structures. When we destroy an object, we do this only when its
reference counter becomes zero. And it is safe to not acquire IPFW_WLOCK,
because noone references it. The another case is when we failed to finish
some action and thus we are doing rollback and destroying an object, in
this case it is still not referenced by rules and no need to acquire
IPFW_WLOCK.

This also fixes panic with INVARIANTS due to recursive IPFW_WLOCK acquiring.

MFC after:	1 week
Sponsored by:	Yandex LLC
2017-09-20 22:00:06 +00:00
..
nat64 Do not acquire IPFW_WLOCK when a named object is created and destroyed. 2017-09-20 22:00:06 +00:00
nptv6 Do not acquire IPFW_WLOCK when a named object is created and destroyed. 2017-09-20 22:00:06 +00:00
pmod Fix IPv6 extension header parsing. The length field doesn't include the 2017-06-29 19:06:43 +00:00
test cleanup and document in some detail the internals of the testing code 2016-01-27 02:22:31 +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 Import Dummynet AQM version 0.2.1 (CoDel, FQ-CoDel, PIE and FQ-PIE). 2016-05-26 21:40:13 +00:00
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 Correct a typo in a comment. 2016-05-26 22:03:28 +00:00
dn_heap.c avoid warnings for signed/unsigned comparison and unused arguments 2016-01-26 22:45:05 +00:00
dn_heap.h Fix typos in comments (returing -> returning) 2017-02-07 00:09:48 +00:00
dn_sched_fifo.c Import Dummynet AQM version 0.2.1 (CoDel, FQ-CoDel, PIE and FQ-PIE). 2016-05-26 21:40:13 +00:00
dn_sched_fq_codel_helper.h Import Dummynet AQM version 0.2.1 (CoDel, FQ-CoDel, PIE and FQ-PIE). 2016-05-26 21:40:13 +00:00
dn_sched_fq_codel.c Import Dummynet AQM version 0.2.1 (CoDel, FQ-CoDel, PIE and FQ-PIE). 2016-05-26 21:40:13 +00:00
dn_sched_fq_codel.h Import Dummynet AQM version 0.2.1 (CoDel, FQ-CoDel, PIE and FQ-PIE). 2016-05-26 21:40:13 +00:00
dn_sched_fq_pie.c Fix the queue delay estimation in PIE/FQ-PIE when the timestamp 2017-05-19 08:38:03 +00:00
dn_sched_prio.c Import Dummynet AQM version 0.2.1 (CoDel, FQ-CoDel, PIE and FQ-PIE). 2016-05-26 21:40:13 +00:00
dn_sched_qfq.c Import Dummynet AQM version 0.2.1 (CoDel, FQ-CoDel, PIE and FQ-PIE). 2016-05-26 21:40:13 +00:00
dn_sched_rr.c Import Dummynet AQM version 0.2.1 (CoDel, FQ-CoDel, PIE and FQ-PIE). 2016-05-26 21:40:13 +00:00
dn_sched_wf2q.c Import Dummynet AQM version 0.2.1 (CoDel, FQ-CoDel, PIE and FQ-PIE). 2016-05-26 21:40:13 +00:00
dn_sched.h Get closer to a VIMAGE network stack teardown from top to bottom rather 2016-06-21 13:48:49 +00:00
dummynet.txt sys/net*: minor spelling fixes. 2016-05-03 18:05:43 +00:00
ip_dn_glue.c Import Dummynet AQM version 0.2.1 (CoDel, FQ-CoDel, PIE and FQ-PIE). 2016-05-26 21:40:13 +00:00
ip_dn_io.c Import Dummynet AQM version 0.2.1 (CoDel, FQ-CoDel, PIE and FQ-PIE). 2016-05-26 21:40:13 +00:00
ip_dn_private.h Import Dummynet AQM version 0.2.1 (CoDel, FQ-CoDel, PIE and FQ-PIE). 2016-05-26 21:40:13 +00:00
ip_dummynet.c In dummynet(4), random chunks of memory are casted to struct dn_*, 2017-01-09 20:51:51 +00:00
ip_fw2.c Fix GRE over IPv6 tunnels with IPFW 2017-07-13 09:01:22 +00:00
ip_fw_bpf.c Move logging via BPF support into separate file. 2016-08-13 15:41:04 +00:00
ip_fw_dynamic.c Do not acquire IPFW_WLOCK when a named object is created and destroyed. 2017-09-20 22:00:06 +00:00
ip_fw_eaction.c Add O_EXTERNAL_DATA opcode support. 2017-04-03 02:44:40 +00:00
ip_fw_iface.c Remove "IPFW static rules" rmlock. 2017-04-03 13:35:04 +00:00
ip_fw_log.c Add the log formatting for an external action opcode. 2017-04-03 02:26:30 +00:00
ip_fw_nat.c Remove "IPFW static rules" rmlock. 2017-04-03 13:35:04 +00:00
ip_fw_pfil.c Remove the mbuf tag after use (for reinjected packets). 2016-11-03 00:26:58 +00:00
ip_fw_private.h Remove "IPFW static rules" rmlock. 2017-04-03 13:35:04 +00:00
ip_fw_sockopt.c Remove "IPFW static rules" rmlock. 2017-04-03 13:35:04 +00:00
ip_fw_table_algo.c Use address of specific union member instead of whole union address to 2017-04-14 11:41:09 +00:00
ip_fw_table_value.c Remove "IPFW static rules" rmlock. 2017-04-03 13:35:04 +00:00
ip_fw_table.c Do not acquire IPFW_WLOCK when a named object is created and destroyed. 2017-09-20 22:00:06 +00:00
ip_fw_table.h Add ipfw_check_object_name_generic() function to do basic checks for an 2015-11-03 10:29:46 +00:00