Skip to content

Commit af63e79

Browse files
committed
Test with WriteTo
1 parent bec712f commit af63e79

File tree

2 files changed

+28
-34
lines changed

2 files changed

+28
-34
lines changed

go/pkg/router/dataplane.go

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -521,24 +521,18 @@ func (d *DataPlane) Run() error {
521521
}
522522

523523
if len(ms) > 0 {
524-
pkts, err := rd.WriteBatch(ms)
525-
if err != nil {
526-
log.Debug("Error writing packet batch", "err", err)
527-
}
528-
if pkts < len(ms) {
529-
log.Debug("Not all packets of the batch could be sent",
530-
"input", len(ms), "sent", pkts)
531-
}
524+
for _, m := range ms {
525+
addr := m.Addr.(*net.UDPAddr)
526+
_, err = rd.WriteTo(m.Buffers[0], addr)
527+
if err != nil {
528+
log.Debug("Error writing packet", "err", err)
529+
}
532530

533-
// ok metric
534-
outputCounters := d.forwardingMetrics[egressID]
535-
sum := 0
536-
for _, m := range ms[:pkts] {
531+
// ok metric
532+
outputCounters := d.forwardingMetrics[egressID]
537533
outputCounters.OutputPacketsTotal.Inc()
538-
sum = sum + len(m.Buffers[0])
534+
outputCounters.OutputBytesTotal.Add(float64(len(m.Buffers[0])))
539535
}
540-
outputCounters.OutputBytesTotal.Add(float64(sum))
541-
542536
myQueues.ReturnBuffers(ms)
543537
}
544538
}

