From: Fan Zhang Date: Wed, 24 Oct 2018 12:49:03 +0000 (+0100) Subject: net/softnic: add symmetric crypto action X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=3b7f2b9e17d8e2c02935eea16f306384bdf1641a;p=dpdk.git net/softnic: add symmetric crypto action This patch adds symmetric crypto action support to softnic. Signed-off-by: Fan Zhang Acked-by: Cristian Dumitrescu --- diff --git a/drivers/net/softnic/rte_eth_softnic_action.c b/drivers/net/softnic/rte_eth_softnic_action.c index 2b74848c31..92c744dc9a 100644 --- a/drivers/net/softnic/rte_eth_softnic_action.c +++ b/drivers/net/softnic/rte_eth_softnic_action.c @@ -386,6 +386,17 @@ softnic_table_action_profile_create(struct pmd_internals *p, } } + if (params->action_mask & (1LLU << RTE_TABLE_ACTION_SYM_CRYPTO)) { + status = rte_table_action_profile_action_register(ap, + RTE_TABLE_ACTION_SYM_CRYPTO, + ¶ms->sym_crypto); + + if (status) { + rte_table_action_profile_free(ap); + return NULL; + } + } + status = rte_table_action_profile_freeze(ap); if (status) { rte_table_action_profile_free(ap); diff --git a/drivers/net/softnic/rte_eth_softnic_internals.h b/drivers/net/softnic/rte_eth_softnic_internals.h index 6322b32062..e12b8ae4ca 100644 --- a/drivers/net/softnic/rte_eth_softnic_internals.h +++ b/drivers/net/softnic/rte_eth_softnic_internals.h @@ -328,6 +328,7 @@ struct softnic_table_action_profile_params { struct rte_table_action_nat_config nat; struct rte_table_action_ttl_config ttl; struct rte_table_action_stats_config stats; + struct rte_table_action_sym_crypto_config sym_crypto; }; struct softnic_table_action_profile { @@ -950,6 +951,7 @@ struct softnic_table_rule_action { struct rte_table_action_time_params time; struct rte_table_action_tag_params tag; struct rte_table_action_decap_params decap; + struct rte_table_action_sym_crypto_params sym_crypto; }; struct rte_flow { diff --git a/drivers/net/softnic/rte_eth_softnic_thread.c b/drivers/net/softnic/rte_eth_softnic_thread.c index c8a8d230b6..4572adfa6a 100644 --- a/drivers/net/softnic/rte_eth_softnic_thread.c +++ b/drivers/net/softnic/rte_eth_softnic_thread.c @@ -2498,6 +2498,16 @@ action_convert(struct rte_table_action *a, return status; } + if (action->action_mask & (1LLU << RTE_TABLE_ACTION_SYM_CRYPTO)) { + status = rte_table_action_apply(a, + data, + RTE_TABLE_ACTION_SYM_CRYPTO, + &action->sym_crypto); + + if (status) + return status; + } + return 0; }