Skip to content

Commit 793d717

Browse files
committed
feature: set mtu to tun device
1 parent 40526d8 commit 793d717

File tree

6 files changed

+26
-5
lines changed

6 files changed

+26
-5
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
language: go
22
go:
3-
- 1.13
3+
- 1.16
44
before_install:
55
- go mod download
66
install:

controller/registry.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ func (s *RegistryServer) onConn(conn net.Conn) {
167167
}()
168168

169169
// reply to edge
170-
conn.SetWriteDeadline(time.Now().Add(time.Second*10))
170+
conn.SetWriteDeadline(time.Now().Add(time.Second * 10))
171171
err = codec.WriteJSON(conn, codec.CmdRegister, &codec.RegisterReply{
172172
EdgeList: otherEdges,
173173
Routes: otherRoutes,
@@ -182,7 +182,7 @@ func (s *RegistryServer) onConn(conn net.Conn) {
182182
fail := 0
183183
hb := codec.Heartbeat{}
184184
for {
185-
conn.SetReadDeadline(time.Now().Add(time.Second*30))
185+
conn.SetReadDeadline(time.Now().Add(time.Second * 30))
186186
header, body, err := codec.Read(conn)
187187
conn.SetReadDeadline(time.Time{})
188188
if err != nil {

edge/main.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,16 @@ func main() {
2121
}
2222

2323
defer iface.Close()
24-
iface.Up()
24+
err = iface.Up()
25+
if err != nil {
26+
log.Error("up interface fail: %v", err)
27+
return
28+
}
29+
30+
err = iface.SetMTU(1400)
31+
if err != nil {
32+
log.Error("set mtu fail: %v", err)
33+
}
2534

2635
// create cframe udp server
2736
// just hard code listen address once without env var

edge/tun.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,14 @@ func NewInterface() (*Interface, error) {
3737
return nil, fmt.Errorf("new interface %s fail", ifconfig.Name)
3838
}
3939

40+
func (iface *Interface) SetMTU(mtu int) error {
41+
out, err := execCmd("ifconfig", []string{iface.tun.Name(), "mtu", fmt.Sprintf("%d", mtu)})
42+
if err != nil {
43+
return fmt.Errorf("set mtu fail: %s %v", out, err)
44+
}
45+
return nil
46+
}
47+
4048
func (iface *Interface) Up() error {
4149
switch runtime.GOOS {
4250
case "linux":

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ require (
3838
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 // indirect
3939
github.com/urfave/cli/v2 v2.3.0
4040
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 // indirect
41+
github.com/xtaci/smux v2.0.1+incompatible
4142
go.etcd.io/bbolt v1.3.3 // indirect
4243
go.uber.org/zap v1.15.0 // indirect
4344
golang.org/x/lint v0.0.0-20200302205851-738671d3881b // indirect

go.sum

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,9 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/
104104
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
105105
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
106106
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
107-
github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=
108107
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
108+
github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM=
109+
github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
109110
github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4 h1:z53tR0945TRRQO/fLEVPI6SMv7ZflF0TEaTAoU7tOzg=
110111
github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
111112
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho=
@@ -216,6 +217,8 @@ github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/X
216217
github.com/wendal/errors v0.0.0-20130201093226-f66c77a7882b/go.mod h1:Q12BUT7DqIlHRmgv3RskH+UCM/4eqVMgI0EMmlSpAXc=
217218
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8=
218219
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
220+
github.com/xtaci/smux v2.0.1+incompatible h1:4NrCD5VzuFktMCxK08IShR0C5vKyNICJRShUzvk0U34=
221+
github.com/xtaci/smux v2.0.1+incompatible/go.mod h1:f+nYm6SpuHMy/SH0zpbvAFHT1QoMcgLOsWcFip5KfPw=
219222
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
220223
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
221224
github.com/yuin/gopher-lua v0.0.0-20171031051903-609c9cd26973/go.mod h1:aEV29XrmTYFr3CiRxZeGHpkvbwq+prZduBqMaascyCU=

0 commit comments

Comments
 (0)