X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fsoftnic%2Frte_eth_softnic_internals.h;h=31698b9f05da61a7d047536d822fc28632f3cf38;hb=1ccdc31793aff57d5fe34041c7fa0aa9c00c7f5c;hp=78864e7aaef50f5f0bd2482dfebd9ae575b6e865;hpb=8602bcae02026efb2c98a8b9b88ecf03527cb791;p=dpdk.git diff --git a/drivers/net/softnic/rte_eth_softnic_internals.h b/drivers/net/softnic/rte_eth_softnic_internals.h index 78864e7aae..31698b9f05 100644 --- a/drivers/net/softnic/rte_eth_softnic_internals.h +++ b/drivers/net/softnic/rte_eth_softnic_internals.h @@ -278,6 +278,25 @@ struct softnic_tap { TAILQ_HEAD(softnic_tap_list, softnic_tap); +/** + * Cryptodev + */ +struct softnic_cryptodev_params { + const char *dev_name; + uint32_t dev_id; /**< Valid only when *dev_name* is NULL. */ + uint32_t n_queues; + uint32_t queue_size; +}; + +struct softnic_cryptodev { + TAILQ_ENTRY(softnic_cryptodev) node; + char name[NAME_SIZE]; + uint16_t dev_id; + uint32_t n_queues; +}; + +TAILQ_HEAD(softnic_cryptodev_list, softnic_cryptodev); + /** * Input port action */ @@ -309,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 { @@ -343,6 +363,7 @@ enum softnic_port_in_type { PORT_IN_TMGR, PORT_IN_TAP, PORT_IN_SOURCE, + PORT_IN_CRYPTODEV, }; struct softnic_port_in_params { @@ -364,6 +385,12 @@ struct softnic_port_in_params { const char *file_name; uint32_t n_bytes_per_pkt; } source; + + struct { + uint16_t queue_id; + void *f_callback; + void *arg_callback; + } cryptodev; }; uint32_t burst_size; @@ -377,6 +404,7 @@ enum softnic_port_out_type { PORT_OUT_TMGR, PORT_OUT_TAP, PORT_OUT_SINK, + PORT_OUT_CRYPTODEV, }; struct softnic_port_out_params { @@ -391,6 +419,11 @@ struct softnic_port_out_params { const char *file_name; uint32_t max_n_pkts; } sink; + + struct { + uint16_t queue_id; + uint32_t op_offset; + } cryptodev; }; uint32_t burst_size; int retry; @@ -574,6 +607,7 @@ struct pmd_internals { struct softnic_link_list link_list; struct softnic_tmgr_port_list tmgr_port_list; struct softnic_tap_list tap_list; + struct softnic_cryptodev_list cryptodev_list; struct softnic_port_in_action_profile_list port_in_action_profile_list; struct softnic_table_action_profile_list table_action_profile_list; struct pipeline_list pipeline_list; @@ -740,6 +774,24 @@ struct softnic_tap * softnic_tap_create(struct pmd_internals *p, const char *name); +/** + * Sym Crypto + */ +int +softnic_cryptodev_init(struct pmd_internals *p); + +void +softnic_cryptodev_free(struct pmd_internals *p); + +struct softnic_cryptodev * +softnic_cryptodev_find(struct pmd_internals *p, + const char *name); + +struct softnic_cryptodev * +softnic_cryptodev_create(struct pmd_internals *p, + const char *name, + struct softnic_cryptodev_params *params); + /** * Input port action */ @@ -776,6 +828,9 @@ softnic_table_action_profile_create(struct pmd_internals *p, const char *name, struct softnic_table_action_profile_params *params); +enum rte_table_action_policer +softnic_table_action_policer(enum rte_mtr_policer_action action); + /** * Pipeline */ @@ -897,6 +952,9 @@ struct softnic_table_rule_action { struct rte_table_action_ttl_params ttl; struct rte_table_action_stats_params stats; 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 {