diff --git a/interface.go b/interface.go index 1cc2b72..a44b574 100644 --- a/interface.go +++ b/interface.go @@ -325,10 +325,6 @@ func (f *Interface) listenOut(q int) { func (f *Interface) listenIn(reader overlay.TunDev, queueNum int) { runtime.LockOSThread() - originalPackets := make([][]byte, batch) //todo batch config - for i := 0; i < batch; i++ { - originalPackets[i] = make([]byte, 0xffff) - } fwPacket := &firewall.Packet{} nb := make([]byte, 12, 12) @@ -343,10 +339,7 @@ func (f *Interface) listenIn(reader overlay.TunDev, queueNum int) { for { n, err := reader.ReadMany(packets, queueNum) - if f.l.Level == logrus.DebugLevel { - f.listenInMetric.Update(int64(n)) - } - f.listenInN = n + //todo!! if err != nil { 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) } + if f.l.Level == logrus.DebugLevel { + f.listenInMetric.Update(int64(n)) + } + f.listenInN = n + now := time.Now() for i, pkt := range packets[:n] { outPackets[i].OutLen = -1 diff --git a/overlay/vhostnet/device.go b/overlay/vhostnet/device.go index b78d373..7389eb3 100644 --- a/overlay/vhostnet/device.go +++ b/overlay/vhostnet/device.go @@ -358,7 +358,7 @@ func (dev *Device) ReceivePackets(out []*packet.VirtIOPacket) (int, error) { var chains []virtqueue.UsedElement var err error //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 { return 0, err }