Hey Ethan,<br><br>Thanks for taking a look at this. <br>As discussed with you, instead of printing the log as is for the flows in the datapath, I will be printing in the format used for openflow table flows. <br>As suggested by you, I have eliminated the duplicate code. <br>
<br>I am posting a new patch addressing your concerns. <br><br>thanx!<br>mehak<br><br><div class="gmail_quote">On Thu, Oct 11, 2012 at 4:32 PM, Ethan Jackson <span dir="ltr">&lt;<a href="mailto:ethan@nicira.com" target="_blank">ethan@nicira.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">High level issue before I review:<br>
<br>
Can we just convert the flow to an odp_flow_key (see<br>
odp_flow_key_from_flow()) and then format it using the same code we<br>
use to format the datapath flows (see odpf_flow_key_format())?  That<br>
would reduce a lot of duplication, and is probably less error prone.<br>
<br>
Ethan<br>
<div><div class="h5"><br>
On Fri, Oct 5, 2012 at 10:23 AM, Mehak Mahajan &lt;<a href="mailto:mmahajan@nicira.com">mmahajan@nicira.com</a>&gt; wrote:<br>
&gt; flow_format() logs packets contents.  However, the format used is not<br>
&gt; the format accepted by ofproto/trace.  Hence it becomes difficult to<br>
&gt; trace the packets using the debugs printed.  With this commit, the<br>
&gt; logging of the packet contents is done in a format that is accepted<br>
&gt; by ofproto/trace.  This will make debugging easier.<br>
&gt;<br>
&gt; Signed-off-by: Mehak Mahajan &lt;<a href="mailto:mmahajan@nicira.com">mmahajan@nicira.com</a>&gt;<br>
&gt; ---<br>
&gt;  lib/flow.c            |  171 ++++++++++++++++++++++++++++++-------------------<br>
&gt;  tests/<a href="http://ofp-print.at" target="_blank">ofp-print.at</a>    |    6 +-<br>
&gt;  tests/<a href="http://ofproto-dpif.at" target="_blank">ofproto-dpif.at</a> |   56 ++++++++--------<br>
&gt;  tests/<a href="http://ofproto.at" target="_blank">ofproto.at</a>      |   12 ++--<br>
&gt;  4 files changed, 142 insertions(+), 103 deletions(-)<br>
&gt;<br>
&gt; diff --git a/lib/flow.c b/lib/flow.c<br>
&gt; index 76d2340..ac9f201 100644<br>
&gt; --- a/lib/flow.c<br>
&gt; +++ b/lib/flow.c<br>
&gt; @@ -479,93 +479,132 @@ flow_to_string(const struct flow *flow)<br>
&gt;      return ds_cstr(&amp;ds);<br>
&gt;  }<br>
&gt;<br>
&gt; -static void format_tunnel_flags(uint16_t flags, struct ds *ds)<br>
&gt; -{<br>
&gt; -    flags &amp;= ~FLOW_TNL_F_KEY;<br>
&gt; -<br>
&gt; -    if (flags &amp; FLOW_TNL_F_DONT_FRAGMENT) {<br>
&gt; -        ds_put_cstr(ds, &quot;,df&quot;);<br>
&gt; -        flags &amp;= ~FLOW_TNL_F_DONT_FRAGMENT;<br>
&gt; -    }<br>
&gt; -<br>
&gt; -    if (flags &amp; FLOW_TNL_F_CSUM) {<br>
&gt; -        ds_put_cstr(ds, &quot;,csum&quot;);<br>
&gt; -        flags &amp;= ~FLOW_TNL_F_CSUM;<br>
&gt; -    }<br>
&gt; -<br>
&gt; -    if (flags) {<br>
&gt; -        ds_put_format(ds, &quot;,flags:%#&quot;PRIx16, flags);<br>
&gt; -    }<br>
&gt; -}<br>
&gt; -<br>
&gt;  void<br>
&gt;  flow_format(struct ds *ds, const struct flow *flow)<br>
&gt;  {<br>
&gt; -    ds_put_format(ds, &quot;priority:%&quot;PRIu32, flow-&gt;skb_priority);<br>
&gt; +    bool skip_type = true;<br>
&gt;<br>
&gt; +    ds_put_format(ds, &quot;priority=%&quot;PRIu32, flow-&gt;skb_priority);<br>
&gt; +    ds_put_format(ds, &quot; metadata=%#&quot;PRIx64, ntohll(flow-&gt;metadata));<br>
&gt; +    ds_put_format(ds, &quot; in_port=%&quot;PRIu16, flow-&gt;in_port);<br>
&gt;      if (flow-&gt;tunnel.ip_dst || flow-&gt;tunnel.tun_id) {<br>
&gt; -        ds_put_cstr(ds, &quot;,tunnel(&quot;);<br>
&gt; -        ds_put_format(ds, IP_FMT&quot;-&gt;&quot;IP_FMT, IP_ARGS(&amp;flow-&gt;tunnel.ip_src),<br>
&gt; -                                            IP_ARGS(&amp;flow-&gt;tunnel.ip_dst));<br>
&gt; +        ds_put_format(ds, &quot; tun_id=%#&quot;PRIx64, ntohll(flow-&gt;tunnel.tun_id));<br>
&gt; +    }<br>
&gt;<br>
&gt; -        if (flow-&gt;tunnel.flags &amp; FLOW_TNL_F_KEY) {<br>
&gt; -            ds_put_format(ds, &quot;,key:%#&quot;PRIx64, ntohll(flow-&gt;tunnel.tun_id));<br>
&gt; +    if (flow-&gt;dl_type == htons(ETH_TYPE_IP)) {<br>
&gt; +        if (flow-&gt;nw_proto == IPPROTO_ICMP) {<br>
&gt; +            ds_put_format(ds, &quot; icmp&quot;);<br>
&gt; +        } else if (flow-&gt;nw_proto == IPPROTO_TCP) {<br>
&gt; +            ds_put_format(ds, &quot; tcp&quot;);<br>
&gt; +        } else if (flow-&gt;nw_proto == IPPROTO_UDP) {<br>
&gt; +            ds_put_format(ds, &quot; udp&quot;);<br>
&gt; +        } else {<br>
&gt; +            ds_put_format(ds, &quot; ip&quot;);<br>
&gt;          }<br>
&gt; -        ds_put_format(ds, &quot;,tos:%#&quot;PRIx8&quot;,ttl:%&quot;PRIu8, flow-&gt;tunnel.ip_tos,<br>
&gt; -                                                       flow-&gt;tunnel.ip_ttl);<br>
&gt; -        format_tunnel_flags(flow-&gt;tunnel.flags, ds);<br>
&gt; -        ds_put_char(ds, &#39;)&#39;);<br>
&gt; +    } else if (flow-&gt;dl_type == htons(ETH_TYPE_IPV6)) {<br>
&gt; +        if (flow-&gt;nw_proto == IPPROTO_ICMPV6) {<br>
&gt; +            ds_put_format(ds, &quot; icmp6&quot;);<br>
&gt; +        } else if (flow-&gt;nw_proto == IPPROTO_TCP) {<br>
&gt; +            ds_put_format(ds, &quot; tcp6&quot;);<br>
&gt; +        } else if (flow-&gt;nw_proto == IPPROTO_UDP) {<br>
&gt; +            ds_put_format(ds, &quot; udp6&quot;);<br>
&gt; +        } else {<br>
&gt; +            ds_put_format(ds, &quot; ipv6&quot;);<br>
&gt; +        }<br>
&gt; +    } else if (flow-&gt;dl_type == htons(ETH_TYPE_ARP)) {<br>
&gt; +        ds_put_format(ds, &quot; arp&quot;);<br>
&gt; +    } else {<br>
&gt; +        skip_type = false;<br>
&gt;      }<br>
&gt;<br>
&gt; -    ds_put_format(ds, &quot;,metadata:%#&quot;PRIx64<br>
&gt; -                      &quot;,in_port:%04&quot;PRIx16,<br>
&gt; -                      ntohll(flow-&gt;metadata),<br>
&gt; -                      flow-&gt;in_port);<br>
&gt; +    ds_put_format(ds, &quot; dl_src=&quot;ETH_ADDR_FMT, ETH_ADDR_ARGS(flow-&gt;dl_src));<br>
&gt; +    ds_put_format(ds, &quot; dl_dst=&quot;ETH_ADDR_FMT, ETH_ADDR_ARGS(flow-&gt;dl_dst));<br>
&gt; +    if (!skip_type) {<br>
&gt; +      ds_put_format(ds, &quot; dl_type=0x%04&quot;PRIx16, ntohs(flow-&gt;dl_type));<br>
&gt; +    }<br>
&gt;<br>
&gt; -    ds_put_format(ds, &quot;,tci(&quot;);<br>
&gt;      if (flow-&gt;vlan_tci) {<br>
&gt; -        ds_put_format(ds, &quot;vlan:%&quot;PRIu16&quot;,pcp:%d&quot;,<br>
&gt; -                      vlan_tci_to_vid(flow-&gt;vlan_tci),<br>
&gt; +        ds_put_format(ds, &quot; dl_vlan=%&quot;PRIu16,<br>
&gt; +                      vlan_tci_to_vid(flow-&gt;vlan_tci));<br>
&gt; +        ds_put_format(ds, &quot; dl_vlan_pcp=%d&quot;,<br>
&gt;                        vlan_tci_to_pcp(flow-&gt;vlan_tci));<br>
&gt;      } else {<br>
&gt; -        ds_put_char(ds, &#39;0&#39;);<br>
&gt; +        ds_put_format(ds, &quot; vlan_tci=0x%04&quot;PRIx16, ntohs(flow-&gt;vlan_tci));<br>
&gt; +    }<br>
&gt; +<br>
&gt; +    if (flow-&gt;dl_type == htons(ETH_TYPE_ARP)) {<br>
&gt; +      ds_put_format(ds, &quot; arp_op=%&quot;PRIu8, flow-&gt;nw_proto);<br>
&gt;      }<br>
&gt; -    ds_put_format(ds, &quot;) mac(&quot;ETH_ADDR_FMT&quot;-&gt;&quot;ETH_ADDR_FMT<br>
&gt; -                      &quot;) type:%04&quot;PRIx16,<br>
&gt; -                  ETH_ADDR_ARGS(flow-&gt;dl_src),<br>
&gt; -                  ETH_ADDR_ARGS(flow-&gt;dl_dst),<br>
&gt; -                  ntohs(flow-&gt;dl_type));<br>
&gt;<br>
&gt;      if (flow-&gt;dl_type == htons(ETH_TYPE_IPV6)) {<br>
&gt; -        ds_put_format(ds, &quot; label:%#&quot;PRIx32&quot; proto:%&quot;PRIu8&quot; tos:%#&quot;PRIx8<br>
&gt; -                          &quot; ttl:%&quot;PRIu8&quot; ipv6(&quot;,<br>
&gt; -                      ntohl(flow-&gt;ipv6_label), flow-&gt;nw_proto,<br>
&gt; -                      flow-&gt;nw_tos, flow-&gt;nw_ttl);<br>
&gt; +        ds_put_format(ds, &quot; ipv6_src=&quot;);<br>
&gt;          print_ipv6_addr(ds, &amp;flow-&gt;ipv6_src);<br>
&gt; -        ds_put_cstr(ds, &quot;-&gt;&quot;);<br>
&gt; +        ds_put_format(ds, &quot; ipv6_dst=&quot;);<br>
&gt;          print_ipv6_addr(ds, &amp;flow-&gt;ipv6_dst);<br>
&gt; -        ds_put_char(ds, &#39;)&#39;);<br>
&gt; -    } else if (flow-&gt;dl_type == htons(ETH_TYPE_IP) ||<br>
&gt; -               flow-&gt;dl_type == htons(ETH_TYPE_ARP)) {<br>
&gt; -        ds_put_format(ds, &quot; proto:%&quot;PRIu8&quot; tos:%#&quot;PRIx8&quot; ttl:%&quot;PRIu8<br>
&gt; -                          &quot; ip(&quot;IP_FMT&quot;-&gt;&quot;IP_FMT&quot;)&quot;,<br>
&gt; -                          flow-&gt;nw_proto, flow-&gt;nw_tos, flow-&gt;nw_ttl,<br>
&gt; -                          IP_ARGS(&amp;flow-&gt;nw_src), IP_ARGS(&amp;flow-&gt;nw_dst));<br>
&gt; +        ds_put_format(ds, &quot; ipv6_label=0x%05&quot;PRIx32&quot; &quot;,ntohl(flow-&gt;ipv6_label));<br>
&gt; +    } else if (flow-&gt;dl_type == htons(ETH_TYPE_IP)) {<br>
&gt; +        ds_put_format(ds, &quot; nw_src=&quot;IP_FMT, IP_ARGS(&amp;flow-&gt;nw_src));<br>
&gt; +        ds_put_format(ds, &quot; nw_dst=&quot;IP_FMT, IP_ARGS(&amp;flow-&gt;nw_dst));<br>
&gt; +    } else if (flow-&gt;dl_type == htons(ETH_TYPE_ARP)) {<br>
&gt; +        ds_put_format(ds, &quot; arp_spa=&quot;IP_FMT, IP_ARGS(&amp;flow-&gt;nw_src));<br>
&gt; +        ds_put_format(ds, &quot; arp_tpa=&quot;IP_FMT, IP_ARGS(&amp;flow-&gt;nw_dst));<br>
&gt;      }<br>
&gt; -    if (flow-&gt;nw_frag) {<br>
&gt; -        ds_put_format(ds, &quot; frag(%s)&quot;,<br>
&gt; -                      flow-&gt;nw_frag == FLOW_NW_FRAG_ANY ? &quot;first&quot;<br>
&gt; -                      : flow-&gt;nw_frag == (FLOW_NW_FRAG_ANY | FLOW_NW_FRAG_LATER)<br>
&gt; -                      ? &quot;later&quot; : &quot;&lt;error&gt;&quot;);<br>
&gt; +<br>
&gt; +    if (flow-&gt;dl_type == htons(ETH_TYPE_ARP)) {<br>
&gt; +        ds_put_format(ds, &quot; arp_sha=&quot;ETH_ADDR_FMT,<br>
&gt; +                      ETH_ADDR_ARGS(flow-&gt;arp_sha));<br>
&gt; +        ds_put_format(ds, &quot; arp_tha=&quot;ETH_ADDR_FMT,<br>
&gt; +                      ETH_ADDR_ARGS(flow-&gt;arp_tha));<br>
&gt; +    }<br>
&gt; +<br>
&gt; +    if (flow-&gt;dl_type == htons(ETH_TYPE_IPV6) ||<br>
&gt; +        flow-&gt;dl_type == htons(ETH_TYPE_IP)) {<br>
&gt; +<br>
&gt; +        ds_put_format(ds, &quot; nw_tos=%&quot;PRIu8, flow-&gt;nw_tos);<br>
&gt; +        ds_put_format(ds, &quot; nw_ttl=%&quot;PRIu8, flow-&gt;nw_ttl);<br>
&gt;      }<br>
&gt; -    if (flow-&gt;tp_src || flow-&gt;tp_dst) {<br>
&gt; -        ds_put_format(ds, &quot; port(%&quot;PRIu16&quot;-&gt;%&quot;PRIu16&quot;)&quot;,<br>
&gt; -                ntohs(flow-&gt;tp_src), ntohs(flow-&gt;tp_dst));<br>
&gt; +<br>
&gt; +    if (flow-&gt;nw_frag) {<br>
&gt; +        switch(flow-&gt;nw_frag) {<br>
&gt; +        case FLOW_NW_FRAG_ANY | FLOW_NW_FRAG_LATER:<br>
&gt; +            ds_put_format(ds, &quot; nw_frag=%s&quot;,<br>
&gt; +                          flow-&gt;nw_frag == FLOW_NW_FRAG_ANY<br>
&gt; +                          ? (flow-&gt;nw_frag == FLOW_NW_FRAG_LATER<br>
&gt; +                             ? &quot;later&quot;<br>
&gt; +                             : &quot;first&quot;)<br>
&gt; +                          : (flow-&gt;nw_frag == FLOW_NW_FRAG_LATER<br>
&gt; +                             ? &quot;&lt;error&gt;&quot;<br>
&gt; +                             : &quot;no&quot;));<br>
&gt; +            break;<br>
&gt; +        case FLOW_NW_FRAG_ANY:<br>
&gt; +            ds_put_format(ds, &quot; nw_frag=%s&quot;,<br>
&gt; +                          flow-&gt;nw_frag &amp; FLOW_NW_FRAG_ANY ? &quot;yes&quot; : &quot;no&quot;);<br>
&gt; +            break;<br>
&gt; +<br>
&gt; +        case FLOW_NW_FRAG_LATER:<br>
&gt; +            ds_put_format(ds, &quot; nw_frag=%s&quot;,<br>
&gt; +                          flow-&gt;nw_frag &amp; FLOW_NW_FRAG_LATER<br>
&gt; +                          ? &quot;later&quot;<br>
&gt; +                          : &quot;not_later&quot;);<br>
&gt; +            break;<br>
&gt; +        }<br>
&gt;      }<br>
&gt; -    if (!eth_addr_is_zero(flow-&gt;arp_sha) || !eth_addr_is_zero(flow-&gt;arp_tha)) {<br>
&gt; -        ds_put_format(ds, &quot; arp_ha(&quot;ETH_ADDR_FMT&quot;-&gt;&quot;ETH_ADDR_FMT&quot;)&quot;,<br>
&gt; -                ETH_ADDR_ARGS(flow-&gt;arp_sha),<br>
&gt; -                ETH_ADDR_ARGS(flow-&gt;arp_tha));<br>
&gt; +<br>
&gt; +    if (flow-&gt;dl_type == htons(ETH_TYPE_IP) &amp;&amp;<br>
&gt; +        (flow-&gt;nw_proto == IPPROTO_ICMP)) {<br>
&gt; +        ds_put_format(ds, &quot; icmp_type=%&quot;PRIu16, ntohs(flow-&gt;tp_src));<br>
&gt; +        ds_put_format(ds, &quot; icmp_code=%&quot;PRIu16, ntohs(flow-&gt;tp_dst));<br>
&gt; +    } else if (flow-&gt;dl_type == htons(ETH_TYPE_IP) &amp;&amp;<br>
&gt; +               (flow-&gt;nw_proto == IPPROTO_ICMPV6)) {<br>
&gt; +        ds_put_format(ds, &quot; icmp_type=%&quot;PRIu16, ntohs(flow-&gt;tp_src));<br>
&gt; +        ds_put_format(ds, &quot; icmp_code=%&quot;PRIu16, ntohs(flow-&gt;tp_dst));<br>
&gt; +        ds_put_format(ds, &quot; nd_sll=&quot;ETH_ADDR_FMT,<br>
&gt; +                      ETH_ADDR_ARGS(flow-&gt;arp_sha));<br>
&gt; +        ds_put_format(ds, &quot; nd_tll=&quot;ETH_ADDR_FMT,<br>
&gt; +                      ETH_ADDR_ARGS(flow-&gt;arp_tha));<br>
&gt; +    } else if (flow-&gt;tp_src || flow-&gt;tp_dst) {<br>
&gt; +        ds_put_format(ds, &quot; tp_src=%&quot;PRIu16, ntohs(flow-&gt;tp_src));<br>
&gt; +        ds_put_format(ds, &quot; tp_dst=%&quot;PRIu16, ntohs(flow-&gt;tp_dst));<br>
&gt;      }<br>
&gt;  }<br>
&gt;<br>
&gt; diff --git a/tests/<a href="http://ofp-print.at" target="_blank">ofp-print.at</a> b/tests/<a href="http://ofp-print.at" target="_blank">ofp-print.at</a><br>
&gt; index 5a64ff2..b66f68b 100644<br>
&gt; --- a/tests/<a href="http://ofp-print.at" target="_blank">ofp-print.at</a><br>
&gt; +++ b/tests/<a href="http://ofp-print.at" target="_blank">ofp-print.at</a><br>
&gt; @@ -337,7 +337,7 @@ c0 a8 00 02 27 2f 00 00 78 50 cc 5b 57 af 42 1e \<br>
&gt;  50 00 02 00 26 e8 00 00 00 00 00 00 00 00 \<br>
&gt;  &quot;], [0], [dnl<br>
&gt;  OFPT_PACKET_IN (xid=0x0): total_len=60 in_port=3 (via no_match) data_len=60 buffer=0x00000111<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(0) mac(50:54:00:00:00:05-&gt;50:54:00:00:00:06) type:0800 proto:6 tos:0 ttl:64 ip(192.168.0.1-&gt;192.168.0.2) port(10031-&gt;0) tcp_csum:26e8<br>
&gt; +priority=0 metadata=0 in_port=0 tcp dl_src=50:54:00:00:00:05 dl_dst=50:54:00:00:00:06 vlan_tci=0x0000 nw_src=192.168.0.1 nw_dst=192.168.0.2 nw_tos=0 nw_ttl=64 tp_src=10031 tp_dst=0 tcp_csum:26e8<br>
&gt;  ])<br>
&gt;  AT_CLEANUP<br>
&gt;<br>
&gt; @@ -351,7 +351,7 @@ AT_CHECK([ovs-ofctl ofp-print &quot;\<br>
&gt;  00 00 00 23 20 83 c1 5f 00 00 00 00 \<br>
&gt;  &quot;], [0], [dnl<br>
&gt;  OFPT_PACKET_IN (OF1.2) (xid=0x0): total_len=42 in_port=LOCAL (via no_match) data_len=42 buffer=0xffffff00<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(0) mac(00:23:20:83:c1:5f-&gt;ff:ff:ff:ff:ff:ff) type:8035<br>
&gt; +priority=0 metadata=0 in_port=0 dl_src=00:23:20:83:c1:5f dl_dst=ff:ff:ff:ff:ff:ff dl_type=0x8035 vlan_tci=0x0000<br>
&gt;  ])<br>
&gt;  AT_CLEANUP<br>
&gt;<br>
&gt; @@ -1154,7 +1154,7 @@ ff ff ff ff ff ff 00 00 00 00 82 82 82 82 82 82 \<br>
&gt;  31 6d 00 00 00 00 00 00 00 00 \<br>
&gt;  &quot;], [0], [dnl<br>
&gt;  NXT_PACKET_IN (xid=0x0): table_id=7 cookie=0x9 total_len=64 in_port=1 tun_id=0x6 metadata=0x5a5a5a5a5a5a5a5a reg0=0x1 reg1=0x2 reg2=0x3 reg3=0x4 reg4=0x5 (via action) data_len=64 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(vlan:80,pcp:0) mac(80:81:81:81:81:81-&gt;82:82:82:82:82:82) type:0800 proto:6 tos:0 ttl:0 ip(83.83.83.83-&gt;84.84.84.84) port(85-&gt;86) tcp_csum:316d<br>
&gt; +priority=0 metadata=0 in_port=0 tcp dl_src=80:81:81:81:81:81 dl_dst=82:82:82:82:82:82 dl_vlan=80 dl_vlan_pcp=0 nw_src=83.83.83.83 nw_dst=84.84.84.84 nw_tos=0 nw_ttl=0 tp_src=85 tp_dst=86 tcp_csum:316d<br>
&gt;  ])<br>
&gt;  AT_CLEANUP<br>
&gt;<br>
&gt; diff --git a/tests/<a href="http://ofproto-dpif.at" target="_blank">ofproto-dpif.at</a> b/tests/<a href="http://ofproto-dpif.at" target="_blank">ofproto-dpif.at</a><br>
&gt; index 80ba333..a378db2 100644<br>
&gt; --- a/tests/<a href="http://ofproto-dpif.at" target="_blank">ofproto-dpif.at</a><br>
&gt; +++ b/tests/<a href="http://ofproto-dpif.at" target="_blank">ofproto-dpif.at</a><br>
&gt; @@ -98,7 +98,7 @@ AT_CHECK([ovs-appctl ofproto/trace br0 &#39;in_port(1),eth(src=50:54:00:00:00:05,dst<br>
&gt;  OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit])<br>
&gt;  AT_CHECK([cat ofctl_monitor.log], [0], [dnl<br>
&gt;  NXT_PACKET_IN (xid=0x0): table_id=1 total_len=42 in_port=1 (via invalid_ttl) data_len=42 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(0) mac(50:54:00:00:00:05-&gt;50:54:00:00:00:07) type:0800 proto:1 tos:0 ttl:1 ip(192.168.0.1-&gt;192.168.0.2)<br>
&gt; +priority=0 metadata=0 in_port=0 icmp dl_src=50:54:00:00:00:05 dl_dst=50:54:00:00:00:07 vlan_tci=0x0000 nw_src=192.168.0.1 nw_dst=192.168.0.2 nw_tos=0 nw_ttl=1 icmp_type=0 icmp_code=0<br>
&gt;  ])<br>
&gt;  OVS_VSWITCHD_STOP<br>
&gt;  AT_CLEANUP<br>
&gt; @@ -263,13 +263,13 @@ done<br>
&gt;  OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit])<br>
&gt;  AT_CHECK([cat ofctl_monitor.log], [0], [dnl<br>
&gt;  OFPT_PACKET_IN (xid=0x0): total_len=60 in_port=1 (via no_match) data_len=60 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(0) mac(50:54:00:00:00:05-&gt;50:54:00:00:00:07) type:0800 proto:6 tos:0 ttl:0 ip(192.168.0.1-&gt;192.168.0.2) port(8-&gt;9) tcp_csum:0<br>
&gt; +priority=0 metadata=0 in_port=0 tcp dl_src=50:54:00:00:00:05 dl_dst=50:54:00:00:00:07 vlan_tci=0x0000 nw_src=192.168.0.1 nw_dst=192.168.0.2 nw_tos=0 nw_ttl=0 tp_src=8 tp_dst=9 tcp_csum:0<br>
&gt;  dnl<br>
&gt;  OFPT_PACKET_IN (xid=0x0): total_len=60 in_port=1 (via no_match) data_len=60 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(0) mac(50:54:00:00:00:05-&gt;50:54:00:00:00:07) type:0800 proto:6 tos:0 ttl:0 ip(192.168.0.1-&gt;192.168.0.2) port(8-&gt;9) tcp_csum:0<br>
&gt; +priority=0 metadata=0 in_port=0 tcp dl_src=50:54:00:00:00:05 dl_dst=50:54:00:00:00:07 vlan_tci=0x0000 nw_src=192.168.0.1 nw_dst=192.168.0.2 nw_tos=0 nw_ttl=0 tp_src=8 tp_dst=9 tcp_csum:0<br>
&gt;  dnl<br>
&gt;  OFPT_PACKET_IN (xid=0x0): total_len=60 in_port=1 (via no_match) data_len=60 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(0) mac(50:54:00:00:00:05-&gt;50:54:00:00:00:07) type:0800 proto:6 tos:0 ttl:0 ip(192.168.0.1-&gt;192.168.0.2) port(8-&gt;9) tcp_csum:0<br>
&gt; +priority=0 metadata=0 in_port=0 tcp dl_src=50:54:00:00:00:05 dl_dst=50:54:00:00:00:07 vlan_tci=0x0000 nw_src=192.168.0.1 nw_dst=192.168.0.2 nw_tos=0 nw_ttl=0 tp_src=8 tp_dst=9 tcp_csum:0<br>
&gt;  ])<br>
&gt;<br>
&gt;  dnl Singleton controller action.<br>
&gt; @@ -282,13 +282,13 @@ done<br>
&gt;  OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit])<br>
&gt;  AT_CHECK([cat ofctl_monitor.log], [0], [dnl<br>
&gt;  OFPT_PACKET_IN (xid=0x0): total_len=60 in_port=1 (via action) data_len=60 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(0) mac(10:11:11:11:11:11-&gt;50:54:00:00:00:07) type:0800 proto:6 tos:0 ttl:0 ip(192.168.0.1-&gt;192.168.0.2) port(8-&gt;10) tcp_csum:0<br>
&gt; +priority=0 metadata=0 in_port=0 tcp dl_src=10:11:11:11:11:11 dl_dst=50:54:00:00:00:07 vlan_tci=0x0000 nw_src=192.168.0.1 nw_dst=192.168.0.2 nw_tos=0 nw_ttl=0 tp_src=8 tp_dst=10 tcp_csum:0<br>
&gt;  dnl<br>
&gt;  OFPT_PACKET_IN (xid=0x0): total_len=60 in_port=1 (via action) data_len=60 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(0) mac(10:11:11:11:11:11-&gt;50:54:00:00:00:07) type:0800 proto:6 tos:0 ttl:0 ip(192.168.0.1-&gt;192.168.0.2) port(8-&gt;10) tcp_csum:0<br>
&gt; +priority=0 metadata=0 in_port=0 tcp dl_src=10:11:11:11:11:11 dl_dst=50:54:00:00:00:07 vlan_tci=0x0000 nw_src=192.168.0.1 nw_dst=192.168.0.2 nw_tos=0 nw_ttl=0 tp_src=8 tp_dst=10 tcp_csum:0<br>
&gt;  dnl<br>
&gt;  OFPT_PACKET_IN (xid=0x0): total_len=60 in_port=1 (via action) data_len=60 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(0) mac(10:11:11:11:11:11-&gt;50:54:00:00:00:07) type:0800 proto:6 tos:0 ttl:0 ip(192.168.0.1-&gt;192.168.0.2) port(8-&gt;10) tcp_csum:0<br>
&gt; +priority=0 metadata=0 in_port=0 tcp dl_src=10:11:11:11:11:11 dl_dst=50:54:00:00:00:07 vlan_tci=0x0000 nw_src=192.168.0.1 nw_dst=192.168.0.2 nw_tos=0 nw_ttl=0 tp_src=8 tp_dst=10 tcp_csum:0<br>
&gt;  ])<br>
&gt;<br>
&gt;  dnl Modified controller action.<br>
&gt; @@ -301,13 +301,13 @@ done<br>
&gt;  OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit])<br>
&gt;  AT_CHECK([cat ofctl_monitor.log], [0], [dnl<br>
&gt;  OFPT_PACKET_IN (xid=0x0): total_len=64 in_port=1 (via action) data_len=64 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(vlan:15,pcp:0) mac(30:33:33:33:33:33-&gt;50:54:00:00:00:07) type:0800 proto:6 tos:0 ttl:0 ip(192.168.0.1-&gt;192.168.0.2) port(8-&gt;10) tcp_csum:0<br>
&gt; +priority=0 metadata=0 in_port=0 tcp dl_src=30:33:33:33:33:33 dl_dst=50:54:00:00:00:07 dl_vlan=15 dl_vlan_pcp=0 nw_src=192.168.0.1 nw_dst=192.168.0.2 nw_tos=0 nw_ttl=0 tp_src=8 tp_dst=10 tcp_csum:0<br>
&gt;  dnl<br>
&gt;  OFPT_PACKET_IN (xid=0x0): total_len=64 in_port=1 (via action) data_len=64 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(vlan:15,pcp:0) mac(30:33:33:33:33:33-&gt;50:54:00:00:00:07) type:0800 proto:6 tos:0 ttl:0 ip(192.168.0.1-&gt;192.168.0.2) port(8-&gt;10) tcp_csum:0<br>
&gt; +priority=0 metadata=0 in_port=0 tcp dl_src=30:33:33:33:33:33 dl_dst=50:54:00:00:00:07 dl_vlan=15 dl_vlan_pcp=0 nw_src=192.168.0.1 nw_dst=192.168.0.2 nw_tos=0 nw_ttl=0 tp_src=8 tp_dst=10 tcp_csum:0<br>
&gt;  dnl<br>
&gt;  OFPT_PACKET_IN (xid=0x0): total_len=64 in_port=1 (via action) data_len=64 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(vlan:15,pcp:0) mac(30:33:33:33:33:33-&gt;50:54:00:00:00:07) type:0800 proto:6 tos:0 ttl:0 ip(192.168.0.1-&gt;192.168.0.2) port(8-&gt;10) tcp_csum:0<br>
&gt; +priority=0 metadata=0 in_port=0 tcp dl_src=30:33:33:33:33:33 dl_dst=50:54:00:00:00:07 dl_vlan=15 dl_vlan_pcp=0 nw_src=192.168.0.1 nw_dst=192.168.0.2 nw_tos=0 nw_ttl=0 tp_src=8 tp_dst=10 tcp_csum:0<br>
&gt;  ])<br>
&gt;<br>
&gt;  dnl Checksum TCP.<br>
&gt; @@ -320,31 +320,31 @@ done<br>
&gt;  OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit])<br>
&gt;  AT_CHECK([cat ofctl_monitor.log], [0], [dnl<br>
&gt;  NXT_PACKET_IN (xid=0x0): cookie=0x1 total_len=60 in_port=1 (via action) data_len=60 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(0) mac(20:22:22:22:22:22-&gt;50:54:00:00:00:07) type:0800 proto:6 tos:0 ttl:0 ip(192.168.0.1-&gt;192.168.0.2) port(8-&gt;11) tcp_csum:0<br>
&gt; +priority=0 metadata=0 in_port=0 tcp dl_src=20:22:22:22:22:22 dl_dst=50:54:00:00:00:07 vlan_tci=0x0000 nw_src=192.168.0.1 nw_dst=192.168.0.2 nw_tos=0 nw_ttl=0 tp_src=8 tp_dst=11 tcp_csum:0<br>
&gt;  dnl<br>
&gt;  NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x3 total_len=64 in_port=1 reg0=0x1 (via action) data_len=64 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(vlan:80,pcp:0) mac(20:22:22:22:22:22-&gt;50:54:00:00:00:07) type:0800 proto:6 tos:0 ttl:0 ip(192.168.0.1-&gt;192.168.0.2) port(8-&gt;11) tcp_csum:0<br>
&gt; +priority=0 metadata=0 in_port=0 tcp dl_src=20:22:22:22:22:22 dl_dst=50:54:00:00:00:07 dl_vlan=80 dl_vlan_pcp=0 nw_src=192.168.0.1 nw_dst=192.168.0.2 nw_tos=0 nw_ttl=0 tp_src=8 tp_dst=11 tcp_csum:0<br>
&gt;  dnl<br>
&gt;  NXT_PACKET_IN (xid=0x0): table_id=2 cookie=0x4 total_len=64 in_port=1 reg0=0x1 reg1=0x2 (via action) data_len=64 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(vlan:80,pcp:0) mac(80:81:81:81:81:81-&gt;50:54:00:00:00:07) type:0800 proto:6 tos:0 ttl:0 ip(192.168.0.1-&gt;192.168.0.2) port(8-&gt;11) tcp_csum:0<br>
&gt; +priority=0 metadata=0 in_port=0 tcp dl_src=80:81:81:81:81:81 dl_dst=50:54:00:00:00:07 dl_vlan=80 dl_vlan_pcp=0 nw_src=192.168.0.1 nw_dst=192.168.0.2 nw_tos=0 nw_ttl=0 tp_src=8 tp_dst=11 tcp_csum:0<br>
&gt;  dnl<br>
&gt;  NXT_PACKET_IN (xid=0x0): table_id=3 cookie=0x5 total_len=64 in_port=1 reg0=0x1 reg1=0x2 reg2=0x3 (via action) data_len=64 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(vlan:80,pcp:0) mac(80:81:81:81:81:81-&gt;82:82:82:82:82:82) type:0800 proto:6 tos:0 ttl:0 ip(192.168.0.1-&gt;192.168.0.2) port(8-&gt;11) tcp_csum:0<br>
&gt; +priority=0 metadata=0 in_port=0 tcp dl_src=80:81:81:81:81:81 dl_dst=82:82:82:82:82:82 dl_vlan=80 dl_vlan_pcp=0 nw_src=192.168.0.1 nw_dst=192.168.0.2 nw_tos=0 nw_ttl=0 tp_src=8 tp_dst=11 tcp_csum:0<br>
&gt;  dnl<br>
&gt;  NXT_PACKET_IN (xid=0x0): table_id=4 cookie=0x6 total_len=64 in_port=1 reg0=0x1 reg1=0x2 reg2=0x3 reg3=0x4 (via action) data_len=64 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(vlan:80,pcp:0) mac(80:81:81:81:81:81-&gt;82:82:82:82:82:82) type:0800 proto:6 tos:0 ttl:0 ip(83.83.83.83-&gt;192.168.0.2) port(8-&gt;11) tcp_csum:1a03<br>
&gt; +priority=0 metadata=0 in_port=0 tcp dl_src=80:81:81:81:81:81 dl_dst=82:82:82:82:82:82 dl_vlan=80 dl_vlan_pcp=0 nw_src=83.83.83.83 nw_dst=192.168.0.2 nw_tos=0 nw_ttl=0 tp_src=8 tp_dst=11 tcp_csum:1a03<br>
&gt;  dnl<br>
&gt;  NXT_PACKET_IN (xid=0x0): table_id=5 cookie=0x7 total_len=64 in_port=1 tun_id=0x6 reg0=0x1 reg1=0x2 reg2=0x3 reg3=0x4 reg4=0x5 (via action) data_len=64 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(vlan:80,pcp:0) mac(80:81:81:81:81:81-&gt;82:82:82:82:82:82) type:0800 proto:6 tos:0 ttl:0 ip(83.83.83.83-&gt;84.84.84.84) port(8-&gt;11) tcp_csum:3205<br>
&gt; +priority=0 metadata=0 in_port=0 tcp dl_src=80:81:81:81:81:81 dl_dst=82:82:82:82:82:82 dl_vlan=80 dl_vlan_pcp=0 nw_src=83.83.83.83 nw_dst=84.84.84.84 nw_tos=0 nw_ttl=0 tp_src=8 tp_dst=11 tcp_csum:3205<br>
&gt;  dnl<br>
&gt;  NXT_PACKET_IN (xid=0x0): table_id=6 cookie=0x8 total_len=64 in_port=1 tun_id=0x6 reg0=0x1 reg1=0x2 reg2=0x3 reg3=0x4 reg4=0x5 (via action) data_len=64 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(vlan:80,pcp:0) mac(80:81:81:81:81:81-&gt;82:82:82:82:82:82) type:0800 proto:6 tos:0 ttl:0 ip(83.83.83.83-&gt;84.84.84.84) port(85-&gt;11) tcp_csum:31b8<br>
&gt; +priority=0 metadata=0 in_port=0 tcp dl_src=80:81:81:81:81:81 dl_dst=82:82:82:82:82:82 dl_vlan=80 dl_vlan_pcp=0 nw_src=83.83.83.83 nw_dst=84.84.84.84 nw_tos=0 nw_ttl=0 tp_src=85 tp_dst=11 tcp_csum:31b8<br>
&gt;  dnl<br>
&gt;  NXT_PACKET_IN (xid=0x0): table_id=7 cookie=0x9 total_len=64 in_port=1 tun_id=0x6 reg0=0x1 reg1=0x2 reg2=0x3 reg3=0x4 reg4=0x5 (via action) data_len=64 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(vlan:80,pcp:0) mac(80:81:81:81:81:81-&gt;82:82:82:82:82:82) type:0800 proto:6 tos:0 ttl:0 ip(83.83.83.83-&gt;84.84.84.84) port(85-&gt;86) tcp_csum:316d<br>
&gt; +priority=0 metadata=0 in_port=0 tcp dl_src=80:81:81:81:81:81 dl_dst=82:82:82:82:82:82 dl_vlan=80 dl_vlan_pcp=0 nw_src=83.83.83.83 nw_dst=84.84.84.84 nw_tos=0 nw_ttl=0 tp_src=85 tp_dst=86 tcp_csum:316d<br>
&gt;  dnl<br>
&gt;  NXT_PACKET_IN (xid=0x0): table_id=7 cookie=0x9 total_len=64 in_port=1 tun_id=0x6 reg0=0x1 reg1=0x2 reg2=0x3 reg3=0x4 reg4=0x5 (via action) data_len=64 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(vlan:80,pcp:0) mac(80:81:81:81:81:81-&gt;82:82:82:82:82:82) type:0800 proto:6 tos:0 ttl:0 ip(83.83.83.83-&gt;84.84.84.84) port(85-&gt;86) tcp_csum:316d<br>
&gt; +priority=0 metadata=0 in_port=0 tcp dl_src=80:81:81:81:81:81 dl_dst=82:82:82:82:82:82 dl_vlan=80 dl_vlan_pcp=0 nw_src=83.83.83.83 nw_dst=84.84.84.84 nw_tos=0 nw_ttl=0 tp_src=85 tp_dst=86 tcp_csum:316d<br>
&gt;  ])<br>
&gt;<br>
&gt;  dnl Checksum UDP.<br>
&gt; @@ -357,31 +357,31 @@ done<br>
&gt;  OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit])<br>
&gt;  AT_CHECK([cat ofctl_monitor.log], [0], [dnl<br>
&gt;  NXT_PACKET_IN (xid=0x0): cookie=0x1 total_len=60 in_port=1 (via action) data_len=60 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(0) mac(20:22:22:22:22:22-&gt;50:54:00:00:00:07) type:0800 proto:17 tos:0 ttl:0 ip(192.168.0.1-&gt;192.168.0.2) port(8-&gt;11) udp_csum:1234<br>
&gt; +priority=0 metadata=0 in_port=0 udp dl_src=20:22:22:22:22:22 dl_dst=50:54:00:00:00:07 vlan_tci=0x0000 nw_src=192.168.0.1 nw_dst=192.168.0.2 nw_tos=0 nw_ttl=0 tp_src=8 tp_dst=11 udp_csum:1234<br>
&gt;  dnl<br>
&gt;  NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x3 total_len=64 in_port=1 reg0=0x1 (via action) data_len=64 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(vlan:80,pcp:0) mac(20:22:22:22:22:22-&gt;50:54:00:00:00:07) type:0800 proto:17 tos:0 ttl:0 ip(192.168.0.1-&gt;192.168.0.2) port(8-&gt;11) udp_csum:1234<br>
&gt; +priority=0 metadata=0 in_port=0 udp dl_src=20:22:22:22:22:22 dl_dst=50:54:00:00:00:07 dl_vlan=80 dl_vlan_pcp=0 nw_src=192.168.0.1 nw_dst=192.168.0.2 nw_tos=0 nw_ttl=0 tp_src=8 tp_dst=11 udp_csum:1234<br>
&gt;  dnl<br>
&gt;  NXT_PACKET_IN (xid=0x0): table_id=2 cookie=0x4 total_len=64 in_port=1 reg0=0x1 reg1=0x2 (via action) data_len=64 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(vlan:80,pcp:0) mac(80:81:81:81:81:81-&gt;50:54:00:00:00:07) type:0800 proto:17 tos:0 ttl:0 ip(192.168.0.1-&gt;192.168.0.2) port(8-&gt;11) udp_csum:1234<br>
&gt; +priority=0 metadata=0 in_port=0 udp dl_src=80:81:81:81:81:81 dl_dst=50:54:00:00:00:07 dl_vlan=80 dl_vlan_pcp=0 nw_src=192.168.0.1 nw_dst=192.168.0.2 nw_tos=0 nw_ttl=0 tp_src=8 tp_dst=11 udp_csum:1234<br>
&gt;  dnl<br>
&gt;  NXT_PACKET_IN (xid=0x0): table_id=3 cookie=0x5 total_len=64 in_port=1 reg0=0x1 reg1=0x2 reg2=0x3 (via action) data_len=64 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(vlan:80,pcp:0) mac(80:81:81:81:81:81-&gt;82:82:82:82:82:82) type:0800 proto:17 tos:0 ttl:0 ip(192.168.0.1-&gt;192.168.0.2) port(8-&gt;11) udp_csum:1234<br>
&gt; +priority=0 metadata=0 in_port=0 udp dl_src=80:81:81:81:81:81 dl_dst=82:82:82:82:82:82 dl_vlan=80 dl_vlan_pcp=0 nw_src=192.168.0.1 nw_dst=192.168.0.2 nw_tos=0 nw_ttl=0 tp_src=8 tp_dst=11 udp_csum:1234<br>
&gt;  dnl<br>
&gt;  NXT_PACKET_IN (xid=0x0): table_id=4 cookie=0x6 total_len=64 in_port=1 reg0=0x1 reg1=0x2 reg2=0x3 reg3=0x4 (via action) data_len=64 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(vlan:80,pcp:0) mac(80:81:81:81:81:81-&gt;82:82:82:82:82:82) type:0800 proto:17 tos:0 ttl:0 ip(83.83.83.83-&gt;192.168.0.2) port(8-&gt;11) udp_csum:2c37<br>
&gt; +priority=0 metadata=0 in_port=0 udp dl_src=80:81:81:81:81:81 dl_dst=82:82:82:82:82:82 dl_vlan=80 dl_vlan_pcp=0 nw_src=83.83.83.83 nw_dst=192.168.0.2 nw_tos=0 nw_ttl=0 tp_src=8 tp_dst=11 udp_csum:2c37<br>
&gt;  dnl<br>
&gt;  NXT_PACKET_IN (xid=0x0): table_id=5 cookie=0x7 total_len=64 in_port=1 tun_id=0x6 reg0=0x1 reg1=0x2 reg2=0x3 reg3=0x4 reg4=0x5 (via action) data_len=64 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(vlan:80,pcp:0) mac(80:81:81:81:81:81-&gt;82:82:82:82:82:82) type:0800 proto:17 tos:0 ttl:0 ip(83.83.83.83-&gt;84.84.84.84) port(8-&gt;11) udp_csum:4439<br>
&gt; +priority=0 metadata=0 in_port=0 udp dl_src=80:81:81:81:81:81 dl_dst=82:82:82:82:82:82 dl_vlan=80 dl_vlan_pcp=0 nw_src=83.83.83.83 nw_dst=84.84.84.84 nw_tos=0 nw_ttl=0 tp_src=8 tp_dst=11 udp_csum:4439<br>
&gt;  dnl<br>
&gt;  NXT_PACKET_IN (xid=0x0): table_id=6 cookie=0x8 total_len=64 in_port=1 tun_id=0x6 reg0=0x1 reg1=0x2 reg2=0x3 reg3=0x4 reg4=0x5 (via action) data_len=64 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(vlan:80,pcp:0) mac(80:81:81:81:81:81-&gt;82:82:82:82:82:82) type:0800 proto:17 tos:0 ttl:0 ip(83.83.83.83-&gt;84.84.84.84) port(85-&gt;11) udp_csum:43ec<br>
&gt; +priority=0 metadata=0 in_port=0 udp dl_src=80:81:81:81:81:81 dl_dst=82:82:82:82:82:82 dl_vlan=80 dl_vlan_pcp=0 nw_src=83.83.83.83 nw_dst=84.84.84.84 nw_tos=0 nw_ttl=0 tp_src=85 tp_dst=11 udp_csum:43ec<br>
&gt;  dnl<br>
&gt;  NXT_PACKET_IN (xid=0x0): table_id=7 cookie=0x9 total_len=64 in_port=1 tun_id=0x6 reg0=0x1 reg1=0x2 reg2=0x3 reg3=0x4 reg4=0x5 (via action) data_len=64 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(vlan:80,pcp:0) mac(80:81:81:81:81:81-&gt;82:82:82:82:82:82) type:0800 proto:17 tos:0 ttl:0 ip(83.83.83.83-&gt;84.84.84.84) port(85-&gt;86) udp_csum:43a1<br>
&gt; +priority=0 metadata=0 in_port=0 udp dl_src=80:81:81:81:81:81 dl_dst=82:82:82:82:82:82 dl_vlan=80 dl_vlan_pcp=0 nw_src=83.83.83.83 nw_dst=84.84.84.84 nw_tos=0 nw_ttl=0 tp_src=85 tp_dst=86 udp_csum:43a1<br>
&gt;  dnl<br>
&gt;  NXT_PACKET_IN (xid=0x0): table_id=7 cookie=0x9 total_len=64 in_port=1 tun_id=0x6 reg0=0x1 reg1=0x2 reg2=0x3 reg3=0x4 reg4=0x5 (via action) data_len=64 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(vlan:80,pcp:0) mac(80:81:81:81:81:81-&gt;82:82:82:82:82:82) type:0800 proto:17 tos:0 ttl:0 ip(83.83.83.83-&gt;84.84.84.84) port(85-&gt;86) udp_csum:43a1<br>
&gt; +priority=0 metadata=0 in_port=0 udp dl_src=80:81:81:81:81:81 dl_dst=82:82:82:82:82:82 dl_vlan=80 dl_vlan_pcp=0 nw_src=83.83.83.83 nw_dst=84.84.84.84 nw_tos=0 nw_ttl=0 tp_src=85 tp_dst=86 udp_csum:43a1<br>
&gt;  ])<br>
&gt;<br>
&gt;  AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip | sort], [0], [dnl<br>
&gt; diff --git a/tests/<a href="http://ofproto.at" target="_blank">ofproto.at</a> b/tests/<a href="http://ofproto.at" target="_blank">ofproto.at</a><br>
&gt; index 8a728e4..5e1f40a 100644<br>
&gt; --- a/tests/<a href="http://ofproto.at" target="_blank">ofproto.at</a><br>
&gt; +++ b/tests/<a href="http://ofproto.at" target="_blank">ofproto.at</a><br>
&gt; @@ -631,21 +631,21 @@ check_async () {<br>
&gt;      ovs-ofctl -v packet-out br0 none controller &#39;0001020304050010203040501234&#39;<br>
&gt;      if test X&quot;$1&quot; = X&quot;OFPR_ACTION&quot;; then shift;<br>
&gt;          echo &gt;&gt;expout &quot;OFPT_PACKET_IN: total_len=14 in_port=NONE (via action) data_len=14 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(0) mac(00:10:20:30:40:50-&gt;00:01:02:03:04:05) type:1234&quot;<br>
&gt; +priority=0 metadata=0 in_port=0 dl_src=00:10:20:30:40:50 dl_dst=00:01:02:03:04:05 dl_type=0x1234 vlan_tci=0x0000&quot;<br>
&gt;      fi<br>
&gt;<br>
&gt;      # OFPT_PACKET_IN, OFPR_NO_MATCH (controller_id=123)<br>
&gt;      ovs-ofctl -v packet-out br0 none &#39;controller(reason=no_match,id=123)&#39; &#39;0001020304050010203040501234&#39;<br>
&gt;      if test X&quot;$1&quot; = X&quot;OFPR_NO_MATCH&quot;; then shift;<br>
&gt;          echo &gt;&gt;expout &quot;OFPT_PACKET_IN: total_len=14 in_port=NONE (via no_match) data_len=14 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(0) mac(00:10:20:30:40:50-&gt;00:01:02:03:04:05) type:1234&quot;<br>
&gt; +priority=0 metadata=0 in_port=0 dl_src=00:10:20:30:40:50 dl_dst=00:01:02:03:04:05 dl_type=0x1234 vlan_tci=0x0000&quot;<br>
&gt;      fi<br>
&gt;<br>
&gt;      # OFPT_PACKET_IN, OFPR_INVALID_TTL (controller_id=0)<br>
&gt;      ovs-ofctl packet-out br0 none dec_ttl &#39;002583dfb4000026b98cb0f908004500003fb7e200000011339bac11370dac100002d7730035002b8f6d86fb0100000100000000000006626c702d7873066e696369726103636f6d00000f00&#39;<br>
&gt;      if test X&quot;$1&quot; = X&quot;OFPR_INVALID_TTL&quot;; then shift;<br>
&gt;          echo &gt;&gt;expout &quot;OFPT_PACKET_IN: total_len=76 in_port=NONE (via invalid_ttl) data_len=76 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(0) mac(00:26:b9:8c:b0:f9-&gt;00:25:83:df:b4:00) type:0800 proto:17 tos:0 ttl:0 ip(172.17.55.13-&gt;172.16.0.2) port(55155-&gt;53) udp_csum:8f6d&quot;<br>
&gt; +priority=0 metadata=0 in_port=0 udp dl_src=00:26:b9:8c:b0:f9 dl_dst=00:25:83:df:b4:00 vlan_tci=0x0000 nw_src=172.17.55.13 nw_dst=172.16.0.2 nw_tos=0 nw_ttl=0 tp_src=55155 tp_dst=53 udp_csum:8f6d&quot;<br>
&gt;      fi<br>
&gt;<br>
&gt;      # OFPT_PORT_STATUS, OFPPR_ADD<br>
&gt; @@ -743,9 +743,9 @@ ovs-appctl -t ovs-ofctl exit<br>
&gt;<br>
&gt;  AT_CHECK([sed &#39;s/ (xid=0x[[0-9a-fA-F]]*)//&#39; monitor.log], [0], [dnl<br>
&gt;  OFPT_PACKET_IN: total_len=14 in_port=NONE (via action) data_len=14 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(0) mac(00:10:20:30:40:50-&gt;00:01:02:03:04:05) type:1234<br>
&gt; +priority=0 metadata=0 in_port=0 dl_src=00:10:20:30:40:50 dl_dst=00:01:02:03:04:05 dl_type=0x1234 vlan_tci=0x0000<br>
&gt;  OFPT_PACKET_IN: total_len=14 in_port=CONTROLLER (via action) data_len=14 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(0) mac(00:10:20:30:40:50-&gt;00:01:02:03:04:05) type:5678<br>
&gt; +priority=0 metadata=0 in_port=0 dl_src=00:10:20:30:40:50 dl_dst=00:01:02:03:04:05 dl_type=0x5678 vlan_tci=0x0000<br>
&gt;  OFPT_BARRIER_REPLY:<br>
&gt;  ])<br>
&gt;<br>
&gt; @@ -773,7 +773,7 @@ ovs-appctl -t ovs-ofctl exit<br>
&gt;<br>
&gt;  AT_CHECK([sed &#39;s/ (xid=0x[[0-9a-fA-F]]*)//&#39; monitor.log], [0], [dnl<br>
&gt;  NXT_PACKET_IN: total_len=14 in_port=NONE metadata=0xfafafafa5a5a5a5a (via action) data_len=14 (unbuffered)<br>
&gt; -priority:0,metadata:0,in_port:0000,tci(0) mac(00:10:20:30:40:50-&gt;00:01:02:03:04:05) type:1234<br>
&gt; +priority=0 metadata=0 in_port=0 dl_src=00:10:20:30:40:50 dl_dst=00:01:02:03:04:05 dl_type=0x1234 vlan_tci=0x0000<br>
&gt;  OFPT_BARRIER_REPLY:<br>
&gt;  ])<br>
&gt;<br>
&gt; --<br>
&gt; 1.7.2.5<br>
&gt;<br>
</div></div>&gt; _______________________________________________<br>
&gt; dev mailing list<br>
&gt; <a href="mailto:dev@openvswitch.org">dev@openvswitch.org</a><br>
&gt; <a href="http://openvswitch.org/mailman/listinfo/dev" target="_blank">http://openvswitch.org/mailman/listinfo/dev</a><br>
</blockquote></div><br>