1. We can use batch API: Example1: - for (i = 0; i < cnt; i++) { - dp_packet_delete(pkts[i]); - } + dp_packet_delete_batch(batch, may_steal);
Example2: - for (i = 0; i < cnt; i++) { - int cutlen = dp_packet_get_cutlen(pkts[i]); - - dp_packet_set_size(pkts[i], dp_packet_size(pkts[i]) - cutlen); - dp_packet_reset_cutlen(pkts[i]); - } - __netdev_dpdk_vhost_send(netdev, qid, pkts, cnt, may_steal); + dp_packet_batch_apply_cutlen(batch); + __netdev_dpdk_vhost_send(netdev, qid, batch, may_steal); 2. Certain batch-level attribute can be passed into netdev provider to avoid loop. For example: Commit aaca4fe0ce9 introduces 'trunc' in dp_packet_batch. if batch->trunc == false, then the entire batch of packet can skip the truncate action, we don't need to loop into each packet and check. Regards, William On Fri, Jun 24, 2016 at 10:35 PM, Ben Pfaff <b...@ovn.org> wrote: > On Fri, Jun 24, 2016 at 04:11:47PM -0700, William Tu wrote: >> This patch applies the packet batch object to the netdev providers, >> including dummy, Linux, BSD, and DPDK. >> >> Tested-at: https://travis-ci.org/williamtu/ovs-travis/builds/140135888 >> Signed-off-by: William Tu <u9012...@gmail.com> > > What's the benefit? > > I haven't read the patch yet. > > Thanks, > > Ben. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev