Lines Matching refs:skb
21 static inline void ipip6_ecn_decapsulate(struct sk_buff *skb) in ipip6_ecn_decapsulate() argument
23 const struct ipv6hdr *outer_iph = ipv6_hdr(skb); in ipip6_ecn_decapsulate()
24 struct ipv6hdr *inner_iph = ipipv6_hdr(skb); in ipip6_ecn_decapsulate()
27 IP6_ECN_set_ce(skb, inner_iph); in ipip6_ecn_decapsulate()
34 static int xfrm6_mode_tunnel_output(struct xfrm_state *x, struct sk_buff *skb) in xfrm6_mode_tunnel_output() argument
36 struct dst_entry *dst = skb_dst(skb); in xfrm6_mode_tunnel_output()
40 skb_set_network_header(skb, -x->props.header_len); in xfrm6_mode_tunnel_output()
41 skb->mac_header = skb->network_header + in xfrm6_mode_tunnel_output()
43 skb->transport_header = skb->network_header + sizeof(*top_iph); in xfrm6_mode_tunnel_output()
44 top_iph = ipv6_hdr(skb); in xfrm6_mode_tunnel_output()
48 memcpy(top_iph->flow_lbl, XFRM_MODE_SKB_CB(skb)->flow_lbl, in xfrm6_mode_tunnel_output()
50 top_iph->nexthdr = xfrm_af2proto(skb_dst(skb)->ops->family); in xfrm6_mode_tunnel_output()
55 dsfield = XFRM_MODE_SKB_CB(skb)->tos; in xfrm6_mode_tunnel_output()
56 dsfield = INET_ECN_encapsulate(dsfield, XFRM_MODE_SKB_CB(skb)->tos); in xfrm6_mode_tunnel_output()
72 static int xfrm6_mode_tunnel_input(struct xfrm_state *x, struct sk_buff *skb) in xfrm6_mode_tunnel_input() argument
76 if (XFRM_MODE_SKB_CB(skb)->protocol != IPPROTO_IPV6) in xfrm6_mode_tunnel_input()
78 if (!pskb_may_pull(skb, sizeof(struct ipv6hdr))) in xfrm6_mode_tunnel_input()
81 err = skb_unclone(skb, GFP_ATOMIC); in xfrm6_mode_tunnel_input()
86 ipv6_copy_dscp(ipv6_get_dsfield(ipv6_hdr(skb)), in xfrm6_mode_tunnel_input()
87 ipipv6_hdr(skb)); in xfrm6_mode_tunnel_input()
89 ipip6_ecn_decapsulate(skb); in xfrm6_mode_tunnel_input()
91 skb_reset_network_header(skb); in xfrm6_mode_tunnel_input()
92 skb_mac_header_rebuild(skb); in xfrm6_mode_tunnel_input()