Andrey V. Elsukov 2c87fdf059 Rework if_ipsec(4) to use epoch(9) instead of rmlock.
* use CK_LIST and FNV hash to keep chains of softc;
* read access to softc is protected by epoch();
* write access is protected by ipsec_ioctl_sx. Changing of softc fields
  is allowed only when softc is unlinked from CK_LIST chains.
* linking/unlinking of softc is allowed only when ipsec_ioctl_sx is
  exclusive locked.
* the plain LIST of all softc is replaced by hash table that uses ingress
  address of tunnels as a key.
* added support for appearing/disappearing of ingress address handling.
  Now it is allowed configure non-local ingress IP address, and thus the
  problem with if_ipsec(4) configuration that happens on boot, when
  ingress address is not yet configured, is solved.

MFC after:	1 month
Sponsored by:	Yandex LLC
Differential Revision:	https://reviews.freebsd.org/D17190
2018-10-21 18:24:20 +00:00
..
2018-05-31 09:11:21 +00:00
2017-02-06 08:49:57 +00:00
2018-10-03 07:35:16 +00:00
2018-10-03 07:35:16 +00:00
2018-10-21 16:51:35 +00:00
2018-05-19 05:27:49 +00:00
2018-03-23 16:56:44 +00:00
2018-03-23 16:56:44 +00:00
2018-06-16 19:21:09 +00:00
2017-07-24 03:59:50 +00:00