Hey Jesse, Ben,<br><br>Thanks for reviewing this.<br>I have updated the commit message and also fixed the indentation.<br>I will send out an updated patch. <br><br>thanx!<br>mehak<br><br><div class="gmail_quote">On Tue, Oct 23, 2012 at 6:37 PM, Jesse Gross <span dir="ltr">&lt;<a href="mailto:jesse@nicira.com" target="_blank">jesse@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"><div class="im">On Tue, Oct 23, 2012 at 1:39 PM, Mehak Mahajan &lt;<a href="mailto:mmahajan@nicira.com">mmahajan@nicira.com</a>&gt; wrote:<br>

&gt; With this commit, the datapath will process the ARP header for<br>
&gt; RARP packets, both request and reply.<br>
&gt;<br>
&gt; Signed-off-by: Mehak Mahajan &lt;<a href="mailto:mmahajan@nicira.com">mmahajan@nicira.com</a>&gt;<br>
<br>
</div>Can you mention that this also fixes the bug related to key_len?<br>
<div><div class="h5"><br>
&gt; diff --git a/datapath/flow.c b/datapath/flow.c<br>
&gt; index b6efd35..4142027 100644<br>
&gt; --- a/datapath/flow.c<br>
&gt; +++ b/datapath/flow.c<br>
&gt; @@ -735,18 +735,17 @@ int ovs_flow_extract(struct sk_buff *skb, u16 in_port, struct sw_flow_key *key,<br>
&gt;                                 &amp;&amp; arp-&gt;ar_hln == ETH_ALEN<br>
&gt;                                 &amp;&amp; arp-&gt;ar_pln == 4) {<br>
&gt;<br>
&gt; -                       /* We only match on the lower 8 bits of the opcode. */<br>
&gt; -                       if (ntohs(arp-&gt;ar_op) &lt;= 0xff)<br>
&gt; -                               key-&gt;ip.proto = ntohs(arp-&gt;ar_op);<br>
&gt; -<br>
&gt; -                       if (key-&gt;ip.proto == ARPOP_REQUEST<br>
&gt; -                                       || key-&gt;ip.proto == ARPOP_REPLY) {<br>
&gt; -                               memcpy(&amp;key-&gt;ipv4.addr.src, arp-&gt;ar_sip, sizeof(key-&gt;ipv4.addr.src));<br>
&gt; -                               memcpy(&amp;key-&gt;ipv4.addr.dst, arp-&gt;ar_tip, sizeof(key-&gt;ipv4.addr.dst));<br>
&gt; -                               memcpy(key-&gt;ipv4.arp.sha, arp-&gt;ar_sha, ETH_ALEN);<br>
&gt; -                               memcpy(key-&gt;ipv4.arp.tha, arp-&gt;ar_tha, ETH_ALEN);<br>
&gt; -                               key_len = SW_FLOW_KEY_OFFSET(ipv4.arp);<br>
&gt; -                       }<br>
&gt; +            /* We only match on the lower 8 bits of the opcode. */<br>
&gt; +            if (ntohs(arp-&gt;ar_op) &lt;= 0xff)<br>
&gt; +                key-&gt;ip.proto = ntohs(arp-&gt;ar_op);<br>
&gt; +<br>
&gt; +            memcpy(&amp;key-&gt;ipv4.addr.src, arp-&gt;ar_sip,<br>
&gt; +                   sizeof(key-&gt;ipv4.addr.src));<br>
&gt; +            memcpy(&amp;key-&gt;ipv4.addr.dst, arp-&gt;ar_tip,<br>
&gt; +                   sizeof(key-&gt;ipv4.addr.dst));<br>
&gt; +            memcpy(key-&gt;ipv4.arp.sha, arp-&gt;ar_sha, ETH_ALEN);<br>
&gt; +            memcpy(key-&gt;ipv4.arp.tha, arp-&gt;ar_tha, ETH_ALEN);<br>
&gt; +            key_len = SW_FLOW_KEY_OFFSET(ipv4.arp);<br>
&gt;                 }<br>
<br>
</div></div>As Ben mentioned, the indentation here isn&#39;t right because kernel<br>
style uses tabs but this has spaces.<br>
</blockquote></div><br>