#define AES_CTR_IV_LEN 16
#define AES_GCM_IV_LEN 12
+#define DPAA_IPv6_DEFAULT_VTC_FLOW 0x60000000
+
/* Minimum job descriptor consists of a oneword job descriptor HEADER and
* a pointer to the shared descriptor.
*/
int8_t bearer; /*!< PDCP bearer ID */
int8_t pkt_dir;/*!< PDCP Frame Direction 0:UL 1:DL*/
int8_t hfn_ovd;/*!< Overwrite HFN per packet*/
+ uint8_t sn_size; /*!< Sequence number size, 5/7/12/15/18 */
+ uint32_t hfn_ovd_offset;/*!< offset from rte_crypto_op at which
+ * per packet hfn is stored
+ */
uint32_t hfn; /*!< Hyper Frame Number */
uint32_t hfn_threshold; /*!< HFN Threashold for key renegotiation */
- uint8_t sn_size; /*!< Sequence number size, 7/12/15 */
};
typedef struct dpaa_sec_session_entry {
uint32_t digest_length;
struct ipsec_decap_pdb decap_pdb;
struct ipsec_encap_pdb encap_pdb;
- struct ip ip4_hdr;
+ union {
+ struct ip ip4_hdr;
+ struct rte_ipv6_hdr ip6_hdr;
+ };
};
struct sec_pdcp_ctxt pdcp;
};
struct dpaa_sec_qp *qp[MAX_DPAA_CORES];
struct qman_fq *inq[MAX_DPAA_CORES];
struct sec_cdb cdb; /**< cmd block associated with qp */
- struct rte_mempool *ctx_pool; /* session mempool for dpaa_sec_op_ctx */
} dpaa_sec_session;
struct dpaa_sec_qp {
struct dpaa_sec_dev_private *internals;
+ struct rte_mempool *ctx_pool; /* mempool for dpaa_sec_op_ctx */
struct qman_fq outq;
int rx_pkts;
int rx_errs;
/* internal sec queue interface */
struct dpaa_sec_dev_private {
void *sec_hw;
- struct rte_mempool *ctx_pool; /* per dev mempool for dpaa_sec_op_ctx */
struct dpaa_sec_qp qps[RTE_DPAA_MAX_NB_SEC_QPS]; /* i/o queue for sec */
struct qman_fq inq[RTE_DPAA_MAX_RX_QUEUE];
unsigned char inq_attach[RTE_DPAA_MAX_RX_QUEUE];
};
#define MAX_SG_ENTRIES 16
-#define SG_CACHELINE_0 0
-#define SG_CACHELINE_1 4
-#define SG_CACHELINE_2 8
-#define SG_CACHELINE_3 12
+#define MAX_JOB_SG_ENTRIES 36
+
struct dpaa_sec_job {
/* sg[0] output, sg[1] input, others are possible sub frames */
- struct qm_sg_entry sg[MAX_SG_ENTRIES];
+ struct qm_sg_entry sg[MAX_JOB_SG_ENTRIES];
};
#define DPAA_MAX_NB_MAX_DIGEST 32