Consider a tunneling driver that receives packets in ndo_start_xmit,
encapsulates them in UDP, and forwards via ip_local_out. The
ndo_start_xmit implementation can implement bulking by looking at
skb->xmit_more. But then how to efficiently transmit the resulting
bulked list of encapsulated packets via UDP, so that the packets both
enter and leave the driver in bulked form? Is there an ip_local_out
alternative for bulked skb lists?
James
On Thu, 2014-11-20 at 05:39 -0700, James Yonan wrote:
Consider a tunneling driver that receives packets in ndo_start_xmit,
encapsulates them in UDP, and forwards via ip_local_out. The
ndo_start_xmit implementation can implement bulking by looking at
skb->xmit_more. But then how to efficiently transmit the resulting
bulked list of encapsulated packets via UDP, so that the packets both
enter and leave the driver in bulked form? Is there an ip_local_out
alternative for bulked skb lists?
There is no such thing. Quite frankly it wont happen. Consider IP stacks
and netfilter, there is no provision for batches (other than GSO/TSO)
xmit_more addresses a specific hardware problem, it is not an
alternative for batches.
xmit_more will happen in your case in the last step, from qdisc to
ethernet device.