<div dir="ltr">Good idea. There may be other aspects of the mega related kernel ABI needs document as well. Wonder if Justin and Jesse have more inputs on this. <br></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Wed, Jun 19, 2013 at 2:55 PM, Ben Pfaff <span dir="ltr">&lt;<a href="mailto:blp@nicira.com" target="_blank">blp@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">
OK, can we add that in the tree somewhere, maybe datapath/README?<br>
<br>
Thanks,<br>
<br>
Ben.<br>
<div class="HOEnZb"><div class="h5"><br>
On Wed, Jun 19, 2013 at 02:52:52PM -0700, Andy Zhou wrote:<br>
&gt; It is a good idea to capture this information in a table.   The following<br>
&gt; table should be accurate:<br>
&gt;<br>
&gt; Pre-megaflow:<br>
&gt;<br>
&gt;     type                mask               matches<br>
&gt;     ----------------    ----------------   ---------------------------<br>
&gt;     eth_type(0x600+)    &lt;none&gt;       specified Ethertype II, or valid 802.3<br>
&gt; SNAP<br>
&gt;                                                    packet with valid<br>
&gt; eth_type.<br>
&gt;  Ethertype.<br>
&gt;     &lt;none&gt;              &lt;none&gt;           any non-Ethernet II frame, except<br>
&gt; valid 802.3 SNAP<br>
&gt;                                                    packet with valid<br>
&gt; eth_type.<br>
&gt;<br>
&gt; Post-megaflow:<br>
&gt;<br>
&gt;     type                mask               matches<br>
&gt;     ----------------    ----------------   ---------------------------<br>
&gt;     eth_type(0x600+)    eth_type(0xffff)   specified Ethertype II<br>
&gt; Ethertype, or valid 802.3 SNAP packet with valid eth_type.<br>
&gt;     eth_type(0x600+)    eth_type(0)        any Ethertype II frame or<br>
&gt; non-Ethernet II frame.<br>
&gt;     &lt;none&gt;              eth_type(0xffff)   any non-Ethernet II frame,<br>
&gt; except valid 802.3 SNAP packet with valid eth_type.<br>
&gt;<br>
&gt; --andy<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On Wed, Jun 19, 2013 at 1:42 PM, Ben Pfaff &lt;<a href="mailto:blp@nicira.com">blp@nicira.com</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; I don&#39;t really care about the formatting, only about the kernel ABI.<br>
&gt; &gt;<br>
&gt; &gt; Pre-megaflows, the ABI was:<br>
&gt; &gt;<br>
&gt; &gt;     type                mask               matches<br>
&gt; &gt;     ----------------    ----------------   ---------------------------<br>
&gt; &gt;     eth_type(0x600+)    &lt;none&gt;             specified Ethertype II<br>
&gt; &gt; Ethertype.<br>
&gt; &gt;     &lt;none&gt;              &lt;none&gt;             any non-Ethernet II frame<br>
&gt; &gt;<br>
&gt; &gt; Now, my understanding is that the above continue to be valid, with the<br>
&gt; &gt; same meanings, but the following are also supported:<br>
&gt; &gt;<br>
&gt; &gt;     type                mask               matches<br>
&gt; &gt;     ----------------    ----------------   ---------------------------<br>
&gt; &gt;     eth_type(0x600+)    eth_type(0xffff)   specified Ethertype II<br>
&gt; &gt; Ethertype.<br>
&gt; &gt;     eth_type(0x600+)    eth_type(0)        any Ethertype II frame<br>
&gt; &gt;     &lt;none&gt;              eth_type(0xffff)   any non-Ethernet II frame<br>
&gt; &gt;<br>
&gt; &gt; Is that right?<br>
&gt; &gt;<br>
&gt; &gt; On Wed, Jun 19, 2013 at 10:40:28AM -0700, Andy Zhou wrote:<br>
&gt; &gt; &gt; We will continue to allow missing eth_type in the netlink attribute to<br>
&gt; &gt; &gt; imply Ethernet II type. 802.3 frames requires a specific eth_type<br>
&gt; &gt; &gt; attribute.<br>
&gt; &gt;<br>
&gt; &gt; I don&#39;t understand the first sentence.  We have never interpreted a<br>
&gt; &gt; missing eth_type as implying an Ethernet II frame; the opposite, in<br>
&gt; &gt; fact: a missing eth_type matches only non-Ethernet II frames.<br>
&gt; &gt;<br>
&gt; &gt; &gt; With Mega flows, we further require a missing eth_type in the key<br>
&gt; &gt; attribute<br>
&gt; &gt; &gt; to have a exact match (oxffff) in the eth_type of the mask attribute (if<br>
&gt; &gt; &gt; present).<br>
&gt; &gt;<br>
&gt; &gt; That&#39;s really weird.  What&#39;s the rationale?<br>
&gt; &gt;<br>
&gt; &gt; Thanks,<br>
&gt; &gt;<br>
&gt; &gt; Ben.<br>
&gt; &gt;<br>
</div></div></blockquote></div><br></div>