From: David Miller <[email protected]> Date: Mon, 06 Feb 2012 14:51:48 -0500 (EST)
> From: David Miller <[email protected]> > Date: Mon, 06 Feb 2012 14:32:30 -0500 (EST) > >> From: Roland Dreier <[email protected]> >> Date: Mon, 6 Feb 2012 11:23:21 -0800 >> >>> Does the netdev driver own skb->cb between hard_header >>> and start_xmit? If so we could use that instead of stealing >>> some header space, and that would at least let us not lie >>> about hard_header_len. >> >> Unfortunately the packet scheduler sits between the hard_header() >> call (via neigh_*_output() --> dev_hard_header()) and when the >> device xmit method is invoked. >> >> And the packet scheduler can make use of the skb->cb[], for >> include/net/sch_generic.h:qdisc_skb_cb > > Actually there is a way to make this work. > > Define your ipoib_skb_cb something like: > > struct ipoib_skb_cb { > struct qdisc_skb_cb qdisc_cb; > > ... ipoib stuff goes here ... > }; > > That way you can use the SKB cb area for your ipoib info > without interfering with the packet scheduler. But this needs a little bit of work since the qdisc_skb_cb ends with a variable length array, but we can put an upper bound on this just like we do for skb->cb[] itself to fix this issue. I'll toss something together. -- 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
