Lines Matching defs:ipsec
103 struct ixgbevf_ipsec *ipsec = adapter->ipsec;
112 struct rx_sa *r = &ipsec->rx_tbl[i];
113 struct tx_sa *t = &ipsec->tx_tbl[i];
134 * @ipsec: pointer to IPsec struct
140 int ixgbevf_ipsec_find_empty_idx(struct ixgbevf_ipsec *ipsec, bool rxtable)
145 if (ipsec->num_rx_sa == IXGBE_IPSEC_MAX_SA_COUNT)
150 if (!ipsec->rx_tbl[i].used)
154 if (ipsec->num_tx_sa == IXGBE_IPSEC_MAX_SA_COUNT)
159 if (!ipsec->tx_tbl[i].used)
169 * @ipsec: pointer to IPsec struct
178 struct xfrm_state *ixgbevf_ipsec_find_rx_state(struct ixgbevf_ipsec *ipsec,
186 hash_for_each_possible_rcu(ipsec->rx_sa_list, rsa, hlist,
265 struct ixgbevf_ipsec *ipsec;
270 ipsec = adapter->ipsec;
279 netdev_err(dev, "Unsupported mode for ipsec offload\n");
292 ret = ixgbevf_ipsec_find_empty_idx(ipsec, true);
333 memcpy(&ipsec->rx_tbl[sa_idx], &rsa, sizeof(rsa));
337 ipsec->num_rx_sa++;
340 hash_add_rcu(ipsec->rx_sa_list, &ipsec->rx_tbl[sa_idx].hlist,
346 ret = ixgbevf_ipsec_find_empty_idx(ipsec, false);
373 memcpy(&ipsec->tx_tbl[sa_idx], &tsa, sizeof(tsa));
377 ipsec->num_tx_sa++;
391 struct ixgbevf_ipsec *ipsec;
395 ipsec = adapter->ipsec;
400 if (!ipsec->rx_tbl[sa_idx].used) {
406 ixgbevf_ipsec_del_pf_sa(adapter, ipsec->rx_tbl[sa_idx].pfsa);
407 hash_del_rcu(&ipsec->rx_tbl[sa_idx].hlist);
408 memset(&ipsec->rx_tbl[sa_idx], 0, sizeof(struct rx_sa));
409 ipsec->num_rx_sa--;
413 if (!ipsec->tx_tbl[sa_idx].used) {
419 ixgbevf_ipsec_del_pf_sa(adapter, ipsec->tx_tbl[sa_idx].pfsa);
420 memset(&ipsec->tx_tbl[sa_idx], 0, sizeof(struct tx_sa));
421 ipsec->num_tx_sa--;
455 * @itd: ipsec Tx data for later use in building context descriptor
462 struct ixgbevf_ipsec *ipsec = adapter->ipsec;
489 tsa = &ipsec->tx_tbl[sa_idx];
557 struct ixgbevf_ipsec *ipsec = adapter->ipsec;
598 xs = ixgbevf_ipsec_find_rx_state(ipsec, daddr, proto, spi, !!ip4);
621 struct ixgbevf_ipsec *ipsec;
631 ipsec = kzalloc(sizeof(*ipsec), GFP_KERNEL);
632 if (!ipsec)
634 hash_init(ipsec->rx_sa_list);
637 ipsec->rx_tbl = kzalloc(size, GFP_KERNEL);
638 if (!ipsec->rx_tbl)
642 ipsec->tx_tbl = kzalloc(size, GFP_KERNEL);
643 if (!ipsec->tx_tbl)
646 ipsec->num_rx_sa = 0;
647 ipsec->num_tx_sa = 0;
649 adapter->ipsec = ipsec;
663 kfree(ipsec->rx_tbl);
664 kfree(ipsec->tx_tbl);
665 kfree(ipsec);
676 struct ixgbevf_ipsec *ipsec = adapter->ipsec;
678 adapter->ipsec = NULL;
679 if (ipsec) {
680 kfree(ipsec->rx_tbl);
681 kfree(ipsec->tx_tbl);
682 kfree(ipsec);