Following patch fixes `ovs-appctl ofproto/trace` command with ipv4_tunnel key in flow.
Bug #13785 Signed-off-by: Pravin B Shelar <pshe...@nicira.com> --- lib/odp-util.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/lib/odp-util.c b/lib/odp-util.c index 9ed17ed..ce37061 100644 --- a/lib/odp-util.c +++ b/lib/odp-util.c @@ -915,6 +915,31 @@ parse_odp_key_attr(const char *s, const struct simap *port_names, { char tun_id_s[32]; int n = -1; + int ipv4_tos; + int ipv4_ttl; + + struct ovs_key_ipv4_tunnel tun_key; + if (sscanf(s, "ipv4_tunnel(tun_id=%31[x0123456789abcdefABCDEF]," + "flags=%i,src="IP_SCAN_FMT",dst="IP_SCAN_FMT"," + "tos=%i,ttl=%i)%n", + tun_id_s, &tun_key.tun_flags, + IP_SCAN_ARGS(&tun_key.ipv4_src), IP_SCAN_ARGS(&tun_key.ipv4_dst), + &ipv4_tos, &ipv4_ttl, + &n) > 0 && n > 0) { + tun_key.tun_id = htonll(strtoull(tun_id_s, NULL, 0)); + tun_key.ipv4_tos = ipv4_tos; + tun_key.ipv4_ttl = ipv4_ttl; + + nl_msg_put_unspec(key, OVS_KEY_ATTR_IPV4_TUNNEL, + &tun_key, sizeof(tun_key)); + return n; + } + } + + + { + char tun_id_s[32]; + int n = -1; if (sscanf(s, "tun_id(%31[x0123456789abcdefABCDEF])%n", tun_id_s, &n) > 0 && n > 0) { -- 1.7.10 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev