X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fsoftnic%2Frte_eth_softnic_internals.h;h=31698b9f05da61a7d047536d822fc28632f3cf38;hb=817a6c47404550374d5a0700b328a803bec9b13e;hp=1623ff886488d95efb9894be4927b603827e29c9;hpb=16d2d653253728edf40061abb2dcaeb68068db52;p=dpdk.git diff --git a/drivers/net/softnic/rte_eth_softnic_internals.h b/drivers/net/softnic/rte_eth_softnic_internals.h index 1623ff8864..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 */ @@ -898,6 +953,8 @@ struct softnic_table_rule_action { 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 {