<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tailscale/wgengine/netstack/netstack_test.go, branch knyar/netmapdiff2</title>
<subtitle>The easiest, most secure way to use WireGuard and 2FA</subtitle>
<id>http://git.waynecole.info/tailscale/atom?h=knyar%2Fnetmapdiff2</id>
<link rel='self' href='http://git.waynecole.info/tailscale/atom?h=knyar%2Fnetmapdiff2'/>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/'/>
<updated>2025-04-16T17:10:45Z</updated>
<entry>
<title>net/netmon: publish events to event bus</title>
<updated>2025-04-16T17:10:45Z</updated>
<author>
<name>David Anderson</name>
<email>dave@tailscale.com</email>
</author>
<published>2025-03-19T17:47:25Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=5399fa159af99380a70347864a4d4acb13efef6b'/>
<id>urn:sha1:5399fa159af99380a70347864a4d4acb13efef6b</id>
<content type='text'>
Updates #15160

Signed-off-by: David Anderson &lt;dave@tailscale.com&gt;
</content>
</entry>
<entry>
<title>all: update the tsd.System constructor name (#15372)</title>
<updated>2025-04-16T17:10:45Z</updated>
<author>
<name>M. J. Fromberger</name>
<email>fromberger@tailscale.com</email>
</author>
<published>2025-03-20T22:18:29Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=deb0b255ff1431ffbd0a4b61bb319f7852ab0e24'/>
<id>urn:sha1:deb0b255ff1431ffbd0a4b61bb319f7852ab0e24</id>
<content type='text'>
Replace NewSystemWithEventBus with plain NewSystem, and update all usage.
See https://github.com/tailscale/tailscale/pull/15355#discussion_r2003910766

Updates #15160

Change-Id: I64d337f09576b41d9ad78eba301a74b9a9d6ebf4
Signed-off-by: M. J. Fromberger &lt;fromberger@tailscale.com&gt;
</content>
</entry>
<entry>
<title>wgengine: plumb an event bus into the userspace engine</title>
<updated>2025-04-16T17:10:45Z</updated>
<author>
<name>M. J. Fromberger</name>
<email>fromberger@tailscale.com</email>
</author>
<published>2025-03-19T16:48:47Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=2ac6e1edfd9504c43134aef788cf873fdc5c2e1c'/>
<id>urn:sha1:2ac6e1edfd9504c43134aef788cf873fdc5c2e1c</id>
<content type='text'>
Updates #15160

Change-Id: Ia695ccdddd09cd950de22abd000d4c531d6bf3c8
Signed-off-by: M. J. Fromberger &lt;fromberger@tailscale.com&gt;
</content>
</entry>
<entry>
<title>all: construct new System values with an event bus pre-populated</title>
<updated>2025-04-16T17:10:45Z</updated>
<author>
<name>M. J. Fromberger</name>
<email>fromberger@tailscale.com</email>
</author>
<published>2025-03-19T16:47:06Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=ffb22ee353d425bb7ba4a6b12739f469d23ad52c'/>
<id>urn:sha1:ffb22ee353d425bb7ba4a6b12739f469d23ad52c</id>
<content type='text'>
Although, at the moment, we do not yet require an event bus to be present, as
we start to add more pieces we will want to ensure it is always available.  Add
a new constructor and replace existing uses of new(tsd.System) throughout.
Update generated files for import changes.

Updates #15160

Change-Id: Ie5460985571ade87b8eac8b416948c7f49f0f64b
Signed-off-by: M. J. Fromberger &lt;fromberger@tailscale.com&gt;
</content>
</entry>
<entry>
<title>net/{netx,memnet},all: add netx.DialFunc, move memnet Network impl</title>
<updated>2025-04-08T17:07:47Z</updated>
<author>
<name>Brad Fitzpatrick</name>
<email>bradfitz@tailscale.com</email>
</author>
<published>2025-04-08T15:32:27Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=fb96137d79628db5493603ac2fc67d2a92f6bc01'/>
<id>urn:sha1:fb96137d79628db5493603ac2fc67d2a92f6bc01</id>
<content type='text'>
This adds netx.DialFunc, unifying a type we have a bazillion other
places, giving it now a nice short name that's clickable in
editors, etc.

That highlighted that my earlier move (03b47a55c7956) of stuff from
nettest into netx moved too much: it also dragged along the memnet
impl, meaning all users of netx.DialFunc who just wanted netx for the
type definition were instead also pulling in all of memnet.

So move the memnet implementation netx.Network into memnet, a package
we already had.

Then use netx.DialFunc in a bunch of places. I'm sure I missed some.
And plenty remain in other repos, to be updated later.

Updates tailscale/corp#27636

Change-Id: I7296cd4591218e8624e214f8c70dab05fb884e95
Signed-off-by: Brad Fitzpatrick &lt;bradfitz@tailscale.com&gt;
</content>
</entry>
<entry>
<title>ipn/{ipnlocal,localapi}, wgengine/netstack: call (*LocalBackend).Shutdown when tests that create them complete</title>
<updated>2024-11-22T15:46:11Z</updated>
<author>
<name>Nick Khyl</name>
<email>nickk@tailscale.com</email>
</author>
<published>2024-11-22T14:25:54Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=462e1fc503fa2c26d8ff1a70a641ebb835ac9f8f'/>
<id>urn:sha1:462e1fc503fa2c26d8ff1a70a641ebb835ac9f8f</id>
<content type='text'>
We have several places where LocalBackend instances are created for testing, but they are rarely shut down
when the tests that created them exit.

In this PR, we update newTestLocalBackend and similar functions to use testing.TB.Cleanup(lb.Shutdown)
to ensure LocalBackend instances are properly shut down during test cleanup.

Updates #12687

Signed-off-by: Nick Khyl &lt;nickk@tailscale.com&gt;
</content>
</entry>
<entry>
<title>wgengine/netstack: remove unused taildrive deps</title>
<updated>2024-11-01T20:40:46Z</updated>
<author>
<name>Brad Fitzpatrick</name>
<email>bradfitz@tailscale.com</email>
</author>
<published>2024-11-01T17:50:40Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=634cc2ba4a03714173f23915e933f9eed918c137'/>
<id>urn:sha1:634cc2ba4a03714173f23915e933f9eed918c137</id>
<content type='text'>
A filesystem was plumbed into netstack in 993acf4475b22d693
but hasn't been used since 2d5d6f5403f3. Remove it.

Noticed while rebasing a Tailscale fork elsewhere.

Updates tailscale/corp#16827

Change-Id: Ib76deeda205ffe912b77a59b9d22853ebff42813
Signed-off-by: Brad Fitzpatrick &lt;bradfitz@tailscale.com&gt;
</content>
</entry>
<entry>
<title>util/usermetrics: make usermetrics non-global</title>
<updated>2024-09-25T13:57:00Z</updated>
<author>
<name>Kristoffer Dalby</name>
<email>kristoffer@tailscale.com</email>
</author>
<published>2024-09-23T16:34:00Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=0e0e53d3b3a6d22469758daa1aecdcca930875db'/>
<id>urn:sha1:0e0e53d3b3a6d22469758daa1aecdcca930875db</id>
<content type='text'>
this commit changes usermetrics to be non-global, this is a building
block for correct metrics if a go process runs multiple tsnets or
in tests.

Updates #13420
Updates tailscale/corp#22075

Signed-off-by: Kristoffer Dalby &lt;kristoffer@tailscale.com&gt;
</content>
</entry>
<entry>
<title>net/tstun,wgengine/netstack: implement TCP GRO for local services (#13315)</title>
<updated>2024-08-29T18:37:48Z</updated>
<author>
<name>Jordan Whited</name>
<email>jordan@tailscale.com</email>
</author>
<published>2024-08-29T18:37:48Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=0926954cf5866f9c2d1bd908d1218d86161adece'/>
<id>urn:sha1:0926954cf5866f9c2d1bd908d1218d86161adece</id>
<content type='text'>
Throughput improves substantially when measured via netstack loopback
(TS_DEBUG_NETSTACK_LOOPBACK_PORT).

Before (d21ebc2):
jwhited@i5-12400-2:~$ iperf3 -V -c 100.100.100.100
Starting Test: protocol: TCP, 1 streams, 131072 byte blocks
Test Complete. Summary Results:
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  5.77 GBytes  4.95 Gbits/sec    0 sender
[  5]   0.00-10.01  sec  5.77 GBytes  4.95 Gbits/sec      receiver

After:
jwhited@i5-12400-2:~$ iperf3 -V -c 100.100.100.100
Starting Test: protocol: TCP, 1 streams, 131072 byte blocks
Test Complete. Summary Results:
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  12.7 GBytes  10.9 Gbits/sec    0 sender
[  5]   0.00-10.00  sec  12.7 GBytes  10.9 Gbits/sec      receiver

Updates tailscale/corp#22754

Signed-off-by: Jordan Whited &lt;jordan@tailscale.com&gt;</content>
</entry>
<entry>
<title>net/tstun,wgengine{/netstack/gro}: refactor and re-enable gVisor GRO for Linux (#13172)</title>
<updated>2024-08-20T22:22:19Z</updated>
<author>
<name>Jordan Whited</name>
<email>jordan@tailscale.com</email>
</author>
<published>2024-08-20T22:22:19Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=df6014f1d7bf437adf239b75a62fd4c2f389ea2a'/>
<id>urn:sha1:df6014f1d7bf437adf239b75a62fd4c2f389ea2a</id>
<content type='text'>
In 2f27319baf71681e221904d3a3ffe1badedc8e2e we disabled GRO due to a
data race around concurrent calls to tstun.Wrapper.Write(). This commit
refactors GRO to be thread-safe, and re-enables it on Linux.

This refactor now carries a GRO type across tstun and netstack APIs
with a lifetime that is scoped to a single tstun.Wrapper.Write() call.

In 25f0a3fc8f6f9cf681bb5afda8e1762816c67a8b we used build tags to
prevent importation of gVisor's GRO package on iOS as at the time we
believed it was contributing to additional memory usage on that
platform. It wasn't, so this commit simplifies and removes those
build tags.

Updates tailscale/corp#22353
Updates tailscale/corp#22125
Updates #6816

Signed-off-by: Jordan Whited &lt;jordan@tailscale.com&gt;</content>
</entry>
</feed>
