Lines Matching full:ipsec
2 /* Marvell IPSEC offload driver
27 state = atomic_cmpxchg(&pf->ipsec.cpt_state, in cn10k_cpt_device_set_inuse()
41 atomic_set(&pf->ipsec.cpt_state, CN10K_CPT_HW_AVAILABLE); in cn10k_cpt_device_set_available()
46 atomic_set(&pf->ipsec.cpt_state, CN10K_CPT_HW_UNAVAILABLE); in cn10k_cpt_device_set_unavailable()
235 struct cn10k_cpt_inst_queue *iq = &pf->ipsec.iq; in cn10k_outb_cptlf_iq_alloc()
257 struct cn10k_cpt_inst_queue *iq = &pf->ipsec.iq; in cn10k_outb_cptlf_iq_free()
281 otx2_write64(pf, CN10K_CPT_LF_Q_BASE, pf->ipsec.iq.dma_addr); in cn10k_outb_cptlf_iq_init()
300 /* Configure CPTLF for outbound ipsec offload */ in cn10k_outb_cptlf_init()
318 /* Attach a CPT LF for outbound ipsec offload */ in cn10k_outb_cpt_init()
323 /* Allocate a CPT LF for outbound ipsec offload */ in cn10k_outb_cpt_init()
328 /* Initialize the CPTLF for outbound ipsec offload */ in cn10k_outb_cpt_init()
333 pf->ipsec.io_addr = (__force u64)otx2_get_regaddr(pf, in cn10k_outb_cpt_init()
336 /* Set ipsec offload enabled for this device */ in cn10k_outb_cpt_init()
358 /* Set ipsec offload disabled for this device */ in cn10k_outb_cpt_clean()
397 tar_addr |= pf->ipsec.io_addr | (((size / 16) - 1) & 0x7) << 4; in cn10k_cpt_inst_flush()
535 sa_entry->ctx_size = (pf->ipsec.sa_size / OTX2_ALIGN) & 0xF; in cn10k_outb_prepare_sa()
681 err = qmem_alloc(pf->dev, &sa_info, pf->ipsec.sa_size, OTX2_ALIGN); in cn10k_ipsec_outb_add_state()
697 if (!pf->ipsec.outb_sa_count) in cn10k_ipsec_outb_add_state()
699 pf->ipsec.outb_sa_count++; in cn10k_ipsec_outb_add_state()
730 sa_entry->ctx_size = (pf->ipsec.sa_size / OTX2_ALIGN) & 0xF; in cn10k_ipsec_del_state()
743 if (!--pf->ipsec.outb_sa_count) in cn10k_ipsec_del_state()
744 queue_work(pf->ipsec.sa_workq, &pf->ipsec.sa_work); in cn10k_ipsec_del_state()
769 struct cn10k_ipsec *ipsec = container_of(work, struct cn10k_ipsec, in cn10k_ipsec_sa_wq_handler() local
771 struct otx2_nic *pf = container_of(ipsec, struct otx2_nic, ipsec); in cn10k_ipsec_sa_wq_handler()
784 /* IPsec offload supported on cn10k */ in cn10k_ipsec_ethtool_init()
788 /* Initialize CPT for outbound ipsec offload */ in cn10k_ipsec_ethtool_init()
793 if (pf->ipsec.outb_sa_count) { in cn10k_ipsec_ethtool_init()
813 pf->ipsec.sa_size = sa_size; in cn10k_ipsec_init()
815 INIT_WORK(&pf->ipsec.sa_work, cn10k_ipsec_sa_wq_handler); in cn10k_ipsec_init()
816 pf->ipsec.sa_workq = alloc_workqueue("cn10k_ipsec_sa_workq", 0, 0); in cn10k_ipsec_init()
817 if (!pf->ipsec.sa_workq) { in cn10k_ipsec_init()
840 if (pf->ipsec.sa_workq) { in cn10k_ipsec_clean()
841 destroy_workqueue(pf->ipsec.sa_workq); in cn10k_ipsec_clean()
842 pf->ipsec.sa_workq = NULL; in cn10k_ipsec_clean()
961 /* Check for IPSEC offload enabled */ in cn10k_ipsec_transmit()