Re: [ovs-discuss] set dpdk packet refcnt when flow output to group.

2015-10-20 Thread Daniele Di Proietto
On 20/10/2015 11:41, "David Evans" wrote: >Thanks Daniele > >may_steal sounds like the right thing, but i couldn’t see how it’s set by >the group OFPGT11_ALL code path. >Also - maybe refcnt + cloning would be a more efficient option (assuming >no packet mod’s would occur after the group) The

Re: [ovs-discuss] set dpdk packet refcnt when flow output to group.

2015-10-20 Thread David Evans
Thanks Daniele may_steal sounds like the right thing, but i couldn’t see how it’s set by the group OFPGT11_ALL code path. Also - maybe refcnt + cloning would be a more efficient option (assuming no packet mod’s would occur after the group) My main concern is where there are multiple packets fo

Re: [ovs-discuss] set dpdk packet refcnt when flow output to group.

2015-10-20 Thread Daniele Di Proietto
Hi, Currently every DPDK mbuf in OVS has the `refcnt` set to one. Output to multiple ports is handled by making a copy of the packet's payload (see `may_steal` in dp_netdev_execute_actions(), and in netdev_send()). You're right, having a `refcnt` != 1 might be necessary to use rte_ipv4_fragment_p

Re: [ovs-discuss] set dpdk packet refcnt when flow output to group.

2015-10-15 Thread Ben Pfaff
I don't understand what you're asking for. Daniele or Pravin, I think that you know the DPDK datapath well. Do you understand what David wants or why? On Thu, Oct 15, 2015 at 01:15:11PM -0500, David Evans wrote: > Thanks Ben, > > If that’s the case, then it would be better to be adding custom a

Re: [ovs-discuss] set dpdk packet refcnt when flow output to group.

2015-10-15 Thread David Evans
Thanks Ben, If that’s the case, then it would be better to be adding custom action that applies prior to this group action, to update the refcnt. I expect it just has to happen some time before the first PMD has finished processing the packet so that the packet does not get deleted by the tx r

Re: [ovs-discuss] set dpdk packet refcnt when flow output to group.

2015-10-12 Thread Ben Pfaff
Your change isn't going to have much effect because most packets don't go through the translation process. If you try to force all packets through translation, it will kill performance. I think that you should read this paper that describes the various caching layers in Open vSwitch: http

Re: [ovs-discuss] set dpdk packet refcnt when flow output to group.

2015-10-12 Thread David Evans
Hi Ben, When i use the OFPGT11_ALL group action, the packets for a flow will be sent out all buckets in a group. (in my case all the buckets are ports to transmit out) I added a group_bucket_count to the context and in xlate_all_group fn the following. group_dpif_get_buckets(group, &buc

Re: [ovs-discuss] set dpdk packet refcnt when flow output to group.

2015-10-12 Thread Ben Pfaff
On Wed, Oct 07, 2015 at 05:36:18PM -0500, David Evans wrote: > While using netdev-dpdk - When i add a rule for which the action is to > send to a group (type=all) containing (x) output buckets (ports) how > can i increment the dp_packet->pkt_mbuf’s refcnt to (x) so that the > packet is not deleted

[ovs-discuss] set dpdk packet refcnt when flow output to group.

2015-10-07 Thread David Evans
Hi all, While using netdev-dpdk - When i add a rule for which the action is to send to a group (type=all) containing (x) output buckets (ports) how can i increment the dp_packet->pkt_mbuf’s refcnt to (x) so that the packet is not deleted before it has transmitted all ports(buckets) in the grou