本文整理汇总了Golang中github.com/weaveworks/go-odp/odp.DatapathHandle类的典型用法代码示例。如果您正苦于以下问题:Golang DatapathHandle类的具体用法?Golang DatapathHandle怎么用?Golang DatapathHandle使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了DatapathHandle类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: printFlowActions
func printFlowActions(as []odp.Action, dp odp.DatapathHandle) error {
outputs := make([]string, 0)
sort.Sort(ActionSlice(as))
for _, a := range as {
switch a := a.(type) {
case odp.OutputAction:
name, err := dp.LookupVportName(a.VportID())
if err != nil {
return err
}
outputs = append(outputs, name)
break
case odp.SetTunnelAction:
printSetTunnelOptions(a)
break
default:
fmt.Printf("%v", a)
break
}
}
if len(outputs) > 0 {
fmt.Printf(" --output=%s", strings.Join(outputs, ","))
}
return nil
}
示例2: printFlowKeys
func printFlowKeys(fks odp.FlowKeys, dp odp.DatapathHandle) error {
for _, fk := range fks {
if fk.Ignored() {
continue
}
switch fk := fk.(type) {
case odp.InPortFlowKey:
name, err := dp.LookupVportName(fk.VportID())
if err != nil {
return err
}
fmt.Printf(" --in-port=%s", name)
break
case odp.EthernetFlowKey:
k := fk.Key()
m := fk.Mask()
printEthAddrOption("eth-src", k.EthSrc[:], m.EthSrc[:])
printEthAddrOption("eth-dst", k.EthDst[:], m.EthDst[:])
break
case odp.TunnelFlowKey:
printTunnelOptions(fk, "tunnel-")
break
default:
fmt.Printf(" %T:%v", fk, fk)
break
}
}
return nil
}
示例3: printVports
func printVports(dpname string, dp odp.DatapathHandle) bool {
vports, err := dp.EnumerateVports()
if err != nil {
return printErr("%s", err)
}
for _, vport := range vports {
printVport("", dpname, vport)
}
return true
}