Lines Matching refs:skb
21 static inline void ipip6_ecn_decapsulate(struct sk_buff *skb) in ipip6_ecn_decapsulate() argument
23 struct ipv6hdr *inner_iph = ipipv6_hdr(skb); in ipip6_ecn_decapsulate()
25 if (INET_ECN_is_ce(XFRM_MODE_SKB_CB(skb)->tos)) in ipip6_ecn_decapsulate()
26 IP6_ECN_set_ce(skb, inner_iph); in ipip6_ecn_decapsulate()
33 static int xfrm6_mode_tunnel_output(struct xfrm_state *x, struct sk_buff *skb) in xfrm6_mode_tunnel_output() argument
35 struct dst_entry *dst = skb_dst(skb); in xfrm6_mode_tunnel_output()
39 skb_set_network_header(skb, -x->props.header_len); in xfrm6_mode_tunnel_output()
40 skb->mac_header = skb->network_header + in xfrm6_mode_tunnel_output()
42 skb->transport_header = skb->network_header + sizeof(*top_iph); in xfrm6_mode_tunnel_output()
43 top_iph = ipv6_hdr(skb); in xfrm6_mode_tunnel_output()
47 memcpy(top_iph->flow_lbl, XFRM_MODE_SKB_CB(skb)->flow_lbl, in xfrm6_mode_tunnel_output()
49 top_iph->nexthdr = xfrm_af2proto(skb_dst(skb)->ops->family); in xfrm6_mode_tunnel_output()
54 dsfield = XFRM_MODE_SKB_CB(skb)->tos; in xfrm6_mode_tunnel_output()
55 dsfield = INET_ECN_encapsulate(dsfield, XFRM_MODE_SKB_CB(skb)->tos); in xfrm6_mode_tunnel_output()
71 static int xfrm6_mode_tunnel_input(struct xfrm_state *x, struct sk_buff *skb) in xfrm6_mode_tunnel_input() argument
75 if (XFRM_MODE_SKB_CB(skb)->protocol != IPPROTO_IPV6) in xfrm6_mode_tunnel_input()
77 if (!pskb_may_pull(skb, sizeof(struct ipv6hdr))) in xfrm6_mode_tunnel_input()
80 err = skb_unclone(skb, GFP_ATOMIC); in xfrm6_mode_tunnel_input()
85 ipv6_copy_dscp(ipv6_get_dsfield(ipv6_hdr(skb)), in xfrm6_mode_tunnel_input()
86 ipipv6_hdr(skb)); in xfrm6_mode_tunnel_input()
88 ipip6_ecn_decapsulate(skb); in xfrm6_mode_tunnel_input()
90 skb_reset_network_header(skb); in xfrm6_mode_tunnel_input()
91 skb_mac_header_rebuild(skb); in xfrm6_mode_tunnel_input()