Lines Matching refs:xs

14  * @xs: xfrm info to be sent to the PF
19 struct xfrm_state *xs)
28 sam->dir = xs->xso.dir;
29 sam->spi = xs->id.spi;
30 sam->proto = xs->id.proto;
31 sam->family = xs->props.family;
33 if (xs->props.family == AF_INET6)
34 memcpy(sam->addr, &xs->id.daddr.a6, sizeof(xs->id.daddr.a6));
36 memcpy(sam->addr, &xs->id.daddr.a4, sizeof(xs->id.daddr.a4));
37 memcpy(sam->key, xs->aead->alg_key, sizeof(sam->key));
117 ret = ixgbevf_ipsec_set_pf_sa(adapter, r->xs);
124 ret = ixgbevf_ipsec_set_pf_sa(adapter, t->xs);
188 if (spi == rsa->xs->id.spi &&
189 ((ip4 && *daddr == rsa->xs->id.daddr.a4) ||
190 (!ip4 && !memcmp(daddr, &rsa->xs->id.daddr.a6,
191 sizeof(rsa->xs->id.daddr.a6)))) &&
192 proto == rsa->xs->id.proto) {
193 ret = rsa->xs;
204 * @xs: pointer to xfrm_state struct
211 static int ixgbevf_ipsec_parse_proto_keys(struct xfrm_state *xs,
214 struct net_device *dev = xs->xso.real_dev;
219 if (!xs->aead) {
224 if (xs->aead->alg_icv_len != IXGBE_IPSEC_AUTH_BITS) {
230 key_data = &xs->aead->alg_key[0];
231 key_len = xs->aead->alg_key_len;
232 alg_name = xs->aead->alg_name;
259 * @xs: pointer to transformer state struct
262 static int ixgbevf_ipsec_add_sa(struct xfrm_state *xs,
265 struct net_device *dev = xs->xso.real_dev;
274 if (xs->id.proto != IPPROTO_ESP && xs->id.proto != IPPROTO_AH) {
279 if (xs->props.mode != XFRM_MODE_TRANSPORT) {
284 if (xs->xso.type != XFRM_DEV_OFFLOAD_CRYPTO) {
289 if (xs->xso.dir == XFRM_DEV_OFFLOAD_IN) {
292 if (xs->calg) {
307 rsa.xs = xs;
309 if (rsa.xs->id.proto & IPPROTO_ESP)
310 rsa.decrypt = xs->ealg || xs->aead;
313 ret = ixgbevf_ipsec_parse_proto_keys(xs, rsa.key, &rsa.salt);
320 if (xs->props.family == AF_INET6)
321 memcpy(rsa.ipaddr, &xs->id.daddr.a6, 16);
323 memcpy(&rsa.ipaddr[3], &xs->id.daddr.a4, 4);
326 if (rsa.xs->id.proto & IPPROTO_ESP)
330 if (rsa.xs->props.family == AF_INET6)
333 ret = ixgbevf_ipsec_set_pf_sa(adapter, xs);
341 xs->xso.offload_handle = sa_idx + IXGBE_IPSEC_BASE_RX_INDEX;
347 (__force u32)rsa.xs->id.spi);
361 tsa.xs = xs;
363 if (xs->id.proto & IPPROTO_ESP)
364 tsa.encrypt = xs->ealg || xs->aead;
366 ret = ixgbevf_ipsec_parse_proto_keys(xs, tsa.key, &tsa.salt);
373 ret = ixgbevf_ipsec_set_pf_sa(adapter, xs);
381 xs->xso.offload_handle = sa_idx + IXGBE_IPSEC_BASE_TX_INDEX;
391 * @xs: pointer to transformer state struct
393 static void ixgbevf_ipsec_del_sa(struct xfrm_state *xs)
395 struct net_device *dev = xs->xso.real_dev;
403 if (xs->xso.dir == XFRM_DEV_OFFLOAD_IN) {
404 sa_idx = xs->xso.offload_handle - IXGBE_IPSEC_BASE_RX_INDEX;
408 sa_idx, xs->xso.offload_handle);
417 sa_idx = xs->xso.offload_handle - IXGBE_IPSEC_BASE_TX_INDEX;
421 sa_idx, xs->xso.offload_handle);
434 * @xs: pointer to transformer state struct
436 static bool ixgbevf_ipsec_offload_ok(struct sk_buff *skb, struct xfrm_state *xs)
438 if (xs->props.family == AF_INET) {
469 struct xfrm_state *xs;
481 xs = xfrm_input_state(first->skb);
482 if (unlikely(!xs)) {
483 netdev_err(tx_ring->netdev, "%s: no xfrm_input_state() xs = %p\n",
484 __func__, xs);
488 sa_idx = xs->xso.offload_handle - IXGBE_IPSEC_BASE_TX_INDEX;
491 __func__, sa_idx, xs->xso.offload_handle);
506 if (xs->id.proto == IPPROTO_ESP) {
515 * as the static value found in xs->props.trailer_len (21).
523 * authlen = crypto_aead_authsize(xs->data);
565 struct xfrm_state *xs = NULL;
604 xs = ixgbevf_ipsec_find_rx_state(ipsec, daddr, proto, spi, !!ip4);
605 if (unlikely(!xs))
612 sp->xvec[sp->len++] = xs;