version 1.8, 2022/09/29 03:30:40 |
version 1.9, 2022/09/29 21:52:51 |
|
|
|
|
<li>Various kernel improvements: |
<li>Various kernel improvements: |
<ul> |
<ul> |
|
<li>pf(4) automatically allows IGMP and ICMP6 MLD packets with |
|
router alert option. |
|
Special allow-opts rules are no longer needed for multicast |
|
discovery. |
|
<li>Implement "show all routes" to print routing tables in ddb(4). |
|
<li>Count dropped network packets due to low memory in netstat(1). |
<li>... |
<li>... |
</ul> |
</ul> |
|
|
<li>SMP Improvements |
<li>SMP Improvements |
<ul> |
<ul> |
|
<li>Make route timer MP safe and use pool rttmr. |
|
<li>Use kernel lock to protect parts of ARP, ND6 and PPPoE that |
|
are not MP safe. |
|
Lookup of existing ARP entry is MP safe and can run in parallel. |
|
<li>Start up to 4 softnet tasks to run IP input and forwarding |
|
in parallel on multiple cores. |
|
<li>Run IPv4 packet reassembly in parallel. |
|
<li>Run IPv6 hop-by-hop options processing in parallel. |
|
<li>Add a mutex to rate limiting functions to make them MP safe. |
|
<li>Introduce mutex and reference counter for internet protocol |
|
control block. |
|
<li>Protect UDP, raw IP, and divert packet input routines |
|
with a per socket mutex. |
|
<li>Protect recv(2) system call for UDP and raw IP packets with |
|
a per socket mutex and shared netlock. |
|
Allows to receive packets while forwarding in parallel. |
|
<li>Protect multicast deliver loop for UDP and raw IP sockets with rwlock. |
|
<li>Only grab netlock in IGMP and MDL6 timer when necessary. |
|
<li>TCP slow timer runs without netlock. |
|
<li>Rework rwlock so that a writer will get the lock eventually. |
|
Readers cannot share the lock forever. |
|
This prevents starvation of the writer. |
|
<li>Run interface media ioctl with shared netlock so packets |
|
can be processed while running ifconfig(8). |
|
<li>btrace(8) can be used to debug reference counting. |
|
<li>Use MP safe refcount for interface addresses. |
<li>... |
<li>... |
</ul> |
</ul> |
|
|