[dpdk-dev] net/ixgbe: fix parsing fdir vxlan issue
Checks
Commit Message
VNI of VXLAN is parsed wrongly. The root cause is that
array vni in item VXLAN also uses network byte ordering.
Fixes: 11777435c727 ("net/ixgbe: parse flow director filter")
Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
---
drivers/net/ixgbe/ixgbe_flow.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
Comments
On 2/3/2017 8:44 AM, Wei Zhao wrote:
> VNI of VXLAN is parsed wrongly. The root cause is that
> array vni in item VXLAN also uses network byte ordering.
>
> Fixes: 11777435c727 ("net/ixgbe: parse flow director filter")
>
> Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
Cc: stable@dpdk.org
Applied to dpdk-next-net/master, thanks.
On Fri, Feb 03, 2017 at 10:53:29PM +0000, Ferruh Yigit wrote:
> On 2/3/2017 8:44 AM, Wei Zhao wrote:
> > VNI of VXLAN is parsed wrongly. The root cause is that
> > array vni in item VXLAN also uses network byte ordering.
> >
> > Fixes: 11777435c727 ("net/ixgbe: parse flow director filter")
> >
> > Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
>
> Cc: stable@dpdk.org
It fixed an issue introduced in this release, thus it's not a candidate
for a stable release. Dropped.
--yliu
>
> Applied to dpdk-next-net/master, thanks.
@@ -2132,15 +2132,16 @@ ixgbe_parse_fdir_filter_tunnel(const struct rte_flow_attr *attr,
rte_memcpy(&rule->mask.tunnel_id_mask, vxlan_mask->vni,
RTE_DIM(vxlan_mask->vni));
- rule->mask.tunnel_id_mask <<= 8;
if (item->spec) {
rule->b_spec = TRUE;
vxlan_spec = (const struct rte_flow_item_vxlan *)
item->spec;
- rte_memcpy(&rule->ixgbe_fdir.formatted.tni_vni,
+ rte_memcpy(((uint8_t *)
+ &rule->ixgbe_fdir.formatted.tni_vni + 1),
vxlan_spec->vni, RTE_DIM(vxlan_spec->vni));
- rule->ixgbe_fdir.formatted.tni_vni <<= 8;
+ rule->ixgbe_fdir.formatted.tni_vni = rte_be_to_cpu_32(
+ rule->ixgbe_fdir.formatted.tni_vni);
}
}