mirror of
https://github.com/slackhq/nebula.git
synced 2025-11-23 08:54:25 +01:00
more!
This commit is contained in:
14
interface.go
14
interface.go
@@ -325,10 +325,6 @@ func (f *Interface) listenOut(q int) {
|
|||||||
func (f *Interface) listenIn(reader overlay.TunDev, queueNum int) {
|
func (f *Interface) listenIn(reader overlay.TunDev, queueNum int) {
|
||||||
runtime.LockOSThread()
|
runtime.LockOSThread()
|
||||||
|
|
||||||
originalPackets := make([][]byte, batch) //todo batch config
|
|
||||||
for i := 0; i < batch; i++ {
|
|
||||||
originalPackets[i] = make([]byte, 0xffff)
|
|
||||||
}
|
|
||||||
fwPacket := &firewall.Packet{}
|
fwPacket := &firewall.Packet{}
|
||||||
nb := make([]byte, 12, 12)
|
nb := make([]byte, 12, 12)
|
||||||
|
|
||||||
@@ -343,10 +339,7 @@ func (f *Interface) listenIn(reader overlay.TunDev, queueNum int) {
|
|||||||
|
|
||||||
for {
|
for {
|
||||||
n, err := reader.ReadMany(packets, queueNum)
|
n, err := reader.ReadMany(packets, queueNum)
|
||||||
if f.l.Level == logrus.DebugLevel {
|
|
||||||
f.listenInMetric.Update(int64(n))
|
|
||||||
}
|
|
||||||
f.listenInN = n
|
|
||||||
//todo!!
|
//todo!!
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errors.Is(err, os.ErrClosed) && f.closed.Load() {
|
if errors.Is(err, os.ErrClosed) && f.closed.Load() {
|
||||||
@@ -358,6 +351,11 @@ func (f *Interface) listenIn(reader overlay.TunDev, queueNum int) {
|
|||||||
os.Exit(2)
|
os.Exit(2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if f.l.Level == logrus.DebugLevel {
|
||||||
|
f.listenInMetric.Update(int64(n))
|
||||||
|
}
|
||||||
|
f.listenInN = n
|
||||||
|
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
for i, pkt := range packets[:n] {
|
for i, pkt := range packets[:n] {
|
||||||
outPackets[i].OutLen = -1
|
outPackets[i].OutLen = -1
|
||||||
|
|||||||
@@ -358,7 +358,7 @@ func (dev *Device) ReceivePackets(out []*packet.VirtIOPacket) (int, error) {
|
|||||||
var chains []virtqueue.UsedElement
|
var chains []virtqueue.UsedElement
|
||||||
var err error
|
var err error
|
||||||
//if len(dev.extraRx) == 0 {
|
//if len(dev.extraRx) == 0 {
|
||||||
chains, err = dev.ReceiveQueue.BlockAndGetHeadsCapped(context.TODO(), 64) //todo config batch
|
chains, err = dev.ReceiveQueue.BlockAndGetHeadsCapped(context.TODO(), len(out))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user