• Home
  • Raw
  • Download

Lines Matching refs:x

105 static void esp_ssg_unref(struct xfrm_state *x, void *tmp)  in esp_ssg_unref()  argument
107 struct crypto_aead *aead = x->data; in esp_ssg_unref()
113 if (x->props.flags & XFRM_STATE_ESN) in esp_ssg_unref()
132 struct xfrm_state *x; in esp_output_done() local
137 x = sp->xvec[sp->len - 1]; in esp_output_done()
139 x = skb_dst(skb)->xfrm; in esp_output_done()
143 esp_ssg_unref(x, tmp); in esp_output_done()
148 XFRM_INC_STATS(xs_net(x), LINUX_MIB_XFRMOUTSTATEPROTOERROR); in esp_output_done()
178 struct xfrm_state *x, in esp_output_set_esn() argument
186 if ((x->props.flags & XFRM_STATE_ESN)) { in esp_output_set_esn()
197 esph->spi = x->id.spi; in esp_output_set_esn()
226 int esp6_output_head(struct xfrm_state *x, struct sk_buff *skb, struct esp_info *esp) in esp6_output_head() argument
246 struct page_frag *pfrag = &x->xfrag; in esp6_output_head()
252 spin_lock_bh(&x->lock); in esp6_output_head()
255 spin_unlock_bh(&x->lock); in esp6_output_head()
278 spin_unlock_bh(&x->lock); in esp6_output_head()
307 int esp6_output_tail(struct xfrm_state *x, struct sk_buff *skb, struct esp_info *esp) in esp6_output_tail() argument
326 if (x->props.flags & XFRM_STATE_ESN) { in esp6_output_tail()
331 aead = x->data; in esp6_output_tail()
349 esph = esp_output_set_esn(skb, x, ip_esp_hdr(skb), seqhi); in esp6_output_tail()
360 struct page_frag *pfrag = &x->xfrag; in esp6_output_tail()
364 spin_lock_bh(&x->lock); in esp6_output_tail()
366 spin_unlock_bh(&x->lock); in esp6_output_tail()
377 spin_unlock_bh(&x->lock); in esp6_output_tail()
387 if ((x->props.flags & XFRM_STATE_ESN)) in esp6_output_tail()
411 if ((x->props.flags & XFRM_STATE_ESN)) in esp6_output_tail()
416 esp_ssg_unref(x, tmp); in esp6_output_tail()
425 static int esp6_output(struct xfrm_state *x, struct sk_buff *skb) in esp6_output() argument
440 aead = x->data; in esp6_output()
444 if (x->tfcpad) { in esp6_output()
448 padto = min(x->tfcpad, xfrm_state_mtu(x, dst->child_mtu_cached)); in esp6_output()
457 esp.nfrags = esp6_output_head(x, skb, &esp); in esp6_output()
462 esph->spi = x->id.spi; in esp6_output()
470 return esp6_output_tail(x, skb, &esp); in esp6_output()
475 struct xfrm_state *x = xfrm_input_state(skb); in esp_remove_trailer() local
477 struct crypto_aead *aead = x->data; in esp_remove_trailer()
520 struct xfrm_state *x = xfrm_input_state(skb); in esp6_input_done2() local
522 struct crypto_aead *aead = x->data; in esp6_input_done2()
539 if (x->props.mode == XFRM_MODE_TUNNEL) in esp6_input_done2()
568 struct xfrm_state *x = xfrm_input_state(skb); in esp_input_set_header() local
574 if ((x->props.flags & XFRM_STATE_ESN)) { in esp_input_set_header()
591 static int esp6_input(struct xfrm_state *x, struct sk_buff *skb) in esp6_input() argument
593 struct crypto_aead *aead = x->data; in esp6_input()
620 if (x->props.flags & XFRM_STATE_ESN) { in esp6_input()
667 if ((x->props.flags & XFRM_STATE_ESN)) in esp6_input()
679 if ((x->props.flags & XFRM_STATE_ESN)) in esp6_input()
694 struct xfrm_state *x; in esp6_err() local
700 x = xfrm_state_lookup(net, skb->mark, (const xfrm_address_t *)&iph->daddr, in esp6_err()
702 if (!x) in esp6_err()
710 xfrm_state_put(x); in esp6_err()
715 static void esp6_destroy(struct xfrm_state *x) in esp6_destroy() argument
717 struct crypto_aead *aead = x->data; in esp6_destroy()
725 static int esp_init_aead(struct xfrm_state *x) in esp_init_aead() argument
733 x->geniv, x->aead->alg_name) >= CRYPTO_MAX_ALG_NAME) in esp_init_aead()
741 x->data = aead; in esp_init_aead()
743 err = crypto_aead_setkey(aead, x->aead->alg_key, in esp_init_aead()
744 (x->aead->alg_key_len + 7) / 8); in esp_init_aead()
748 err = crypto_aead_setauthsize(aead, x->aead->alg_icv_len / 8); in esp_init_aead()
756 static int esp_init_authenc(struct xfrm_state *x) in esp_init_authenc() argument
768 if (!x->ealg) in esp_init_authenc()
773 if ((x->props.flags & XFRM_STATE_ESN)) { in esp_init_authenc()
776 x->geniv ?: "", x->geniv ? "(" : "", in esp_init_authenc()
777 x->aalg ? x->aalg->alg_name : "digest_null", in esp_init_authenc()
778 x->ealg->alg_name, in esp_init_authenc()
779 x->geniv ? ")" : "") >= CRYPTO_MAX_ALG_NAME) in esp_init_authenc()
784 x->geniv ?: "", x->geniv ? "(" : "", in esp_init_authenc()
785 x->aalg ? x->aalg->alg_name : "digest_null", in esp_init_authenc()
786 x->ealg->alg_name, in esp_init_authenc()
787 x->geniv ? ")" : "") >= CRYPTO_MAX_ALG_NAME) in esp_init_authenc()
796 x->data = aead; in esp_init_authenc()
798 keylen = (x->aalg ? (x->aalg->alg_key_len + 7) / 8 : 0) + in esp_init_authenc()
799 (x->ealg->alg_key_len + 7) / 8 + RTA_SPACE(sizeof(*param)); in esp_init_authenc()
812 if (x->aalg) { in esp_init_authenc()
815 memcpy(p, x->aalg->alg_key, (x->aalg->alg_key_len + 7) / 8); in esp_init_authenc()
816 p += (x->aalg->alg_key_len + 7) / 8; in esp_init_authenc()
818 aalg_desc = xfrm_aalg_get_byname(x->aalg->alg_name, 0); in esp_init_authenc()
825 x->aalg->alg_name, in esp_init_authenc()
832 aead, x->aalg->alg_trunc_len / 8); in esp_init_authenc()
837 param->enckeylen = cpu_to_be32((x->ealg->alg_key_len + 7) / 8); in esp_init_authenc()
838 memcpy(p, x->ealg->alg_key, (x->ealg->alg_key_len + 7) / 8); in esp_init_authenc()
849 static int esp6_init_state(struct xfrm_state *x) in esp6_init_state() argument
855 if (x->encap) in esp6_init_state()
858 x->data = NULL; in esp6_init_state()
860 if (x->aead) in esp6_init_state()
861 err = esp_init_aead(x); in esp6_init_state()
863 err = esp_init_authenc(x); in esp6_init_state()
868 aead = x->data; in esp6_init_state()
870 x->props.header_len = sizeof(struct ip_esp_hdr) + in esp6_init_state()
872 switch (x->props.mode) { in esp6_init_state()
874 if (x->sel.family != AF_INET6) in esp6_init_state()
875 x->props.header_len += IPV4_BEET_PHMAXLEN + in esp6_init_state()
882 x->props.header_len += sizeof(struct ipv6hdr); in esp6_init_state()
887 x->props.trailer_len = align + 1 + crypto_aead_authsize(aead); in esp6_init_state()