From b93b19a7c75e738f024afb4263fd3f03525799cc Mon Sep 17 00:00:00 2001 From: Matthias Radestock Date: Sun, 30 Jul 2017 08:48:13 +0100 Subject: [PATCH] refactor: simplify connection polarity reversal --- probe/endpoint/connection_tracker.go | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/probe/endpoint/connection_tracker.go b/probe/endpoint/connection_tracker.go index cd79e7450..1c944a1c1 100644 --- a/probe/endpoint/connection_tracker.go +++ b/probe/endpoint/connection_tracker.go @@ -106,7 +106,7 @@ func (t *connectionTracker) performFlowWalk(rpt *report.Report) map[string]fourT t.flowWalker.walkFlows(func(f flow, alive bool) { tuple := flowToTuple(f) seenTuples[tuple.key()] = tuple - t.addConnection(rpt, tuple, "", nil, nil) + t.addConnection(rpt, false, tuple, "", nil, nil) }) return seenTuples } @@ -142,11 +142,7 @@ func (t *connectionTracker) performWalkProc(rpt *report.Report, hostNodeID strin report.HostNodeID: hostNodeID, } } - if incoming { - tuple.reverse() - toNodeInfo, fromNodeInfo = fromNodeInfo, toNodeInfo - } - t.addConnection(rpt, tuple, namespaceID, fromNodeInfo, toNodeInfo) + t.addConnection(rpt, incoming, tuple, namespaceID, fromNodeInfo, toNodeInfo) } return nil } @@ -189,17 +185,16 @@ func (t *connectionTracker) performEbpfTrack(rpt *report.Report, hostNodeID stri report.HostNodeID: hostNodeID, } } - tuple := e.tuple - if e.incoming { - tuple = reverse(tuple) - toNodeInfo, fromNodeInfo = fromNodeInfo, toNodeInfo - } - t.addConnection(rpt, tuple, e.networkNamespace, fromNodeInfo, toNodeInfo) + t.addConnection(rpt, e.incoming, e.tuple, e.networkNamespace, fromNodeInfo, toNodeInfo) }) return nil } -func (t *connectionTracker) addConnection(rpt *report.Report, ft fourTuple, namespaceID string, extraFromNode, extraToNode map[string]string) { +func (t *connectionTracker) addConnection(rpt *report.Report, incoming bool, ft fourTuple, namespaceID string, extraFromNode, extraToNode map[string]string) { + if incoming { + ft = reverse(ft) + extraFromNode, extraToNode = extraToNode, extraFromNode + } var ( fromNode = t.makeEndpointNode(namespaceID, ft.fromAddr, ft.fromPort, extraFromNode) toNode = t.makeEndpointNode(namespaceID, ft.toAddr, ft.toPort, extraToNode)