go/pkg/router/dataplane_test.go

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -202,10 +202,10 @@ func TestDataPlaneRun(t *testing.T) {
202202
mInternal := mock_router.NewMockBatchConn(ctrl)
203203
mInternal.EXPECT().ReadBatch(gomock.Any()).Return(0, nil).AnyTimes()
204204

205-
mInternal.EXPECT().WriteBatch(gomock.Any()).DoAndReturn(
206-
func(ms underlayconn.Messages) (int, error) {
205+
mInternal.EXPECT().WriteTo(gomock.Any(), gomock.Any()).DoAndReturn(
206+
func(data []byte, _ net.Addr) (int, error) {
207207
want := bytes.Repeat([]byte("actualpayloadbytes"), 1)
208-
if len(ms[0].Buffers[0]) != len(want)+84 {
208+
if len(data) != len(want)+84 {
209209
return 1, nil
210210
}
211211
done <- struct{}{}
@@ -242,7 +242,7 @@ func TestDataPlaneRun(t *testing.T) {
242242
},
243243
).Times(1)
244244
mExternal.EXPECT().ReadBatch(gomock.Any()).Return(0, nil).AnyTimes()
245-
mExternal.EXPECT().WriteBatch(gomock.Any()).Return(0, nil).AnyTimes()
245+
mExternal.EXPECT().WriteTo(gomock.Any(), gomock.Any()).Return(0, nil).AnyTimes()
246246

247247
_ = ret.AddExternalInterface(1, mExternal)
248248

@@ -301,9 +301,9 @@ func TestDataPlaneRun(t *testing.T) {
301301
).Times(1)
302302
mInternal.EXPECT().ReadBatch(gomock.Any()).Return(0, nil).AnyTimes()
303303

304-
mInternal.EXPECT().WriteBatch(gomock.Any()).DoAndReturn(
305-
func(ms underlayconn.Messages) (int, error) {
306-
pkt := gopacket.NewPacket(ms[0].Buffers[0],
304+
mInternal.EXPECT().WriteTo(gomock.Any(), gomock.Any()).DoAndReturn(
305+
func(data []byte, _ net.Addr) (int, error) {
306+
pkt := gopacket.NewPacket(data,
307307
slayers.LayerTypeSCION, gopacket.Default)
308308
if b := pkt.Layer(layers.LayerTypeBFD); b != nil {
309309
v := b.(*layers.BFD).YourDiscriminator
@@ -318,7 +318,7 @@ func TestDataPlaneRun(t *testing.T) {
318318

319319
return 0, fmt.Errorf("no valid BFD message")
320320
}).MinTimes(1)
321-
mInternal.EXPECT().WriteBatch(gomock.Any()).Return(0, nil).AnyTimes()
321+
mInternal.EXPECT().WriteTo(gomock.Any(), gomock.Any()).Return(0, nil).AnyTimes()
322322

323323
local := &net.UDPAddr{IP: net.ParseIP("10.0.200.100").To4()}
324324
_ = ret.SetKey([]byte("randomkeyformacs"))
@@ -338,9 +338,9 @@ func TestDataPlaneRun(t *testing.T) {
338338
localAddr := &net.UDPAddr{IP: net.ParseIP("10.0.200.100").To4()}
339339
remoteAddr := &net.UDPAddr{IP: net.ParseIP("10.0.200.200").To4()}
340340
mInternal := mock_router.NewMockBatchConn(ctrl)
341-
mInternal.EXPECT().WriteBatch(gomock.Any()).DoAndReturn(
342-
func(ms underlayconn.Messages) (int, error) {
343-
pkt := gopacket.NewPacket(ms[0].Buffers[0],
341+
mInternal.EXPECT().WriteTo(gomock.Any(), gomock.Any()).DoAndReturn(
342+
func(data []byte, _ net.Addr) (int, error) {
343+
pkt := gopacket.NewPacket(data,
344344
slayers.LayerTypeSCION, gopacket.Default)
345345

346346
if b := pkt.Layer(layers.LayerTypeBFD); b == nil {
@@ -394,9 +394,9 @@ func TestDataPlaneRun(t *testing.T) {
394394

395395
mExternal := mock_router.NewMockBatchConn(ctrl)
396396
mExternal.EXPECT().ReadBatch(gomock.Any()).Return(0, nil).AnyTimes()
397-
mExternal.EXPECT().WriteBatch(gomock.Any()).DoAndReturn(
398-
func(ms underlayconn.Messages) (int, error) {
399-
pkt := gopacket.NewPacket(ms[0].Buffers[0],
397+
mExternal.EXPECT().WriteTo(gomock.Any(), gomock.Any()).DoAndReturn(
398+
func(data []byte, _ net.Addr) (int, error) {
399+
pkt := gopacket.NewPacket(data,
400400
slayers.LayerTypeSCION, gopacket.Default)
401401

402402
if b := pkt.Layer(layers.LayerTypeBFD); b == nil {
@@ -421,7 +421,7 @@ func TestDataPlaneRun(t *testing.T) {
421421
done <- struct{}{}
422422
return 1, nil
423423
}).MinTimes(1)
424-
mExternal.EXPECT().WriteBatch(gomock.Any()).Return(0, nil).AnyTimes()
424+
mExternal.EXPECT().WriteTo(gomock.Any(), gomock.Any()).Return(0, nil).AnyTimes()
425425

426426
local := control.LinkEnd{
427427
IA: xtest.MustParseIA("1-ff00:0:1"),
@@ -484,9 +484,9 @@ func TestDataPlaneRun(t *testing.T) {
484484
).Times(1)
485485
mExternal.EXPECT().ReadBatch(gomock.Any()).Return(0, nil).AnyTimes()
486486

487-
mExternal.EXPECT().WriteBatch(gomock.Any()).DoAndReturn(
488-
func(ms underlayconn.Messages) (int, error) {
489-
pkt := gopacket.NewPacket(ms[0].Buffers[0],
487+
mExternal.EXPECT().WriteTo(gomock.Any(), gomock.Any()).DoAndReturn(
488+
func(data []byte, _ net.Addr) (int, error) {
489+
pkt := gopacket.NewPacket(data,
490490
slayers.LayerTypeSCION, gopacket.Default)
491491

492492
if b := pkt.Layer(layers.LayerTypeBFD); b != nil {
@@ -501,7 +501,7 @@ func TestDataPlaneRun(t *testing.T) {
501501
}
502502
return 0, fmt.Errorf("no valid BFD message")
503503
}).MinTimes(1)
504-
mExternal.EXPECT().WriteBatch(gomock.Any()).Return(0, nil).AnyTimes()
504+
mExternal.EXPECT().WriteTo(gomock.Any(), gomock.Any()).Return(0, nil).AnyTimes()
505505

506506
local := control.LinkEnd{
507507
IA: xtest.MustParseIA("1-ff00:0:1"),

0 commit comments

Comments
 (0)