freebsd-dev/sys/netgraph
Gleb Smirnoff 89042ff776 ng_l2tp: improve callout locking.
Apparently e62e4b8594 wasn't enough to close the race between
a queue being flushed by a packet and callout executing, because
the callouts used without a lock aren't 100% bulletproof. To close
the race use callout_init_mtx() for L2TP timers, and make sure that
all calls to ng_callout()/ng_uncallout() are done under the seq lock.

If used properly, a locked callout can be used transparently with
old netgraph KPI of ng_callout/ng_uncallout which predates locked
callouts.

While here, utilize ng_uncallout_drain() instead of ng_uncallout()
on the node shutdown.

PR:			241133
Reviewed by:		mjg, markj
Differential Revision:	https://reviews.freebsd.org/D31476
2021-09-10 11:27:19 -07:00
..
atm net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
bluetooth netgraph: pass return value from callout_stop() unmodified to callers of 2021-09-10 11:26:59 -07:00
netflow routing: Allow using IPv6 next-hops for IPv4 routes (RFC 5549). 2021-08-22 22:56:08 +00:00
netgraph.h netgraph: add ng_uncallout_drain(). 2021-09-10 11:27:04 -07:00
ng_async.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_async.h
ng_atmllc.c
ng_atmllc.h
ng_base.c netgraph: add ng_uncallout_drain(). 2021-09-10 11:27:04 -07:00
ng_bpf.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_bpf.h
ng_bridge.c ng_bridge: Use M_NOWAIT when allocating memory in the newhook routine 2021-08-13 09:49:43 -04:00
ng_bridge.h netgraph/ng_bridge: learn MACs via control message 2021-05-04 22:14:59 +02:00
ng_car.c Fix packet cbs/ebs conversion. 2021-05-19 11:04:08 -04:00
ng_car.h netgraph/ng_car: Add color marking code 2021-01-27 21:22:51 +01:00
ng_checksum.c netgraph/ng_checksum: Fix double free error 2021-05-16 19:39:51 +02:00
ng_checksum.h
ng_cisco.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_cisco.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_deflate.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_deflate.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_device.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_device.h
ng_echo.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_echo.h
ng_eiface.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_eiface.h
ng_etf.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_etf.h
ng_ether_echo.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_ether_echo.h
ng_ether.c netgraph: Fix ng_ether's shutdown handing 2020-12-23 00:12:16 -05:00
ng_ether.h
ng_frame_relay.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_frame_relay.h
ng_gif_demux.c
ng_gif_demux.h
ng_gif.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_gif.h
ng_hole.c
ng_hole.h
ng_hub.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_hub.h
ng_iface.c routing: Allow using IPv6 next-hops for IPv4 routes (RFC 5549). 2021-08-22 22:56:08 +00:00
ng_iface.h ng_iface(4): Remove unsupported protocols. 2020-07-31 14:08:54 +00:00
ng_ip_input.c Widen NET_EPOCH coverage. 2019-10-07 22:40:05 +00:00
ng_ip_input.h
ng_ipfw.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_ipfw.h
ng_ksocket.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_ksocket.h
ng_l2tp.c ng_l2tp: improve callout locking. 2021-09-10 11:27:19 -07:00
ng_l2tp.h
ng_lmi.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_lmi.h
ng_macfilter.c netgraph: macfilter: small fixes 2020-12-09 15:28:56 +00:00
ng_macfilter.h New Netgraph module ng_macfilter: 2020-12-08 15:09:42 +00:00
ng_message.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_mppc.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_mppc.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_nat.c netgraph/ng_nat: Add RFC 6598/Carrier Grade NAT support 2021-01-24 20:38:35 +01:00
ng_nat.h netgraph/ng_nat: Add RFC 6598/Carrier Grade NAT support 2021-01-24 20:38:35 +01:00
ng_one2many.c netgraph/ng_one2main: Clarification in comments about copy mode 2021-01-18 14:10:34 +01:00
ng_one2many.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_parse.c ng_parse: IP address parsing in netgraph eating too many characters 2021-05-18 22:36:28 +02:00
ng_parse.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_patch.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_patch.h
ng_pipe.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_pipe.h Increase BER to PER lookup table size in an attempt to mitigate panics 2020-08-18 22:46:46 +00:00
ng_ppp.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_ppp.h
ng_pppoe.c ng_ether: Enter NET_EPOCH where required 2020-09-02 11:49:22 +00:00
ng_pppoe.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_pptpgre.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_pptpgre.h
ng_pred1.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_pred1.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_rfc1490.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_rfc1490.h
ng_sample.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_sample.h
ng_socket.c socket: Implement SO_RERROR 2021-07-28 09:35:09 -07:00
ng_socket.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_socketvar.h
ng_source.c netgraph/ng_source: Switch queuing framework 2021-01-29 12:34:53 +01:00
ng_source.h
ng_split.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_split.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_sppp.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_sppp.h
ng_tag.c netgraph/ng_tag: permit variable length data 2021-01-18 13:23:22 +01:00
ng_tag.h
ng_tcpmss.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_tcpmss.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_tee.c
ng_tee.h
ng_tty.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_tty.h
ng_UI.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_UI.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_vjc.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_vjc.h
ng_vlan_rotate.c netgraph/ng_vlan_rotate: IEEE 802.1ad VLAN manipulation netgraph type 2021-01-26 16:53:24 +01:00
ng_vlan_rotate.h netgraph/ng_vlan_rotate: IEEE 802.1ad VLAN manipulation netgraph type 2021-01-26 16:53:24 +01:00
ng_vlan.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ng_vlan.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
NOTES
qos.h netgraph/ng_car: Add color marking code 2021-01-27 21:22:51 +01:00