[dpdk-dev] [PATCH v4 10/12] net/ixgbe: enable inline ipsec

Ananyev, Konstantin konstantin.ananyev at intel.com
Thu Oct 19 13:04:16 CEST 2017



> >
> >> <snip>
> >> +
> >> +static int
> >> +ixgbe_crypto_update_mb(void *device __rte_unused,
> >> +		struct rte_security_session *session,
> >> +		       struct rte_mbuf *m, void *params __rte_unused)
> >> +{
> >> +	struct ixgbe_crypto_session *ic_session =
> >> +			get_sec_session_private_data(session);
> >> +	if (ic_session->op == IXGBE_OP_AUTHENTICATED_ENCRYPTION) {
> >> +		struct ixgbe_crypto_tx_desc_md *mdata =
> >> +			(struct ixgbe_crypto_tx_desc_md *)&m->udata64;
> >> +		mdata->enc = 1;
> >> +		mdata->sa_idx = ic_session->sa_index;
> >> +		mdata->pad_len = *rte_pktmbuf_mtod_offset(m,
> >> +			uint8_t *, rte_pktmbuf_pkt_len(m) - 18) + 18;
> > Could you explain what pad_len supposed to contain?
> > Also what is a magical constant '18'?
> > Could you create some macro if needed?
> I added an explanation in the code, we read the payload padding size
> that is stored at the len-18 bytes and add 18 bytes, 2 for ESP trailer
> and 16 for ICV.

Ok, can we at least have a macros for all these constants?
Another question: you do use pkt_len() here - does it mean that multi-segment
packets are not supported by ixgbe-ipsec? 
Konstantin



More information about the dev mailing list