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

Reply via email to