mirror of
https://github.com/buger/goreplay.git
synced 2024-04-21 12:32:02 +00:00
The cause was not ZeroCopy but wrong SetTimeout (block cause a lot of overhead). Packet processing previously used channels, but now, with ring buffer, using select was causing issue. Adding `default` clause fixed the issue.
21 lines
425 B
Go
21 lines
425 B
Go
package capture
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/google/gopacket"
|
|
)
|
|
|
|
// Socket is any interface that defines the behaviors of Socket
|
|
type Socket interface {
|
|
ZeroCopyReadPacketData() ([]byte, gopacket.CaptureInfo, error)
|
|
WritePacketData([]byte) error
|
|
SetBPFFilter(string) error
|
|
SetPromiscuous(bool) error
|
|
SetSnapLen(int) error
|
|
GetSnapLen() int
|
|
SetTimeout(time.Duration) error
|
|
SetLoopbackIndex(i int32)
|
|
Close() error
|
|
}
|