Lines Matching refs:tunnel

267 	struct ip_tunnel *tunnel;  in erspan_rcv()  local
277 tunnel = ip_tunnel_lookup(itn, skb->dev->ifindex, in erspan_rcv()
283 tunnel = ip_tunnel_lookup(itn, skb->dev->ifindex, in erspan_rcv()
288 if (tunnel) { in erspan_rcv()
303 if (tunnel->collect_md) { in erspan_rcv()
339 ip_tunnel_rcv(tunnel, skb, tpi, tun_dst, log_ecn_error); in erspan_rcv()
354 struct ip_tunnel *tunnel; in __ipgre_rcv() local
357 tunnel = ip_tunnel_lookup(itn, skb->dev->ifindex, tpi->flags, in __ipgre_rcv()
360 if (tunnel) { in __ipgre_rcv()
367 if (tunnel->dev->type != ARPHRD_NONE) in __ipgre_rcv()
372 tnl_params = &tunnel->parms.iph; in __ipgre_rcv()
373 if (tunnel->collect_md || tnl_params->daddr == 0) { in __ipgre_rcv()
384 ip_tunnel_rcv(tunnel, skb, tpi, tun_dst, log_ecn_error); in __ipgre_rcv()
456 struct ip_tunnel *tunnel = netdev_priv(dev); in __gre_xmit() local
458 if (tunnel->parms.o_flags & TUNNEL_SEQ) in __gre_xmit()
459 tunnel->o_seqno++; in __gre_xmit()
462 gre_build_header(skb, tunnel->tun_hlen, in __gre_xmit()
463 tunnel->parms.o_flags, proto, tunnel->parms.o_key, in __gre_xmit()
464 htonl(tunnel->o_seqno)); in __gre_xmit()
477 struct ip_tunnel *tunnel = netdev_priv(dev); in gre_fb_xmit() local
502 (flags & TUNNEL_SEQ) ? htonl(tunnel->o_seqno++) : 0); in gre_fb_xmit()
515 struct ip_tunnel *tunnel = netdev_priv(dev); in erspan_fb_xmit() local
579 proto, 0, htonl(tunnel->o_seqno++)); in erspan_fb_xmit()
616 struct ip_tunnel *tunnel = netdev_priv(dev); in ipgre_xmit() local
622 if (tunnel->collect_md) { in ipgre_xmit()
636 skb_pull(skb, tunnel->hlen + sizeof(struct iphdr)); in ipgre_xmit()
642 tnl_params = &tunnel->parms.iph; in ipgre_xmit()
645 if (gre_handle_offloads(skb, !!(tunnel->parms.o_flags & TUNNEL_CSUM))) in ipgre_xmit()
660 struct ip_tunnel *tunnel = netdev_priv(dev); in erspan_xmit() local
667 if (tunnel->collect_md) { in erspan_xmit()
684 if (tunnel->erspan_ver == 0) { in erspan_xmit()
686 tunnel->parms.o_flags &= ~TUNNEL_SEQ; in erspan_xmit()
687 } else if (tunnel->erspan_ver == 1) { in erspan_xmit()
688 erspan_build_header(skb, ntohl(tunnel->parms.o_key), in erspan_xmit()
689 tunnel->index, in erspan_xmit()
692 } else if (tunnel->erspan_ver == 2) { in erspan_xmit()
693 erspan_build_header_v2(skb, ntohl(tunnel->parms.o_key), in erspan_xmit()
694 tunnel->dir, tunnel->hwid, in erspan_xmit()
701 tunnel->parms.o_flags &= ~TUNNEL_KEY; in erspan_xmit()
702 __gre_xmit(skb, dev, &tunnel->parms.iph, proto); in erspan_xmit()
714 struct ip_tunnel *tunnel = netdev_priv(dev); in gre_tap_xmit() local
719 if (tunnel->collect_md) { in gre_tap_xmit()
724 if (gre_handle_offloads(skb, !!(tunnel->parms.o_flags & TUNNEL_CSUM))) in gre_tap_xmit()
730 __gre_xmit(skb, dev, &tunnel->parms.iph, htons(ETH_P_TEB)); in gre_tap_xmit()
741 struct ip_tunnel *tunnel = netdev_priv(dev); in ipgre_link_update() local
744 len = tunnel->tun_hlen; in ipgre_link_update()
745 tunnel->tun_hlen = gre_calc_hlen(tunnel->parms.o_flags); in ipgre_link_update()
746 len = tunnel->tun_hlen - len; in ipgre_link_update()
747 tunnel->hlen = tunnel->hlen + len; in ipgre_link_update()
757 if (!(tunnel->parms.o_flags & TUNNEL_SEQ)) { in ipgre_link_update()
758 if (!(tunnel->parms.o_flags & TUNNEL_CSUM) || in ipgre_link_update()
759 tunnel->encap.type == TUNNEL_ENCAP_NONE) { in ipgre_link_update()
942 struct ip_tunnel *tunnel; in __gre_tunnel_init() local
944 tunnel = netdev_priv(dev); in __gre_tunnel_init()
945 tunnel->tun_hlen = gre_calc_hlen(tunnel->parms.o_flags); in __gre_tunnel_init()
946 tunnel->parms.iph.protocol = IPPROTO_GRE; in __gre_tunnel_init()
948 tunnel->hlen = tunnel->tun_hlen + tunnel->encap_hlen; in __gre_tunnel_init()
949 dev->needed_headroom = tunnel->hlen + sizeof(tunnel->parms.iph); in __gre_tunnel_init()
954 if (!(tunnel->parms.o_flags & TUNNEL_SEQ)) { in __gre_tunnel_init()
959 if (!(tunnel->parms.o_flags & TUNNEL_CSUM) || in __gre_tunnel_init()
960 (tunnel->encap.type == TUNNEL_ENCAP_NONE)) { in __gre_tunnel_init()
974 struct ip_tunnel *tunnel = netdev_priv(dev); in ipgre_tunnel_init() local
975 struct iphdr *iph = &tunnel->parms.iph; in ipgre_tunnel_init()
986 if (iph->daddr && !tunnel->collect_md) { in ipgre_tunnel_init()
993 dev->hard_header_len = tunnel->hlen + sizeof(*iph); in ipgre_tunnel_init()
997 } else if (!tunnel->collect_md) { in ipgre_tunnel_init()
999 dev->hard_header_len = tunnel->hlen + sizeof(*iph); in ipgre_tunnel_init()
1285 struct ip_tunnel *tunnel = netdev_priv(dev); in erspan_tunnel_init() local
1287 if (tunnel->erspan_ver == 0) in erspan_tunnel_init()
1288 tunnel->tun_hlen = 4; /* 4-byte GRE hdr. */ in erspan_tunnel_init()
1290 tunnel->tun_hlen = 8; /* 8-byte GRE hdr. */ in erspan_tunnel_init()
1292 tunnel->parms.iph.protocol = IPPROTO_GRE; in erspan_tunnel_init()
1293 tunnel->hlen = tunnel->tun_hlen + tunnel->encap_hlen + in erspan_tunnel_init()
1294 erspan_hdr_len(tunnel->erspan_ver); in erspan_tunnel_init()