func printSetTunnelOptions(a odp.SetTunnelAction) { var fk odp.TunnelFlowKey if a.Present.TunnelId { fk.SetTunnelId(a.TunnelId) } if a.Present.Ipv4Src { fk.SetIpv4Src(a.Ipv4Src) } if a.Present.Ipv4Dst { fk.SetIpv4Dst(a.Ipv4Dst) } if a.Present.Tos { fk.SetTos(a.Tos) } if a.Present.Ttl { fk.SetTtl(a.Ttl) } if a.Present.Df { fk.SetDf(a.Df) } if a.Present.Csum { fk.SetCsum(a.Csum) } if a.Present.TpSrc { fk.SetTpSrc(a.TpSrc) } if a.Present.TpDst { fk.SetTpDst(a.TpDst) } printTunnelOptions(fk, "set-tunnel-") }
func parseTunnelFlags(tf *tunnelFlags) (odp.TunnelFlowKey, error) { var fk odp.TunnelFlowKey if tf.id != "" { tunnelId, err := parseTunnelId(tf.id) if err != nil { return fk, err } fk.SetTunnelId(tunnelId) } if tf.ipv4Src != "" { addr, err := parseIpv4(tf.ipv4Src) if err != nil { return fk, err } fk.SetIpv4Src(addr) } if tf.ipv4Dst != "" { addr, err := parseIpv4(tf.ipv4Dst) if err != nil { return fk, err } fk.SetIpv4Dst(addr) } if tf.tos >= 0 { fk.SetTos(uint8(tf.tos)) } if tf.ttl >= 0 { fk.SetTtl(uint8(tf.ttl)) } if tf.df != "" { df, err := parseBool(tf.df) if err != nil { return fk, err } fk.SetDf(df) } if tf.csum != "" { csum, err := parseBool(tf.csum) if err != nil { return fk, err } fk.SetCsum(csum) } if tf.tpsrc >= 0 { fk.SetTpSrc(uint16(tf.tpsrc)) } if tf.tpdst >= 0 { fk.SetTpDst(uint16(tf.tpdst)) } return fk, nil }