Something went wrong. Try again.
(I'm so sorry!) Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051/* SPDX-License-Identifier: GPL-2.0 */#ifndef _NET_ESP_H#define _NET_ESP_H
#include <linux/skbuff.h>
struct ip_esp_hdr;struct xfrm_state;
static inline struct ip_esp_hdr *ip_esp_hdr(const struct sk_buff *skb){ return (struct ip_esp_hdr *)skb_transport_header(skb);}
static inline void esp_output_fill_trailer(u8 *tail, int tfclen, int plen, __u8 proto){ /* Fill padding... */ if (tfclen) { memset(tail, 0, tfclen); tail += tfclen; } do { int i; for (i = 0; i < plen - 2; i++) tail[i] = i + 1; } while (0); tail[plen - 2] = plen - 2; tail[plen - 1] = proto;}
struct esp_info { struct ip_esp_hdr *esph; __be64 seqno; int tfclen; int tailen; int plen; int clen; int len; int nfrags; __u8 proto; bool inplace;};
int esp_output_head(struct xfrm_state *x, struct sk_buff *skb, struct esp_info *esp);int esp_output_tail(struct xfrm_state *x, struct sk_buff *skb, struct esp_info *esp);int esp_input_done2(struct sk_buff *skb, int err);int esp6_output_head(struct xfrm_state *x, struct sk_buff *skb, struct esp_info *esp);int esp6_output_tail(struct xfrm_state *x, struct sk_buff *skb, struct esp_info *esp);int esp6_input_done2(struct sk_buff *skb, int err);#endif