net/cxgbe: fix wrong ingress port value set in filter spec

Set the "value" in the filter spec and not the "mask". Also, remove
duplicate comparison for hardware supported match items already done
earlier.

Fixes: af44a57798 ("net/cxgbe: support to offload flows to HASH region")
Cc: stable@dpdk.org

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
This commit is contained in:
Rahul Lakkireddy 2018-11-09 13:26:27 +05:30 committed by Ferruh Yigit
parent f1e9d2afea
commit 34ca5e3eb7

View File

@ -263,8 +263,8 @@ static u64 hash_filter_ntuple(const struct filter_entry *f)
u64 ntuple = 0;
u16 tcp_proto = IPPROTO_TCP; /* TCP Protocol Number */
if (tp->port_shift >= 0)
ntuple |= (u64)f->fs.mask.iport << tp->port_shift;
if (tp->port_shift >= 0 && f->fs.mask.iport)
ntuple |= (u64)f->fs.val.iport << tp->port_shift;
if (tp->protocol_shift >= 0) {
if (!f->fs.val.proto)
@ -278,9 +278,6 @@ static u64 hash_filter_ntuple(const struct filter_entry *f)
if (tp->macmatch_shift >= 0 && f->fs.mask.macidx)
ntuple |= (u64)(f->fs.val.macidx) << tp->macmatch_shift;
if (ntuple != tp->hash_filter_mask)
return 0;
return ntuple;
}