mirror of
https://github.com/tailscale/tailscale.git
synced 2024-12-01 14:05:39 +00:00
wgengine/magicsock: fix BenchmarkReceiveFrom.
Previously, this benchmark relied on behavior of the legacy
receive codepath, which I changed in 22507adf
. With this
change, the benchmark instead relies on the new active discovery
path.
Signed-off-by: David Anderson <danderson@tailscale.com>
This commit is contained in:
parent
2d837f79dc
commit
d456bfdc6d
@ -681,6 +681,16 @@ func (c *Conn) callNetInfoCallback(ni *tailcfg.NetInfo) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// addValidDiscoPathForTest makes addr a validated disco address for
|
||||||
|
// discoKey. It's used in tests to enable receiving of packets from
|
||||||
|
// addr without having to spin up the entire active discovery
|
||||||
|
// machinery.
|
||||||
|
func (c *Conn) addValidDiscoPathForTest(discoKey tailcfg.DiscoKey, addr netaddr.IPPort) {
|
||||||
|
c.mu.Lock()
|
||||||
|
defer c.mu.Unlock()
|
||||||
|
c.discoOfAddr[addr] = discoKey
|
||||||
|
}
|
||||||
|
|
||||||
func (c *Conn) SetNetInfoCallback(fn func(*tailcfg.NetInfo)) {
|
func (c *Conn) SetNetInfoCallback(fn func(*tailcfg.NetInfo)) {
|
||||||
if fn == nil {
|
if fn == nil {
|
||||||
panic("nil NetInfoCallback")
|
panic("nil NetInfoCallback")
|
||||||
@ -2147,7 +2157,6 @@ func (c *Conn) SetNetworkMap(nm *controlclient.NetworkMap) {
|
|||||||
delete(c.sharedDiscoKey, dk)
|
delete(c.sharedDiscoKey, dk)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Conn) wantDerpLocked() bool { return c.derpMap != nil }
|
func (c *Conn) wantDerpLocked() bool { return c.derpMap != nil }
|
||||||
|
@ -1497,6 +1497,21 @@ func BenchmarkReceiveFrom(b *testing.B) {
|
|||||||
}
|
}
|
||||||
defer sendConn.Close()
|
defer sendConn.Close()
|
||||||
|
|
||||||
|
// Give conn just enough state that it'll recognize sendConn as a
|
||||||
|
// valid peer and not fall through to the legacy magicsock
|
||||||
|
// codepath.
|
||||||
|
discoKey := tailcfg.DiscoKey{31: 1}
|
||||||
|
conn.SetNetworkMap(&controlclient.NetworkMap{
|
||||||
|
Peers: []*tailcfg.Node{
|
||||||
|
{
|
||||||
|
DiscoKey: discoKey,
|
||||||
|
Endpoints: []string{sendConn.LocalAddr().String()},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
conn.CreateEndpoint([32]byte{1: 1}, "0000000000000000000000000000000000000000000000000000000000000001.disco.tailscale:12345")
|
||||||
|
conn.addValidDiscoPathForTest(discoKey, netaddr.MustParseIPPort(sendConn.LocalAddr().String()))
|
||||||
|
|
||||||
var dstAddr net.Addr = conn.pconn4.LocalAddr()
|
var dstAddr net.Addr = conn.pconn4.LocalAddr()
|
||||||
sendBuf := make([]byte, 1<<10)
|
sendBuf := make([]byte, 1<<10)
|
||||||
for i := range sendBuf {
|
for i := range sendBuf {
|
||||||
|
Loading…
Reference in New Issue
Block a user