From c0abd753ebf3fc360747bc4c2441f90be13aeb77 Mon Sep 17 00:00:00 2001 From: mzz2017 <2017@duck.com> Date: Sat, 25 Mar 2023 13:52:52 +0800 Subject: [PATCH] optimize: reduce UDP buffer --- control/control_plane.go | 2 +- control/udp_endpoint.go | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/control/control_plane.go b/control/control_plane.go index 6a9e3af..6646a19 100644 --- a/control/control_plane.go +++ b/control/control_plane.go @@ -649,7 +649,7 @@ func (c *ControlPlane) Serve(readyChan chan<- bool, listener *Listener) (err err return default: } - var buf [65535]byte + var buf [EthernetMtu]byte var oob [120]byte // Size for original dest n, oobn, _, src, err := udpConn.ReadMsgUDPAddrPort(buf[:], oob[:]) if err != nil { diff --git a/control/udp_endpoint.go b/control/udp_endpoint.go index 985af00..4ddf9a7 100644 --- a/control/udp_endpoint.go +++ b/control/udp_endpoint.go @@ -8,14 +8,18 @@ package control import ( "errors" "fmt" + "github.com/daeuniverse/dae/component/outbound/dialer" "github.com/mzz2017/softwind/netproxy" "github.com/mzz2017/softwind/pool" - "github.com/daeuniverse/dae/component/outbound/dialer" "net/netip" "sync" "time" ) +const ( + EthernetMtu = 1500 +) + type UdpHandler func(data []byte, from netip.AddrPort) error type UdpEndpoint struct { @@ -30,7 +34,7 @@ type UdpEndpoint struct { } func (ue *UdpEndpoint) start() { - buf := pool.Get(0xffff) + buf := pool.Get(EthernetMtu) defer pool.Put(buf) for { n, from, err := ue.conn.ReadFrom(buf[:])