Le lundi 06 février 2012 à 11:58 -0500, David Miller a écrit :
> From: Eric Dumazet <[email protected]>
> Date: Mon, 06 Feb 2012 17:47:14 +0100
> 
> [ Roland Dreier CC:'d ]
> 
> > gro_max_header_len can be different than hard_header_len because as Or
> > Gerlitz said :
> > 
> >     IPoIB advertizes hard_header_len which is bigger than the
> >     IPoIB header len, this is done such that skbs sent by the
> >     network stack have enough headroom for a "pseudoheader"
> >     which for few flows (e.g unicast arp replies and multicast)
> >     is placed there by the ipoib hard_header function and later
> >     used by the xmit function.
> 
> Translation: IPoIB's path resolution mechanism is garbage
> 
> So if IPoIB path resolution was properly integrated into the neighbour
> cache state machine, instead of being implemented awkwardly in the
> device transmit path, this crap wouldn't be necessary right?
> 
> So here we have yet another incredibly painful side effect of how
> IPoIB path resolution works.
> 
> Roland, I want you to seriously consider a way, any way, to get rid of
> how IPoIB does path resolution.  It must be fully integrated into the
> neighbour layer, the neighbour layer must be knowledgable about how
> path resolution is a necessary step for a neighbour entry to enter the
> valid state, and I want all of this awkward neighbour handling code
> removed from the transmit path of IPoIB.
> 
> And finally it must not lie about it's hardware header length.
> 
> Then we won't need crap like what is being proposed here, a
> "no_this_is_the_real_hard_header_len" struct member.  That's just
> rediculious.

OK, I'll resend my first patch then, using hard_header_len



--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to