goto fail_mem;
}
+ /* Enable FDIR MSIX interrupt */
+ vsi->nb_used_qps = 1;
+ ice_vsi_queues_bind_intr(vsi);
+ ice_vsi_enable_queues_intr(vsi);
+
/* reserve memory for the fdir programming packet */
snprintf(z_name, sizeof(z_name), "ICE_%s_%d",
ICE_FDIR_MZ_NAME,
if (!vsi)
return;
+ ice_vsi_disable_queues_intr(vsi);
+
err = ice_fdir_tx_queue_stop(eth_dev, pf->fdir.txq->queue_id);
if (err)
PMD_DRV_LOG(ERR, "Failed to stop TX queue.");
tcp_spec = item->spec;
tcp_mask = item->mask;
+ if (l3 == RTE_FLOW_ITEM_TYPE_IPV4)
+ flow_type = ICE_FLTR_PTYPE_NONF_IPV4_TCP;
+ else if (l3 == RTE_FLOW_ITEM_TYPE_IPV6)
+ flow_type = ICE_FLTR_PTYPE_NONF_IPV6_TCP;
+
if (tcp_spec && tcp_mask) {
/* Check TCP mask and update input set */
if (tcp_mask->hdr.sent_seq ||
tcp_spec->hdr.src_port;
filter->input.ip.v4.src_port =
tcp_spec->hdr.dst_port;
- flow_type =
- ICE_FLTR_PTYPE_NONF_IPV4_TCP;
} else if (l3 == RTE_FLOW_ITEM_TYPE_IPV6) {
filter->input.ip.v6.dst_port =
tcp_spec->hdr.src_port;
filter->input.ip.v6.src_port =
tcp_spec->hdr.dst_port;
- flow_type =
- ICE_FLTR_PTYPE_NONF_IPV6_TCP;
}
}
break;
udp_spec = item->spec;
udp_mask = item->mask;
+ if (l3 == RTE_FLOW_ITEM_TYPE_IPV4)
+ flow_type = ICE_FLTR_PTYPE_NONF_IPV4_UDP;
+ else if (l3 == RTE_FLOW_ITEM_TYPE_IPV6)
+ flow_type = ICE_FLTR_PTYPE_NONF_IPV6_UDP;
+
if (udp_spec && udp_mask) {
/* Check UDP mask and update input set*/
if (udp_mask->hdr.dgram_len ||
udp_spec->hdr.src_port;
filter->input.ip.v4.src_port =
udp_spec->hdr.dst_port;
- flow_type =
- ICE_FLTR_PTYPE_NONF_IPV4_UDP;
} else if (l3 == RTE_FLOW_ITEM_TYPE_IPV6) {
filter->input.ip.v6.src_port =
udp_spec->hdr.dst_port;
filter->input.ip.v6.dst_port =
udp_spec->hdr.src_port;
- flow_type =
- ICE_FLTR_PTYPE_NONF_IPV6_UDP;
}
}
break;
sctp_spec = item->spec;
sctp_mask = item->mask;
+ if (l3 == RTE_FLOW_ITEM_TYPE_IPV4)
+ flow_type = ICE_FLTR_PTYPE_NONF_IPV4_SCTP;
+ else if (l3 == RTE_FLOW_ITEM_TYPE_IPV6)
+ flow_type = ICE_FLTR_PTYPE_NONF_IPV6_SCTP;
+
if (sctp_spec && sctp_mask) {
/* Check SCTP mask and update input set */
if (sctp_mask->hdr.cksum) {
sctp_spec->hdr.src_port;
filter->input.ip.v4.src_port =
sctp_spec->hdr.dst_port;
- flow_type =
- ICE_FLTR_PTYPE_NONF_IPV4_SCTP;
} else if (l3 == RTE_FLOW_ITEM_TYPE_IPV6) {
filter->input.ip.v6.dst_port =
sctp_spec->hdr.src_port;
filter->input.ip.v6.src_port =
sctp_spec->hdr.dst_port;
- flow_type =
- ICE_FLTR_PTYPE_NONF_IPV6_SCTP;
}
}
break;