Licensing Information

Open Source Used In Cisco Nexus 9000 Series 7.0(3)I5(1)
3235
ixp_sessions[lid] == NULL) {
crp->crp_etype = ENOENT;
dprintk("%s,%d: ENOENT\n", __FILE__, __LINE__);
goto done;
}
ixp = ixp_sessions[lid];
/*
 * setup a new request ready for queuing
 */
q = kmem_cache_alloc(qcache, SLAB_ATOMIC);
if (q == NULL) {
dprintk("%s,%d: ENOMEM\n", __FILE__, __LINE__);
crp->crp_etype = ENOMEM;
goto done;
}
/*
 * save some cycles by only zeroing the important bits
 */
memset(&q->ixp_q_mbuf, 0, sizeof(q->ixp_q_mbuf));
q->ixp_q_ccrd = NULL;
q->ixp_q_acrd = NULL;
q->ixp_q_crp = crp;
q->ixp_q_data = ixp;
/*
 * point the cipher and auth descriptors appropriately
 * check that we have something to do
 */
if (crp->crp_desc->crd_alg == ixp->ixp_cipher_alg)
q->ixp_q_ccrd = crp->crp_desc;
else if (crp->crp_desc->crd_alg == ixp->ixp_auth_alg)
q->ixp_q_acrd = crp->crp_desc;
else {
crp->crp_etype = ENOENT;
dprintk("%s,%d: bad desc match: ENOENT\n", __FILE__, __LINE__);
goto done;
}
if (crp->crp_desc->crd_next) {
if (crp->crp_desc->crd_next->crd_alg == ixp->ixp_cipher_alg)
q->ixp_q_ccrd = crp->crp_desc->crd_next;
else if (crp->crp_desc->crd_next->crd_alg == ixp->ixp_auth_alg)
q->ixp_q_acrd = crp->crp_desc->crd_next;
else {
crp->crp_etype = ENOENT;
dprintk("%s,%d: bad desc match: ENOENT\n", __FILE__, __LINE__);
goto done;
}