[ovs-dev] [PATCH v10 4/7] netdev-dpdk: implement flow offload with rte flow
Shahaf Shuler
shahafs at mellanox.com
Mon Jun 18 14:28:42 UTC 2018
Monday, June 18, 2018 1:17 PM, Andrew Rybchenko:
> Subject: Re: [ovs-dev] [PATCH v10 4/7] netdev-dpdk: implement flow offload
> with rte flow
>
> On 05/18/2018 12:14 PM, Shahaf Shuler wrote:
> > From: Finn Christensen <fc at napatech.com>
> >
> > The basic yet the major part of this patch is to translate the "match"
> > to rte flow patterns. And then, we create a rte flow with MARK + RSS
> > actions. Afterwards, all packets match the flow will have the mark id
> > in the mbuf.
> >
> > The reason RSS is needed is, for most NICs, a MARK only action is not
> > allowed. It has to be used together with some other actions, such as
> > QUEUE, RSS, etc. However, QUEUE action can specify one queue only,
> > which may break the rss. Likely, RSS action is currently the best we
> > could now. Thus, RSS action is choosen.
> >
> > For any unsupported flows, such as MPLS, -1 is returned, meaning the
> > flow offload is failed and then skipped.
> >
> > Co-authored-by: Yuanhan Liu <yliu at fridaylinux.org>
> > Signed-off-by: Finn Christensen <fc at napatech.com>
> > Signed-off-by: Yuanhan Liu <yliu at fridaylinux.org>
> > Signed-off-by: Shahaf Shuler <shahafs at mellanox.com>
>
> <...>
>
> > + /* VLAN */
> > + struct rte_flow_item_vlan vlan_spec;
> > + struct rte_flow_item_vlan vlan_mask;
> > + memset(&vlan_spec, 0, sizeof(vlan_spec));
> > + memset(&vlan_mask, 0, sizeof(vlan_mask));
> > + if (match->wc.masks.vlans[0].tci && match->flow.vlans[0].tci) {
> > + vlan_spec.tci = match->flow.vlans[0].tci;
> > + vlan_mask.tci = match->wc.masks.vlans[0].tci;
>
> As I understand VLAN_CFI bit is used inside OVS to distinguish no VLAN and
> zero VLAN cases (aka VLAN_TAG_PRESENT). So above two lines should drop
> the VLAN_CFI bit, something like:
>
> vlan_spec.tci = match->flow.vlans[0].tci & ~htons(VLAN_CFI);
> vlan_mask.tci = match->wc.masks.vlans[0].tci & ~htons(VLAN_CFI);
Yes, thanks for spotting that. I guess matching on the CFI bit is not so important from offload perspective, I don't think we will have different actions of those.
Will be addressed on v11.
>
> Andrew.
More information about the dev
mailing list