本文整理匯總了Golang中github.com/redhat-cip/skydive/flow.Flow.GetStatistics方法的典型用法代碼示例。如果您正苦於以下問題:Golang Flow.GetStatistics方法的具體用法?Golang Flow.GetStatistics怎麽用?Golang Flow.GetStatistics使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/redhat-cip/skydive/flow.Flow
的用法示例。
在下文中一共展示了Flow.GetStatistics方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: Enhance
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)
}
}
示例2: CheckFlow
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
}
示例3: flow2OldFlow
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
}
示例4: Enhance
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)
}
}
示例5: pcapTraceCheckFlow
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
}