Home | History | Annotate | Download | only in npf
History log of /src/sys/net/npf/lpm.c
RevisionDateAuthorComments
 1.6  12-Jun-2019  christos Avoid LOCKDEBUG pserialize panic by implementing suggestion #1 from

http://mail-index.netbsd.org/current-users/2019/02/24/msg035220.html:

Convert the mutex to spin-lock at IPL_NET (but it is excessive) and
convert the memory allocations in that code path to KM_NOSLEEP.
 1.5  29-Sep-2018  rmind NPF: Major rework -- migrate NPF to the libnv library.
- This conversion significantly simplifies the code and moves NPF to
a binary serialisation format (replacing the XML-like format).
- Fix some memory/reference leaks and possibly use-after-free bugs.
- Bump NPF_VERSION as this change makes libnpf incompatible with the
previous versions. Also, different serialisation format means NPF
connection/config saving and loading is not compatible with the
previous versions either.

Thanks to christos@ for extra testing.
 1.4  01-Jun-2017  chs branches: 1.4.8; 1.4.10; 1.4.12;
remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.
 1.3  26-Dec-2016  rmind branches: 1.3.2; 1.3.6; 1.3.8;
Fix kmem_free() in hashmap_remove().
 1.2  26-Dec-2016  rmind Fix kmem_free() sizes in hashmap_rehash() and lpm_clear().
 1.1  09-Dec-2016  christos branches: 1.1.2;
This patches ditches the ptree(3) library, because it is broken (you
can get missing entries!). Instead, as a temporary solution, we switch
to a simple linear scan of the hash tables for the longest-prefix-match
(lpm.c lpm.h) algorithm. In fact, with few unique prefixes in the set,
on modern hardware this simple algorithm is pretty fast anyway!
 1.1.2.4  27-Dec-2016  snj Pull up following revision(s) (requested by rmind in ticket #1340):
sys/net/npf/lpm.c: revision 1.3
Fix kmem_free() in hashmap_remove().
 1.1.2.3  26-Dec-2016  snj Pull up following revision(s) (requested by rmind in ticket #1339):
sys/net/npf/lpm.c: revision 1.2
Fix kmem_free() sizes in hashmap_rehash() and lpm_clear().
 1.1.2.2  18-Dec-2016  snj Pull up following revision(s) (requested by rmind in ticket #1319):
sys/modules/npf/Makefile: revision 1.19
sys/net/npf/files.npf: revision 1.18
sys/net/npf/lpm.c: revision 1.1
sys/net/npf/lpm.h: revision 1.1
sys/net/npf/npf_impl.h: revision 1.62
sys/net/npf/npf_tableset.c: revision 1.24
sys/net/npf/npf_tableset_ptree.c: file removal
sys/rump/net/lib/libnpf/Makefile: revision 1.18
This patches ditches the ptree(3) library, because it is broken (you
can get missing entries!). Instead, as a temporary solution, we switch
to a simple linear scan of the hash tables for the longest-prefix-match
(lpm.c lpm.h) algorithm. In fact, with few unique prefixes in the set,
on modern hardware this simple algorithm is pretty fast anyway!
--
ditch ptree and use lpm
--
remove ptree add lpm
 1.1.2.1  09-Dec-2016  snj file lpm.c was added on branch netbsd-7 on 2016-12-18 07:40:50 +0000
 1.3.8.3  28-Aug-2017  skrll Sync with HEAD
 1.3.8.2  05-Feb-2017  skrll Sync with HEAD
 1.3.8.1  26-Dec-2016  skrll file lpm.c was added on branch nick-nhusb on 2017-02-05 13:40:58 +0000
 1.3.6.2  18-Jan-2017  skrll Sync with netbsd-5
 1.3.6.1  26-Dec-2016  skrll file lpm.c was added on branch netbsd-7-nhusb on 2017-01-18 08:46:46 +0000
 1.3.2.2  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.3.2.1  26-Dec-2016  pgoyette file lpm.c was added on branch pgoyette-localcount on 2017-01-07 08:56:50 +0000
 1.4.12.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.4.12.1  10-Jun-2019  christos Sync with HEAD
 1.4.10.1  30-Sep-2018  pgoyette Ssync with HEAD
 1.4.8.2  03-Dec-2017  jdolecek update from HEAD
 1.4.8.1  01-Jun-2017  jdolecek file lpm.c was added on branch tls-maxphys on 2017-12-03 11:39:03 +0000

RSS XML Feed