func (gfe *GraphFlowEnhancer) Enhance(f *flow.Flow) { if f.IfSrcGraphPath == "" { f.IfSrcGraphPath = gfe.getPath(f.GetStatistics().Endpoints[flow.FlowEndpointType_ETHERNET.Value()].AB.Value) } if f.IfDstGraphPath == "" { f.IfDstGraphPath = gfe.getPath(f.GetStatistics().Endpoints[flow.FlowEndpointType_ETHERNET.Value()].BA.Value) } }
func (s *TestStorage) CheckFlow(t *testing.T, f *flow.Flow, trace *flowsTraceInfo) bool { eth := f.GetStatistics().Endpoints[flow.FlowEndpointType_ETHERNET.Value()] for _, fi := range trace.flowStat { if fi.Path == f.LayersPath { if (fi.ABPackets == eth.AB.Packets) && (fi.ABBytes == eth.AB.Bytes) && (fi.BAPackets == eth.BA.Packets) && (fi.BABytes == eth.BA.Bytes) { fi.Checked = true return true } } } return false }
func flow2OldFlow(f *flow.Flow) OldFlow { fs := f.GetStatistics() eth := fs.Endpoints[flow.FlowEndpointType_ETHERNET.Value()] ip := fs.Endpoints[flow.FlowEndpointType_IPV4.Value()] port := fs.Endpoints[flow.FlowEndpointType_TCPPORT.Value()] if port != nil { port = fs.Endpoints[flow.FlowEndpointType_UDPPORT.Value()] if port != nil { port = fs.Endpoints[flow.FlowEndpointType_SCTPPORT.Value()] } } of := OldFlow{} of.UUID = f.UUID of.LayersPath = f.LayersPath of.EtherSrc = eth.AB.Value of.EtherDst = eth.BA.Value of.Ipv4Src = "" of.Ipv4Dst = "" of.PortSrc = 0 of.PortDst = 0 if ip != nil { of.Ipv4Src = ip.AB.Value of.Ipv4Dst = ip.BA.Value } if port != nil { portInt, _ := strconv.Atoi(port.AB.Value) of.PortSrc = uint32(portInt) portInt, _ = strconv.Atoi(port.BA.Value) of.PortDst = uint32(portInt) } of.ID = 0 of.Timestamp = uint64(fs.Start) of.ProbeGraphPath = f.ProbeGraphPath of.IfSrcName = "" of.IfSrcType = "" of.IfSrcGraphPath = "" of.IfSrcTenantID = "" of.IfSrcVNI = 0 of.IfDstName = "" of.IfDstType = "" of.IfDstGraphPath = "" of.IfDstTenantID = "" of.IfDstVNI = 0 return of }
func (gfe *OvsFlowEnhancer) Enhance(f *flow.Flow) { var eth *flow.FlowEndpointsStatistics if f.IfSrcGraphPath == "" || f.IfDstGraphPath == "" { eth = f.GetStatistics().GetEndpointsType(flow.FlowEndpointType_ETHERNET) if eth == nil { return } } if f.IfSrcGraphPath == "" { f.IfSrcGraphPath = gfe.getPath(eth.AB.Value) } if f.IfDstGraphPath == "" { f.IfDstGraphPath = gfe.getPath(eth.BA.Value) } }
func pcapTraceCheckFlow(t *testing.T, f *flow.Flow, trace *flowsTraceInfo) bool { eth := f.GetStatistics().GetEndpointsType(flow.FlowEndpointType_ETHERNET) if eth == nil { t.Fail() } for _, fi := range trace.flowStat { if fi.Path == f.LayersPath { if (fi.ABPackets == eth.AB.Packets) && (fi.ABBytes == eth.AB.Bytes) && (fi.BAPackets == eth.BA.Packets) && (fi.BABytes == eth.BA.Bytes) { fi.Checked = true return true } } } return false }