Lines Matching refs:skb
20 static void xfrm4_beet_make_header(struct sk_buff *skb) in xfrm4_beet_make_header() argument
22 struct iphdr *iph = ip_hdr(skb); in xfrm4_beet_make_header()
27 iph->protocol = XFRM_MODE_SKB_CB(skb)->protocol; in xfrm4_beet_make_header()
28 iph->tos = XFRM_MODE_SKB_CB(skb)->tos; in xfrm4_beet_make_header()
30 iph->id = XFRM_MODE_SKB_CB(skb)->id; in xfrm4_beet_make_header()
31 iph->frag_off = XFRM_MODE_SKB_CB(skb)->frag_off; in xfrm4_beet_make_header()
32 iph->ttl = XFRM_MODE_SKB_CB(skb)->ttl; in xfrm4_beet_make_header()
39 static int xfrm4_beet_output(struct xfrm_state *x, struct sk_buff *skb) in xfrm4_beet_output() argument
46 optlen = XFRM_MODE_SKB_CB(skb)->optlen; in xfrm4_beet_output()
50 skb_set_network_header(skb, -x->props.header_len - in xfrm4_beet_output()
51 hdrlen + (XFRM_MODE_SKB_CB(skb)->ihl - sizeof(*top_iph))); in xfrm4_beet_output()
53 skb->network_header += IPV4_BEET_PHMAXLEN; in xfrm4_beet_output()
54 skb->mac_header = skb->network_header + in xfrm4_beet_output()
56 skb->transport_header = skb->network_header + sizeof(*top_iph); in xfrm4_beet_output()
58 xfrm4_beet_make_header(skb); in xfrm4_beet_output()
61 __skb_pull(skb, XFRM_MODE_SKB_CB(skb)->ihl - hdrlen); in xfrm4_beet_output()
63 top_iph = ip_hdr(skb); in xfrm4_beet_output()
84 static int xfrm4_beet_input(struct xfrm_state *x, struct sk_buff *skb) in xfrm4_beet_input() argument
90 if (unlikely(XFRM_MODE_SKB_CB(skb)->protocol == IPPROTO_BEETPH)) { in xfrm4_beet_input()
94 if (!pskb_may_pull(skb, sizeof(*ph))) in xfrm4_beet_input()
97 ph = (struct ip_beet_phdr *)skb->data; in xfrm4_beet_input()
104 XFRM_MODE_SKB_CB(skb)->protocol = ph->nexthdr; in xfrm4_beet_input()
106 if (!pskb_may_pull(skb, phlen)) in xfrm4_beet_input()
108 __skb_pull(skb, phlen); in xfrm4_beet_input()
111 skb_push(skb, sizeof(*iph)); in xfrm4_beet_input()
112 skb_reset_network_header(skb); in xfrm4_beet_input()
113 skb_mac_header_rebuild(skb); in xfrm4_beet_input()
115 xfrm4_beet_make_header(skb); in xfrm4_beet_input()
117 iph = ip_hdr(skb); in xfrm4_beet_input()
120 iph->tot_len = htons(skb->len); in xfrm4_beet_input()
124 iph->check = ip_fast_csum(skb_network_header(skb), iph->ihl); in xfrm4_beet_input()