• Home
  • Raw
  • Download

Lines Matching full:esp

9 #include <net/esp.h>
152 /* Move ESP header back into place. */
226 static int esp_output_udp_encap(struct xfrm_state *x, struct sk_buff *skb, struct esp_info *esp) in esp_output_udp_encap() argument
233 struct ip_esp_hdr *esph = esp->esph; in esp_output_udp_encap()
242 len = skb->len + esp->tailen - skb_transport_offset(skb); in esp_output_udp_encap()
265 esp->esph = esph; in esp_output_udp_encap()
270 int esp_output_head(struct xfrm_state *x, struct sk_buff *skb, struct esp_info *esp) in esp_output_head() argument
278 int tailen = esp->tailen; in esp_output_head()
283 int err = esp_output_udp_encap(x, skb, esp); in esp_output_head()
306 esp->inplace = false; in esp_output_head()
324 esp_output_fill_trailer(tail, esp->tfclen, esp->plen, esp->proto); in esp_output_head()
351 esph_offset = (unsigned char *)esp->esph - skb_transport_header(skb); in esp_output_head()
357 esp->esph = (struct ip_esp_hdr *)(skb_transport_header(skb) + esph_offset); in esp_output_head()
360 esp_output_fill_trailer(tail, esp->tfclen, esp->plen, esp->proto); in esp_output_head()
368 int esp_output_tail(struct xfrm_state *x, struct sk_buff *skb, struct esp_info *esp) in esp_output_tail() argument
396 tmp = esp_alloc_tmp(aead, esp->nfrags + 2, extralen); in esp_output_tail()
405 if (esp->inplace) in esp_output_tail()
408 dsg = &sg[esp->nfrags]; in esp_output_tail()
410 esph = esp_output_set_extra(skb, x, esp->esph, extra); in esp_output_tail()
411 esp->esph = esph; in esp_output_tail()
413 sg_init_table(sg, esp->nfrags); in esp_output_tail()
416 assoclen + ivlen + esp->clen + alen); in esp_output_tail()
420 if (!esp->inplace) { in esp_output_tail()
444 assoclen + ivlen + esp->clen + alen); in esp_output_tail()
454 aead_request_set_crypt(req, sg, dsg, ivlen + esp->clen, iv); in esp_output_tail()
458 memcpy(iv + ivlen - min(ivlen, 8), (u8 *)&esp->seqno + 8 - min(ivlen, 8), in esp_output_tail()
493 struct esp_info esp; in esp_output() local
495 esp.inplace = true; in esp_output()
497 esp.proto = *skb_mac_header(skb); in esp_output()
505 esp.tfclen = 0; in esp_output()
512 esp.tfclen = padto - skb->len; in esp_output()
515 esp.clen = ALIGN(skb->len + 2 + esp.tfclen, blksize); in esp_output()
516 esp.plen = esp.clen - skb->len - esp.tfclen; in esp_output()
517 esp.tailen = esp.tfclen + esp.plen + alen; in esp_output()
519 esp.esph = ip_esp_hdr(skb); in esp_output()
521 esp.nfrags = esp_output_head(x, skb, &esp); in esp_output()
522 if (esp.nfrags < 0) in esp_output()
523 return esp.nfrags; in esp_output()
525 esph = esp.esph; in esp_output()
529 esp.seqno = cpu_to_be64(XFRM_SKB_CB(skb)->seq.output.low + in esp_output()
534 return esp_output_tail(x, skb, &esp); in esp_output()
563 net_dbg_ratelimited("ipsec esp packet is garbage padlen=%d, elen=%d\n", in esp_remove_trailer()
955 pr_info("ESP: %s digestsize %u != %hu\n", in esp_init_authenc()