summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHanoh Haim <hhaim@cisco.com>2016-11-28 15:20:19 +0200
committerHanoh Haim <hhaim@cisco.com>2016-11-28 21:16:09 +0200
commit3f11d1c5e42eecb2e4120cbd36f337455be60559 (patch)
tree7b0a45ffcc1436584d16c6b9110d53e4cc9a5508 /src
parent00a99f80f555ae23aeefa8b8fe284f74c28f4252 (diff)
check VIC FW support using FILTER_INFO, remove patch from enic driver
Signed-off-by: Hanoh Haim <hhaim@cisco.com>
Diffstat (limited to 'src')
-rw-r--r--src/dpdk/drivers/net/enic/enic_ethdev.c16
-rw-r--r--src/main_dpdk.cpp25
2 files changed, 12 insertions, 29 deletions
diff --git a/src/dpdk/drivers/net/enic/enic_ethdev.c b/src/dpdk/drivers/net/enic/enic_ethdev.c
index c05476b2..6a86e23f 100644
--- a/src/dpdk/drivers/net/enic/enic_ethdev.c
+++ b/src/dpdk/drivers/net/enic/enic_ethdev.c
@@ -436,22 +436,6 @@ static void enicpmd_dev_stats_reset(struct rte_eth_dev *eth_dev)
}
-int enicpmd_dev_get_fw_support(int port_id,
- uint32_t *ver){
- struct rte_eth_dev *dev;
-
- RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -EINVAL);
-
- dev = &rte_eth_devices[port_id];
- *ver=0;
-
- struct enic *enic = pmd_priv(dev);
- enic->adv_filters;
- if ( enic->adv_filters ==0 ) {
- return (-1);
- }
- return (0);
-}
static void enicpmd_dev_info_get(struct rte_eth_dev *eth_dev,
diff --git a/src/main_dpdk.cpp b/src/main_dpdk.cpp
index 6f18b0b8..f102acbc 100644
--- a/src/main_dpdk.cpp
+++ b/src/main_dpdk.cpp
@@ -6852,26 +6852,25 @@ int CTRexExtendedDriverBaseVIC::configure_rx_filter_rules_statefull(CPhyEthIF *
return 0;
}
-extern "C" int enicpmd_dev_get_fw_support(int port_id,
- uint32_t *ver);
int CTRexExtendedDriverBaseVIC::verify_fw_ver(int port_id) {
- uint32_t ver;
- int ret=enicpmd_dev_get_fw_support(port_id,&ver);
+ struct rte_eth_fdir_info fdir_info;
- if (ret==0) {
- if (CGlobalInfo::m_options.preview.getVMode() >= 1) {
- printf("VIC port %d: FW support advanced filtering \n", port_id);
+ if ( rte_eth_dev_filter_ctrl(port_id,RTE_ETH_FILTER_FDIR, RTE_ETH_FILTER_INFO,(void *)&fdir_info) == 0 ){
+ if ( fdir_info.flow_types_mask[0] & (1<< RTE_ETH_FLOW_NONFRAG_IPV4_OTHER) ) {
+ /* support new features */
+ if (CGlobalInfo::m_options.preview.getVMode() >= 1) {
+ printf("VIC port %d: FW support advanced filtering \n", port_id);
+ }
+ return (0);
}
- }else{
- printf("Error: VIC firmware should upgrade to support advanced filtering \n");
- printf(" Please refer to %s for upgrade instructions\n",
- "https://trex-tgn.cisco.com/trex/doc/trex_manual.html");
- exit(1);
}
- return (0);
+ printf("Error: VIC firmware should upgrade to support advanced filtering \n");
+ printf(" Please refer to %s for upgrade instructions\n",
+ "https://trex-tgn.cisco.com/trex/doc/trex_manual.html");
+ exit(1);
}