<html><body>
<p>Does your recommendation is the same as Roland's before? I hope it's not, otherwise, it doesn't work. Since  the first buffer is GRH + IPoIB HEAD = 44 bytes not 40 bytes. If we put all skb data in the first frag, then the IP header is not aligned to 16 bytes. I am copying Roland's comments regarding this approach:<br>
---------<br>
<tt><font size="4">However, I now realize that my earlier idea of allocating a scratch<br>
buffer for the GRH and just allocating a 4096 byte skb doesn't work,<br>
because the skb_shinfo ends up being allocated along with the buffer,<br>
so trying to allocate a 4096-byte skb will bloat the data past a<br>
single page, which is what we're trying to avoid.</font></tt><font size="4"><br>
</font><tt><font size="4"><br>
So how about the following?  When using a UD MTU of 4096 with a page<br>
size of 4096, allocate an skb of size 44 for the GRH and ethertype,<br>
and then allocate a single page for the fragment list.  This means<br>
that the IP packet will start nicely 16-byte aligned for free, and all<br>
the bookkeeping is very simple.</font></tt><font size="4"> </font><br>
-------<br>
<br>
thanks<br>
Shirley</body></html>