From 84b0379dd5869bad00fb3c2d4f4cfe59c8204559 Mon Sep 17 00:00:00 2001 From: Jordan Whited Date: Wed, 15 Jan 2025 15:47:26 -0800 Subject: [PATCH] prober: remove per-packet DERP pub key copying overheads (#14658) Updates tailscale/corp#25883 Signed-off-by: Jordan Whited --- prober/derp.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/prober/derp.go b/prober/derp.go index 870460d96..e811d41ff 100644 --- a/prober/derp.go +++ b/prober/derp.go @@ -925,6 +925,7 @@ func derpProbeBandwidthTUN(ctx context.Context, transferTimeSeconds, totalBytesT destinationAddrBytes := destinationAddr.AsSlice() scratch := make([]byte, 4) + toPubDERPKey := toc.SelfPublicKey() for { n, err := dev.Read(bufs, sizes, tunStartOffset) if err != nil { @@ -953,7 +954,7 @@ func derpProbeBandwidthTUN(ctx context.Context, transferTimeSeconds, totalBytesT copy(pkt[12:16], pkt[16:20]) copy(pkt[16:20], scratch) - if err := fromc.Send(toc.SelfPublicKey(), pkt); err != nil { + if err := fromc.Send(toPubDERPKey, pkt); err != nil { tunReadErrC <- err return } @@ -971,6 +972,7 @@ func derpProbeBandwidthTUN(ctx context.Context, transferTimeSeconds, totalBytesT buf := make([]byte, mtu+tunStartOffset) bufs := make([][]byte, 1) + fromDERPPubKey := fromc.SelfPublicKey() for { m, err := toc.Recv() if err != nil { @@ -979,7 +981,7 @@ func derpProbeBandwidthTUN(ctx context.Context, transferTimeSeconds, totalBytesT } switch v := m.(type) { case derp.ReceivedPacket: - if v.Source != fromc.SelfPublicKey() { + if v.Source != fromDERPPubKey { recvErrC <- fmt.Errorf("got data packet from unexpected source, %v", v.Source) return }