<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wireguard-go/tun/netstack, branch master</title>
<subtitle>Go implementation of WireGuard</subtitle>
<id>https://git.zx2c4.com/wireguard-go/atom/tun/netstack?h=master</id>
<link rel='self' href='https://git.zx2c4.com/wireguard-go/atom/tun/netstack?h=master'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-go/'/>
<updated>2025-05-05T13:09:09Z</updated>
<entry>
<title>tun/netstack: cleanup network stack at closing time</title>
<updated>2025-05-05T13:09:09Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2025-05-05T13:09:09Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-go/commit/?id=45916071ba13c8f6ec44dfc46bda0449d2d54a9f'/>
<id>urn:sha1:45916071ba13c8f6ec44dfc46bda0449d2d54a9f</id>
<content type='text'>
Colin's commit went a step further and protected tun.incomingPacket with
a lock on shutdown, but let's see if the tun.stack.Close() call actually
solves that on its own.

Suggested-by: kshangx &lt;hikeshang@hotmail.com&gt;
Suggested-by: Colin Adler &lt;colin1adler@gmail.com&gt;
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>tun/netstack: remove usage of pkt.IsNil()</title>
<updated>2025-05-05T13:05:35Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2025-05-04T15:54:57Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-go/commit/?id=e3c1354d27f53462801e1b86b4275699a6f9fdac'/>
<id>urn:sha1:e3c1354d27f53462801e1b86b4275699a6f9fdac</id>
<content type='text'>
Since 3c75945fd ("netstack: remove PacketBuffer.IsNil()") this has been
invalid. Follow the replacement pattern of that commit.

The old definition inlined to the same code anyway:

 func (pk *PacketBuffer) IsNil() bool {
 	return pk == nil
 }

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>global: bump copyright notice</title>
<updated>2025-05-05T13:05:35Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2025-05-04T15:48:53Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-go/commit/?id=9eb3221f1de589e5dd6a1721fdd7dc0fde0eb10b'/>
<id>urn:sha1:9eb3221f1de589e5dd6a1721fdd7dc0fde0eb10b</id>
<content type='text'>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>go.mod,tun/netstack: bump gvisor</title>
<updated>2023-10-10T13:37:17Z</updated>
<author>
<name>James Tucker</name>
<email>james@tailscale.com</email>
</author>
<published>2023-09-27T23:15:09Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-go/commit/?id=42ec952eadc297efadc70b9911d5a59bcd2db4a6'/>
<id>urn:sha1:42ec952eadc297efadc70b9911d5a59bcd2db4a6</id>
<content type='text'>
Signed-off-by: James Tucker &lt;james@tailscale.com&gt;
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>netstack: fix typo</title>
<updated>2023-07-04T13:56:30Z</updated>
<author>
<name>Dimitri Papadopoulos Orfanos</name>
<email>3234522+DimitriPapadopoulos@users.noreply.github.com</email>
</author>
<published>2023-05-17T07:16:27Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-go/commit/?id=469159ecf7d108dc1d44f8789dedbb463b7bd3a6'/>
<id>urn:sha1:469159ecf7d108dc1d44f8789dedbb463b7bd3a6</id>
<content type='text'>
Signed-off-by: Dimitri Papadopoulos Orfanos &lt;3234522+DimitriPapadopoulos@users.noreply.github.com&gt;
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>global: remove old style build tags</title>
<updated>2023-03-23T17:34:09Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2023-03-23T17:33:31Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-go/commit/?id=cc20c08c9615edbb31b96c89201bf1b2189fe159'/>
<id>urn:sha1:cc20c08c9615edbb31b96c89201bf1b2189fe159</id>
<content type='text'>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>tun/netstack: enable TCP Selective Acknowledgements</title>
<updated>2023-03-10T13:52:39Z</updated>
<author>
<name>Jordan Whited</name>
<email>jordan@tailscale.com</email>
</author>
<published>2023-03-09T19:06:01Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-go/commit/?id=5819c6af28239b973958a8d197f9e39926e7b9f1'/>
<id>urn:sha1:5819c6af28239b973958a8d197f9e39926e7b9f1</id>
<content type='text'>
Enable TCP SACK for the gVisor Stack used in tun/netstack. This can
improve throughput by an order of magnitude in the presence of packet
loss.

Reviewed-by: James Tucker &lt;james@tailscale.com&gt;
Signed-off-by: Jordan Whited &lt;jordan@tailscale.com&gt;
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>conn, device, tun: implement vectorized I/O plumbing</title>
<updated>2023-03-10T13:52:13Z</updated>
<author>
<name>Jordan Whited</name>
<email>jordan@tailscale.com</email>
</author>
<published>2023-03-02T22:48:02Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-go/commit/?id=3bb8fec7e41fcc2138ddb4cba3f46100814fc523'/>
<id>urn:sha1:3bb8fec7e41fcc2138ddb4cba3f46100814fc523</id>
<content type='text'>
Accept packet vectors for reading and writing in the tun.Device and
conn.Bind interfaces, so that the internal plumbing between these
interfaces now passes a vector of packets. Vectors move untouched
between these interfaces, i.e. if 128 packets are received from
conn.Bind.Read(), 128 packets are passed to tun.Device.Write(). There is
no internal buffering.

Currently, existing implementations are only adjusted to have vectors
of length one. Subsequent patches will improve that.

Also, as a related fixup, use the unix and windows packages rather than
the syscall package when possible.

Co-authored-by: James Tucker &lt;james@tailscale.com&gt;
Signed-off-by: James Tucker &lt;james@tailscale.com&gt;
Signed-off-by: Jordan Whited &lt;jordan@tailscale.com&gt;
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>tun: guard Device.Events() against chan writes</title>
<updated>2023-02-09T15:35:58Z</updated>
<author>
<name>Jordan Whited</name>
<email>jordan@tailscale.com</email>
</author>
<published>2023-02-08T18:42:07Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-go/commit/?id=1e2c3e5a3c1463cb8c7ec92d74aa739587b6642f'/>
<id>urn:sha1:1e2c3e5a3c1463cb8c7ec92d74aa739587b6642f</id>
<content type='text'>
Signed-off-by: Jordan Whited &lt;jordan@tailscale.com&gt;
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>global: bump copyright year</title>
<updated>2023-02-07T23:39:29Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2022-09-20T15:21:32Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-go/commit/?id=ebbd4a433088a06277b7e7bc6e13322c167d5554'/>
<id>urn:sha1:ebbd4a433088a06277b7e7bc6e13322c167d5554</id>
<content type='text'>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
</feed>
