Lines Matching refs:skb
66 static struct sk_buff *__build_header(struct sk_buff *skb, in __build_header() argument
72 tun_key = &OVS_CB(skb)->egress_tun_info->tunnel; in __build_header()
74 skb = gre_handle_offloads(skb, !!(tun_key->tun_flags & TUNNEL_CSUM)); in __build_header()
75 if (IS_ERR(skb)) in __build_header()
76 return skb; in __build_header()
82 gre_build_header(skb, &tpi, tunnel_hlen); in __build_header()
84 return skb; in __build_header()
97 static int gre_rcv(struct sk_buff *skb, in gre_rcv() argument
105 ovs_net = net_generic(dev_net(skb->dev), ovs_net_id); in gre_rcv()
111 ovs_flow_tun_info_init(&tun_info, ip_hdr(skb), 0, 0, key, in gre_rcv()
114 ovs_vport_receive(vport, skb, &tun_info); in gre_rcv()
119 static int gre_err(struct sk_buff *skb, u32 info, in gre_err() argument
125 ovs_net = net_generic(dev_net(skb->dev), ovs_net_id); in gre_err()
134 static int gre_tnl_send(struct vport *vport, struct sk_buff *skb) in gre_tnl_send() argument
145 if (unlikely(!OVS_CB(skb)->egress_tun_info)) { in gre_tnl_send()
150 tun_key = &OVS_CB(skb)->egress_tun_info->tunnel; in gre_tnl_send()
151 rt = ovs_tunnel_route_lookup(net, tun_key, skb->mark, &fl, IPPROTO_GRE); in gre_tnl_send()
161 + (skb_vlan_tag_present(skb) ? VLAN_HLEN : 0); in gre_tnl_send()
162 if (skb_headroom(skb) < min_headroom || skb_header_cloned(skb)) { in gre_tnl_send()
164 skb_headroom(skb) + in gre_tnl_send()
166 err = pskb_expand_head(skb, max_t(int, head_delta, 0), in gre_tnl_send()
172 skb = vlan_hwaccel_push_inside(skb); in gre_tnl_send()
173 if (unlikely(!skb)) { in gre_tnl_send()
179 skb = __build_header(skb, tunnel_hlen); in gre_tnl_send()
180 if (IS_ERR(skb)) { in gre_tnl_send()
181 err = PTR_ERR(skb); in gre_tnl_send()
182 skb = NULL; in gre_tnl_send()
189 skb->ignore_df = 1; in gre_tnl_send()
191 return iptunnel_xmit(skb->sk, rt, skb, fl.saddr, in gre_tnl_send()
197 kfree_skb(skb); in gre_tnl_send()
279 static int gre_get_egress_tun_info(struct vport *vport, struct sk_buff *skb, in gre_get_egress_tun_info() argument
284 OVS_CB(skb)->egress_tun_info, in gre_get_egress_tun_info()
285 IPPROTO_GRE, skb->mark, 0, 0); in gre_get_egress_tun_info()