[dpdk-dev,22/22] virtio: Use soft vlan strip in mergeable Rx path
Commit Message
To keep the consistent logic with normal Rx path, the mergeable
Rx path also needs software vlan strip/decap if it is enabled.
Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
---
lib/librte_pmd_virtio/virtio_rxtx.c | 4 ++++
1 file changed, 4 insertions(+)
Comments
On Thu, 15 Jan 2015 13:15:30 +0800
Ouyang Changchun <changchun.ouyang@intel.com> wrote:
> To keep the consistent logic with normal Rx path, the mergeable
> Rx path also needs software vlan strip/decap if it is enabled.
>
> Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
> ---
> lib/librte_pmd_virtio/virtio_rxtx.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/lib/librte_pmd_virtio/virtio_rxtx.c b/lib/librte_pmd_virtio/virtio_rxtx.c
> index 2529dc4..9090613 100644
> --- a/lib/librte_pmd_virtio/virtio_rxtx.c
> +++ b/lib/librte_pmd_virtio/virtio_rxtx.c
> @@ -568,6 +568,7 @@ virtio_recv_mergeable_pkts(void *rx_queue,
> uint16_t nb_pkts)
> {
> struct virtqueue *rxvq = rx_queue;
> + struct virtio_hw *hw = rxvq->hw;
> struct rte_mbuf *rxm, *new_mbuf;
> uint16_t nb_used, num, nb_rx = 0;
> uint32_t len[VIRTIO_MBUF_BURST_SZ];
> @@ -674,6 +675,9 @@ virtio_recv_mergeable_pkts(void *rx_queue,
> seg_res -= rcv_cnt;
> }
>
> + if (hw->vlan_strip)
> + rte_vlan_strip(rx_pkts[nb_rx]);
> +
> VIRTIO_DUMP_PACKET(rx_pkts[nb_rx],
> rx_pkts[nb_rx]->data_len);
>
If you resubmit, just combine this with earlier patch that does vlan strip
> -----Original Message-----
> From: Stephen Hemminger [mailto:stephen@networkplumber.org]
> Sent: Friday, January 16, 2015 12:56 AM
> To: Ouyang, Changchun
> Cc: dev@dpdk.org; Doherty, Declan; Cao, Waterman
> Subject: Re: [PATCH 22/22] virtio: Use soft vlan strip in mergeable Rx path
>
> On Thu, 15 Jan 2015 13:15:30 +0800
> Ouyang Changchun <changchun.ouyang@intel.com> wrote:
>
> > To keep the consistent logic with normal Rx path, the mergeable Rx
> > path also needs software vlan strip/decap if it is enabled.
> >
> > Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
> > ---
> > lib/librte_pmd_virtio/virtio_rxtx.c | 4 ++++
> > 1 file changed, 4 insertions(+)
> >
> > diff --git a/lib/librte_pmd_virtio/virtio_rxtx.c
> > b/lib/librte_pmd_virtio/virtio_rxtx.c
> > index 2529dc4..9090613 100644
> > --- a/lib/librte_pmd_virtio/virtio_rxtx.c
> > +++ b/lib/librte_pmd_virtio/virtio_rxtx.c
> > @@ -568,6 +568,7 @@ virtio_recv_mergeable_pkts(void *rx_queue,
> > uint16_t nb_pkts)
> > {
> > struct virtqueue *rxvq = rx_queue;
> > + struct virtio_hw *hw = rxvq->hw;
> > struct rte_mbuf *rxm, *new_mbuf;
> > uint16_t nb_used, num, nb_rx = 0;
> > uint32_t len[VIRTIO_MBUF_BURST_SZ];
> > @@ -674,6 +675,9 @@ virtio_recv_mergeable_pkts(void *rx_queue,
> > seg_res -= rcv_cnt;
> > }
> >
> > + if (hw->vlan_strip)
> > + rte_vlan_strip(rx_pkts[nb_rx]);
> > +
> > VIRTIO_DUMP_PACKET(rx_pkts[nb_rx],
> > rx_pkts[nb_rx]->data_len);
> >
>
> If you resubmit, just combine this with earlier patch that does vlan strip
I think just keeping it as a separate a patch may be a good way.
Thanks
Changchun
@@ -568,6 +568,7 @@ virtio_recv_mergeable_pkts(void *rx_queue,
uint16_t nb_pkts)
{
struct virtqueue *rxvq = rx_queue;
+ struct virtio_hw *hw = rxvq->hw;
struct rte_mbuf *rxm, *new_mbuf;
uint16_t nb_used, num, nb_rx = 0;
uint32_t len[VIRTIO_MBUF_BURST_SZ];
@@ -674,6 +675,9 @@ virtio_recv_mergeable_pkts(void *rx_queue,
seg_res -= rcv_cnt;
}
+ if (hw->vlan_strip)
+ rte_vlan_strip(rx_pkts[nb_rx]);
+
VIRTIO_DUMP_PACKET(rx_pkts[nb_rx],
rx_pkts[nb_rx]->data_len);