本文整理匯總了Golang中github.com/redhat-cip/skydive/flow.Flow類的典型用法代碼示例。如果您正苦於以下問題:Golang Flow類的具體用法?Golang Flow怎麽用?Golang Flow使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了Flow類的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: SendFlow
func (c *Client) SendFlow(f *flow.Flow) error {
data, err := f.GetData()
if err != nil {
return err
}
c.connection.Write(data)
return nil
}
示例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
}
示例6: 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)
}
}
示例7: SetProbePath
func (p *OvsSFlowProbe) SetProbePath(flow *flow.Flow) bool {
flow.ProbeGraphPath = p.ProbeGraphPath
return true
}
示例8: EnhanceInterfaces
func (fm *FlowMapper) EnhanceInterfaces(flow *flow.Flow) {
fm.InterfaceMapper.Enhance(flow.GetEtherSrc(), flow.GetAttributes().GetIntfAttrSrc())
fm.InterfaceMapper.Enhance(flow.GetEtherDst(), flow.GetAttributes().GetIntfAttrDst())
}
示例9: SetProbePath
func (p *PcapProbe) SetProbePath(flow *flow.Flow) bool {
flow.ProbeGraphPath = p.probePath
return true
}