Skip to content

Commit d241544

Browse files
Merge pull request #678 from TrekkieCoder/main
gh-654 loxilb non-privileged mode support for k8s
2 parents 0d472b0 + 19ea58c commit d241544

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

pkg/loxinet/layer2.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,6 @@ func l2FdbAttrCopy(dst *FdbAttr, src *FdbAttr) {
111111
dst.Dst = src.Dst
112112
}
113113

114-
115114
func (f *FdbEnt) tryResolveUpper(zn *Zone, addr net.IP) {
116115
if f.Port == nil {
117116
return
@@ -121,7 +120,7 @@ func (f *FdbEnt) tryResolveUpper(zn *Zone, addr net.IP) {
121120
name = f.Port.SInfo.PortReal.Name
122121
}
123122

124-
ret, Sip, _ := zn.L3.IfaSelect(name, addr, true)
123+
ret, Sip, _ := zn.L3.IfaSelect(name, addr, true)
125124
if ret != 0 {
126125
tk.LogIt(tk.LogDebug, "tryResolve: failed to select l3 ifa select (%s:%s)\n", name, addr.String())
127126
return

pkg/loxinet/loxinet.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@ func loxiNetInit() {
207207
RunCommand(MkfsScript, true)
208208
}
209209
}
210+
utils.MkTunFsIfNotExist()
210211

211212
sysctlInit()
212213

pkg/utils/net.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,11 @@ import (
2323
"crypto/x509"
2424
"encoding/binary"
2525
"errors"
26+
"golang.org/x/sys/unix"
2627
"io"
2728
"net"
2829
"net/http"
30+
"os"
2931
"syscall"
3032
"time"
3133
"unsafe"
@@ -336,3 +338,21 @@ func ArpResolver(dIP uint32) {
336338
return
337339
}
338340
}
341+
342+
func MkTunFsIfNotExist() error {
343+
tunPath := "/dev/net"
344+
tunFile := "/dev/net/tun"
345+
if _, err := os.Stat(tunPath); os.IsNotExist(err) {
346+
if err := os.MkdirAll("/dev/net", 0751); err != nil {
347+
return err
348+
}
349+
}
350+
351+
if _, err := os.Stat(tunFile); os.IsNotExist(err) {
352+
dev := unix.Mkdev(10, 200)
353+
if err := unix.Mknod("/dev/net/tun", 0600|unix.S_IFCHR, int(dev)); err != nil {
354+
return err
355+
}
356+
}
357+
return nil
358+
}

0 commit comments

Comments
 (0)