Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/sys

Module Name:    src
Committed By:   ozaki-r
Date:           Wed Nov 25 06:21:26 UTC 2015

Modified Files:
        src/sys/net: if_llatbl.c if_llatbl.h
        src/sys/netinet6: in6.c in6_var.h nd6.c nd6.h nd6_nbr.c nd6_rtr.c

Log Message:
Use lltable/llentry for NDP

lltable and llentry were introduced to replace ARP cache data structure
for further restructuring of the routing table: L2 nexthop cache
separation. This change replaces the NDP cache data structure
(llinfo_nd6) with them as well as ARP.

One noticeable change is for neighbor cache GC mechanism that was
introduced to prevent IPv6 DoS attacks. net.inet6.ip6.neighborgcthresh
was the max number of caches that we store in the system. After
introducing lltable/llentry, the value is changed to be per-interface
basis because lltable/llentry stores neighbor caches in each interface
separately. And the change brings one degradation; the old GC mechanism
dropped exceeded packets based on LRU while the new implementation drops
packets in order from the beginning of lltable (a hash table + linked
lists). It would be improved in the future.

Added functions in in6.c come from FreeBSD (as of r286629) and are
tweaked for NetBSD.

Proposed on tech-kern and tech-net.

To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/net/if_llatbl.c
cvs rdiff -u -r1.5 -r1.6 src/sys/net/if_llatbl.h
cvs rdiff -u -r1.190 -r1.191 src/sys/netinet6/in6.c
cvs rdiff -u -r1.74 -r1.75 src/sys/netinet6/in6_var.h
cvs rdiff -u -r1.180 -r1.181 src/sys/netinet6/nd6.c
cvs rdiff -u -r1.67 -r1.68 src/sys/netinet6/nd6.h
cvs rdiff -u -r1.111 -r1.112 src/sys/netinet6/nd6_nbr.c
cvs rdiff -u -r1.104 -r1.105 src/sys/netinet6/nd6_rtr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Home | Main Index | Thread Index | Old Index