mirror of
https://github.com/slackhq/nebula.git
synced 2025-12-29 01:58:28 +01:00
small simplification
This commit is contained in:
@@ -352,7 +352,7 @@ func (f *Interface) listenIn(reader overlay.TunDev, queueNum int) {
|
||||
|
||||
now := time.Now()
|
||||
for i, pkt := range packets[:n] {
|
||||
outPackets[i].OutLen = -1
|
||||
outPackets[i].ReadyToSend = false
|
||||
f.consumeInsidePacket(pkt.Payload, fwPacket, nb, outPackets[i], queueNum, conntrackCache.Get(f.l), now)
|
||||
reader.RecycleRxSeg(pkt, i == (n-1), queueNum) //todo handle err?
|
||||
pkt.Reset()
|
||||
|
||||
@@ -181,9 +181,7 @@ func (f *Interface) readOutsidePacketsMany(packets []*packet.Packet, out []*pack
|
||||
}
|
||||
}
|
||||
|
||||
//todo per-segment!
|
||||
for segment := range pkt.Segments() {
|
||||
|
||||
err := h.Parse(segment)
|
||||
if err != nil {
|
||||
// Hole punch packets are 0 or 1 byte big, so lets ignore printing those errors
|
||||
@@ -208,7 +206,6 @@ func (f *Interface) readOutsidePacketsMany(packets []*packet.Packet, out []*pack
|
||||
|
||||
switch h.Type {
|
||||
case header.Message:
|
||||
// TODO handleEncrypted sends directly to addr on error. Handle this in the tunneling case.
|
||||
if !f.handleEncrypted(ci, via, h) {
|
||||
return
|
||||
}
|
||||
@@ -676,7 +673,6 @@ func (f *Interface) decryptToTunDelayWrite(hostinfo *HostInfo, messageCounter ui
|
||||
}
|
||||
|
||||
f.connectionManager.In(hostinfo)
|
||||
pkt.OutLen += len(inSegment)
|
||||
out.Segments[seg] = out.Segments[seg][:len(out.SegmentHeaders[seg])+len(out.SegmentPayloads[seg])]
|
||||
return true
|
||||
}
|
||||
|
||||
@@ -271,9 +271,6 @@ func (dev *Device) TransmitPackets(pkts []*packet.OutPacket) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// TODO: Make above methods cancelable by taking a context.Context argument?
|
||||
// TODO: Implement zero-copy variants to transmit and receive packets?
|
||||
|
||||
// processChains processes as many chains as needed to create one packet. The number of processed chains is returned.
|
||||
func (dev *Device) processChains(pkt *packet.VirtIOPacket, chains []virtqueue.UsedElement) (int, error) {
|
||||
//read first element to see how many descriptors we need:
|
||||
|
||||
@@ -19,9 +19,7 @@ type Packet struct {
|
||||
Name []byte
|
||||
SegSize int
|
||||
|
||||
//todo should this hold out as well?
|
||||
OutLen int
|
||||
|
||||
ReadyToSend bool
|
||||
wasSegmented bool
|
||||
isV4 bool
|
||||
}
|
||||
@@ -71,7 +69,6 @@ func (p *Packet) updateCtrl(ctrlLen int) {
|
||||
|
||||
// Update sets a Packet into "just received, not processed" state
|
||||
func (p *Packet) Update(ctrlLen int) {
|
||||
p.OutLen = -1
|
||||
p.updateCtrl(ctrlLen)
|
||||
}
|
||||
|
||||
|
||||
@@ -220,8 +220,8 @@ func (u *StdConn) Prep(pkt *packet.Packet, addr netip.AddrPort) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
pkt.ReadyToSend = true
|
||||
pkt.Name = pkt.Name[:nl]
|
||||
pkt.OutLen = len(pkt.Payload)
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -239,7 +239,7 @@ func (u *StdConn) WriteBatch(pkts []*packet.Packet) (int, error) {
|
||||
//segmenting := false
|
||||
idx := 0
|
||||
for _, pkt := range pkts {
|
||||
if len(pkt.Payload) == 0 || pkt.OutLen == -1 {
|
||||
if !pkt.ReadyToSend || len(pkt.Payload) == 0 {
|
||||
sent++
|
||||
continue
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user