Add new GTPoGRE package name and handle the new package when initializing each flow engine.
Signed-off-by: Simei Su <simei...@intel.com> --- drivers/net/ice/ice_ethdev.c | 4 ++++ drivers/net/ice/ice_ethdev.h | 1 + drivers/net/ice/ice_fdir_filter.c | 4 ++++ drivers/net/ice/ice_hash.c | 4 ++++ drivers/net/ice/ice_switch_filter.c | 8 ++++++++ 5 files changed, 21 insertions(+) diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index 9a5d6a5..9fd69b6 100644 --- a/drivers/net/ice/ice_ethdev.c +++ b/drivers/net/ice/ice_ethdev.c @@ -72,6 +72,7 @@ static struct proto_xtr_ol_flag ice_proto_xtr_ol_flag_params[] = { #define ICE_OS_DEFAULT_PKG_NAME "ICE OS Default Package" #define ICE_COMMS_PKG_NAME "ICE COMMS Package" +#define ICE_GTP_OVER_GRE_PKG_NAME "ICE GTP over GRE Package" #define ICE_MAX_RES_DESC_NUM 1024 static int ice_dev_configure(struct rte_eth_dev *dev); @@ -1807,6 +1808,9 @@ ice_load_pkg_type(struct ice_hw *hw) else if (!strncmp((char *)hw->active_pkg_name, ICE_COMMS_PKG_NAME, ICE_PKG_NAME_SIZE)) package_type = ICE_PKG_TYPE_COMMS; + else if (!strncmp((char *)hw->active_pkg_name, + ICE_GTP_OVER_GRE_PKG_NAME, ICE_PKG_NAME_SIZE)) + package_type = ICE_PKG_TYPE_GTP_OVER_GRE; else package_type = ICE_PKG_TYPE_UNKNOWN; diff --git a/drivers/net/ice/ice_ethdev.h b/drivers/net/ice/ice_ethdev.h index 899f446..a558936 100644 --- a/drivers/net/ice/ice_ethdev.h +++ b/drivers/net/ice/ice_ethdev.h @@ -147,6 +147,7 @@ enum ice_pkg_type { ICE_PKG_TYPE_UNKNOWN, ICE_PKG_TYPE_OS_DEFAULT, ICE_PKG_TYPE_COMMS, + ICE_PKG_TYPE_GTP_OVER_GRE, }; struct ice_adapter; diff --git a/drivers/net/ice/ice_fdir_filter.c b/drivers/net/ice/ice_fdir_filter.c index 175abcd..1c51593 100644 --- a/drivers/net/ice/ice_fdir_filter.c +++ b/drivers/net/ice/ice_fdir_filter.c @@ -1115,6 +1115,8 @@ ice_fdir_init(struct ice_adapter *ad) parser = &ice_fdir_parser_comms; else if (ad->active_pkg_type == ICE_PKG_TYPE_OS_DEFAULT) parser = &ice_fdir_parser_os; + else if (ad->active_pkg_type == ICE_PKG_TYPE_GTP_OVER_GRE) + parser = &ice_fdir_parser_comms; else return -EINVAL; @@ -1132,6 +1134,8 @@ ice_fdir_uninit(struct ice_adapter *ad) if (ad->active_pkg_type == ICE_PKG_TYPE_COMMS) parser = &ice_fdir_parser_comms; + else if (ad->active_pkg_type == ICE_PKG_TYPE_GTP_OVER_GRE) + parser = &ice_fdir_parser_comms; else parser = &ice_fdir_parser_os; diff --git a/drivers/net/ice/ice_hash.c b/drivers/net/ice/ice_hash.c index fe3e06c..a5896c6 100644 --- a/drivers/net/ice/ice_hash.c +++ b/drivers/net/ice/ice_hash.c @@ -950,6 +950,8 @@ ice_hash_init(struct ice_adapter *ad) parser = &ice_hash_parser_os; else if (ad->active_pkg_type == ICE_PKG_TYPE_COMMS) parser = &ice_hash_parser_comms; + else if (ad->active_pkg_type == ICE_PKG_TYPE_GTP_OVER_GRE) + parser = &ice_hash_parser_comms; else return -EINVAL; @@ -1356,6 +1358,8 @@ ice_hash_uninit(struct ice_adapter *ad) ice_unregister_parser(&ice_hash_parser_os, ad); else if (ad->active_pkg_type == ICE_PKG_TYPE_COMMS) ice_unregister_parser(&ice_hash_parser_comms, ad); + else if (ad->active_pkg_type == ICE_PKG_TYPE_GTP_OVER_GRE) + ice_unregister_parser(&ice_hash_parser_comms, ad); } static void diff --git a/drivers/net/ice/ice_switch_filter.c b/drivers/net/ice/ice_switch_filter.c index 8cba6eb..14c0d5c 100644 --- a/drivers/net/ice/ice_switch_filter.c +++ b/drivers/net/ice/ice_switch_filter.c @@ -1863,12 +1863,16 @@ ice_switch_init(struct ice_adapter *ad) dist_parser = &ice_switch_dist_parser_comms; else if (ad->active_pkg_type == ICE_PKG_TYPE_OS_DEFAULT) dist_parser = &ice_switch_dist_parser_os; + else if (ad->active_pkg_type == ICE_PKG_TYPE_GTP_OVER_GRE) + dist_parser = &ice_switch_dist_parser_comms; else return -EINVAL; if (ad->devargs.pipe_mode_support) { if (ad->active_pkg_type == ICE_PKG_TYPE_COMMS) perm_parser = &ice_switch_perm_parser_comms; + else if (ad->active_pkg_type == ICE_PKG_TYPE_GTP_OVER_GRE) + perm_parser = &ice_switch_perm_parser_comms; else perm_parser = &ice_switch_perm_parser_os; @@ -1889,12 +1893,16 @@ ice_switch_uninit(struct ice_adapter *ad) dist_parser = &ice_switch_dist_parser_comms; else if (ad->active_pkg_type == ICE_PKG_TYPE_OS_DEFAULT) dist_parser = &ice_switch_dist_parser_os; + else if (ad->active_pkg_type == ICE_PKG_TYPE_GTP_OVER_GRE) + dist_parser = &ice_switch_dist_parser_comms; else return; if (ad->devargs.pipe_mode_support) { if (ad->active_pkg_type == ICE_PKG_TYPE_COMMS) perm_parser = &ice_switch_perm_parser_comms; + else if (ad->active_pkg_type == ICE_PKG_TYPE_GTP_OVER_GRE) + perm_parser = &ice_switch_perm_parser_comms; else perm_parser = &ice_switch_perm_parser_os; -- 2.9.5