Licensing Information
Open Source Used In Cisco Nexus 9000 Series 7.0(3)I5(1)
3227
q->ixp_q_ccrd->crd_inject,
ixp->ixp_ctx.cipherCtx.cipherInitialVectorLen,
(caddr_t) q->ixp_q_iv);
} else {
if (q->ixp_q_ccrd->crd_flags & CRD_F_IV_EXPLICIT)
q->ixp_q_iv = q->ixp_q_ccrd->crd_iv;
else {
q->ixp_q_iv = q->ixp_q_iv_data;
crypto_copydata(q->ixp_q_crp->crp_flags, q->ixp_q_crp->crp_buf,
q->ixp_q_ccrd->crd_inject,
ixp->ixp_ctx.cipherCtx.cipherInitialVectorLen,
(caddr_t) q->ixp_q_iv);
}
}
if (q->ixp_q_acrd) {
auth_off = q->ixp_q_acrd->crd_skip;
auth_len = q->ixp_q_acrd->crd_len;
icv_off = q->ixp_q_acrd->crd_inject;
}
crypt_off = q->ixp_q_ccrd->crd_skip;
crypt_len = q->ixp_q_ccrd->crd_len;
} else { /* if (q->ixp_q_acrd) */
auth_off = q->ixp_q_acrd->crd_skip;
auth_len = q->ixp_q_acrd->crd_len;
icv_off = q->ixp_q_acrd->crd_inject;
}
if (q->ixp_q_crp->crp_flags & CRYPTO_F_SKBUF) {
struct sk_buff *skb = (struct sk_buff *) q->ixp_q_crp->crp_buf;
if (skb_shinfo(skb)->nr_frags) {
/*
* DAVIDM fix this limitation one day by using
* a buffer pool and chaining, it is not currently
* needed for current user/kernel space acceleration
*/
printk("ixp: Cannot handle fragmented skb's yet !\n");
q->ixp_q_crp->crp_etype = ENOENT;
goto done;
}
IX_MBUF_MLEN(&q->ixp_q_mbuf) =
IX_MBUF_PKT_LEN(&q->ixp_q_mbuf) = skb->len;
IX_MBUF_MDATA(&q->ixp_q_mbuf) = skb->data;
} else if (q->ixp_q_crp->crp_flags & CRYPTO_F_IOV) {
struct uio *uiop = (struct uio *) q->ixp_q_crp->crp_buf;
if (uiop->uio_iovcnt != 1) {
/*










