this is awful, but also it's about 20% better

This commit is contained in:
JackDoan
2025-11-08 14:57:33 -06:00
parent 1f043f84f3
commit 42591c2042
11 changed files with 427 additions and 19 deletions

View File

@@ -257,7 +257,7 @@ func (t *tun) reload(c *config.C, initial bool) error {
return nil
}
func (t *tun) NewMultiQueueReader() (io.ReadWriteCloser, error) {
func (t *tun) NewMultiQueueReader() (TunDev, error) {
//fd, err := unix.Open("/dev/net/tun", os.O_RDWR, 0)
//if err != nil {
// return nil, err
@@ -741,3 +741,24 @@ func (t *tun) Write(b []byte) (int, error) {
}
return maximum, nil
}
func (t *tun) WriteMany(b [][]byte) (int, error) {
maximum := len(b) //we are RXing
hdr := virtio.NetHdr{ //todo
Flags: unix.VIRTIO_NET_HDR_F_DATA_VALID,
GSOType: unix.VIRTIO_NET_HDR_GSO_NONE,
HdrLen: 0,
GSOSize: 0,
CsumStart: 0,
CsumOffset: 0,
NumBuffers: 0,
}
err := t.vdev.TransmitPackets(hdr, b)
if err != nil {
t.l.WithError(err).Error("Transmitting packet")
return 0, err
}
return maximum, nil
}