<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wireguard-openbsd/sys/netinet/ip_input.c, branch jd/queueboosts</title>
<subtitle>WireGuard implementation for the OpenBSD kernel</subtitle>
<id>https://git.zx2c4.com/wireguard-openbsd/atom/sys/netinet/ip_input.c?h=jd%2Fqueueboosts</id>
<link rel='self' href='https://git.zx2c4.com/wireguard-openbsd/atom/sys/netinet/ip_input.c?h=jd%2Fqueueboosts'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/'/>
<updated>2020-04-12T11:56:52Z</updated>
<entry>
<title>Stop processing packets under non-exclusive (read) netlock.</title>
<updated>2020-04-12T11:56:52Z</updated>
<author>
<name>mpi</name>
<email>mpi@openbsd.org</email>
</author>
<published>2020-04-12T11:56:52Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=3c6c39936460d119f3d0d08761b69e36164ad920'/>
<id>urn:sha1:3c6c39936460d119f3d0d08761b69e36164ad920</id>
<content type='text'>
Prevent concurrency in the socket layer which is not ready for that.

Two recent data corruptions in pfsync(4) and the socket layer pointed
out that, at least, tun(4) was incorrectly using NET_RUNLOCK().  Until
we find a way in software to avoid future mistakes and to make sure that
only the softnet thread and some ioctls are safe to use a read version
of the lock, put everything back to the exclusive version.

ok stsp@, visa@
</content>
</entry>
<entry>
<title>rdr-to with loopback destination should work even though</title>
<updated>2019-12-23T22:33:57Z</updated>
<author>
<name>sashan</name>
<email>sashan@openbsd.org</email>
</author>
<published>2019-12-23T22:33:57Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=fd4abc02c0bfa4e17134718bec3a3ee471075d51'/>
<id>urn:sha1:fd4abc02c0bfa4e17134718bec3a3ee471075d51</id>
<content type='text'>
IP forwarding is disabled. Issue reported by Daniel Jakots (danj@)

OK bluhm@
</content>
</entry>
<entry>
<title>always pull in if_types.h, to unbreak ramdisks</title>
<updated>2019-12-09T06:48:52Z</updated>
<author>
<name>deraadt</name>
<email>deraadt@openbsd.org</email>
</author>
<published>2019-12-09T06:48:52Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=59e813f93f123809a00fd1a7eff9e9c356922aac'/>
<id>urn:sha1:59e813f93f123809a00fd1a7eff9e9c356922aac</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make sure packet destination address matches interface address,</title>
<updated>2019-12-08T11:08:22Z</updated>
<author>
<name>sashan</name>
<email>sashan@openbsd.org</email>
</author>
<published>2019-12-08T11:08:22Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=144d7e8ec45c41ef58c8b309e276b5f35ab67b6e'/>
<id>urn:sha1:144d7e8ec45c41ef58c8b309e276b5f35ab67b6e</id>
<content type='text'>
where such packet is bound to. This check is enforced if and only
IP forwarding is disabled.

Change discussed with bluhm@, claudio@, deraadt@, markus@, tobhe@

OK bluhm@, claudio@, tobhe@
</content>
</entry>
<entry>
<title>When we needed the kernel lock for local IP packet delivery, mpi@</title>
<updated>2019-08-06T22:57:54Z</updated>
<author>
<name>bluhm</name>
<email>bluhm@openbsd.org</email>
</author>
<published>2019-08-06T22:57:54Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=8f6d2e8bf0b541dc10865826bab4d248a2639690'/>
<id>urn:sha1:8f6d2e8bf0b541dc10865826bab4d248a2639690</id>
<content type='text'>
introduced a queue to grab the lock for multiple packets.  Now we
have only netlock for both IP and protocol input.  So the queue is
not necessary anymore.  It just switches CPU and decreases performance.
So remove the inet and inet6 ip queue for local packets.
To get TCP running on loopback, we have to queue once between TCP
input and output of the two sockets.  So use the loopback queue in
looutput() unconditionally.
OK visa@
</content>
</entry>
<entry>
<title>use m_microtime instead of microtime for SO_TIMESTAMP socketopt handling</title>
<updated>2019-06-10T23:48:21Z</updated>
<author>
<name>dlg</name>
<email>dlg@openbsd.org</email>
</author>
<published>2019-06-10T23:48:21Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=9f78c7ff9bbb70b9cc0719cf32120a4d62b8defc'/>
<id>urn:sha1:9f78c7ff9bbb70b9cc0719cf32120a4d62b8defc</id>
<content type='text'>
drivers can set ph_timestamp when packets are received by the
hardware, which should be more accurate and cheaper than getting
the clock when the packet is queued on the socket.
</content>
</entry>
<entry>
<title>Expose net.inet.ip.arpq.drops to help debug what's going on when a lot</title>
<updated>2018-10-13T18:36:01Z</updated>
<author>
<name>florian</name>
<email>florian@openbsd.org</email>
</author>
<published>2018-10-13T18:36:01Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=346625e3e9cac8662dd8a8e2c95c141a55f182fa'/>
<id>urn:sha1:346625e3e9cac8662dd8a8e2c95c141a55f182fa</id>
<content type='text'>
of packets are being dropped but non of the other counters are increasing.
From Daniel Hokka Zakrisson (daniel AT hozac DOT com), thanks!

OK florian, phessler
</content>
</entry>
<entry>
<title>Convert inetctlerrmap to u_char like inet6ctlerrmap.  That is also</title>
<updated>2018-09-11T21:04:03Z</updated>
<author>
<name>bluhm</name>
<email>bluhm@openbsd.org</email>
</author>
<published>2018-09-11T21:04:03Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=7017ab2caa8a94949cf2ae3d044a49408ce8d2e4'/>
<id>urn:sha1:7017ab2caa8a94949cf2ae3d044a49408ce8d2e4</id>
<content type='text'>
what FreeBSD does.  Remove old #if 0 version of inet6ctlerrmap.
OK mpi@
</content>
</entry>
<entry>
<title>Instead of calculating the mbuf packet header length here and there,</title>
<updated>2018-09-10T16:14:07Z</updated>
<author>
<name>bluhm</name>
<email>bluhm@openbsd.org</email>
</author>
<published>2018-09-10T16:14:07Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=f02cb2e83cda2e7c843af31d86dd656fd741d8ab'/>
<id>urn:sha1:f02cb2e83cda2e7c843af31d86dd656fd741d8ab</id>
<content type='text'>
put the algorithm into a new function m_calchdrlen().  Also set an
uninitialized m_len to 0 in NFS code.
OK claudio@
</content>
</entry>
<entry>
<title>During fragment reassembly, mbuf chains with packet headers were</title>
<updated>2018-09-10T12:47:02Z</updated>
<author>
<name>bluhm</name>
<email>bluhm@openbsd.org</email>
</author>
<published>2018-09-10T12:47:02Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=c1746f11b0c8af70eecbe03fcd247444643d7685'/>
<id>urn:sha1:c1746f11b0c8af70eecbe03fcd247444643d7685</id>
<content type='text'>
created.  Add a new function m_removehdr() do convert packet header
mbufs within the chain to regular mbufs.  Assert that the mbuf at
the beginning of the chain has a packet header.
found by Maxime Villard in NetBSD; from markus@; OK claudio@
</content>
</entry>
</feed>
