This source file includes following definitions.
- xfrm6_beet_make_header
- xfrm4_beet_make_header
1
2 #include <linux/ipv6.h>
3 #include <net/dsfield.h>
4 #include <net/xfrm.h>
5
6 #ifndef XFRM_INOUT_H
7 #define XFRM_INOUT_H 1
8
9 static inline void xfrm6_beet_make_header(struct sk_buff *skb)
10 {
11 struct ipv6hdr *iph = ipv6_hdr(skb);
12
13 iph->version = 6;
14
15 memcpy(iph->flow_lbl, XFRM_MODE_SKB_CB(skb)->flow_lbl,
16 sizeof(iph->flow_lbl));
17 iph->nexthdr = XFRM_MODE_SKB_CB(skb)->protocol;
18
19 ipv6_change_dsfield(iph, 0, XFRM_MODE_SKB_CB(skb)->tos);
20 iph->hop_limit = XFRM_MODE_SKB_CB(skb)->ttl;
21 }
22
23 static inline void xfrm4_beet_make_header(struct sk_buff *skb)
24 {
25 struct iphdr *iph = ip_hdr(skb);
26
27 iph->ihl = 5;
28 iph->version = 4;
29
30 iph->protocol = XFRM_MODE_SKB_CB(skb)->protocol;
31 iph->tos = XFRM_MODE_SKB_CB(skb)->tos;
32
33 iph->id = XFRM_MODE_SKB_CB(skb)->id;
34 iph->frag_off = XFRM_MODE_SKB_CB(skb)->frag_off;
35 iph->ttl = XFRM_MODE_SKB_CB(skb)->ttl;
36 }
37
38 #endif