Lines Matching refs:tunnel
265 struct ip_tunnel *tunnel; in erspan_rcv() local
286 tunnel = ip_tunnel_lookup(itn, skb->dev->ifindex, in erspan_rcv()
290 if (tunnel) { in erspan_rcv()
304 if (tunnel->collect_md) { in erspan_rcv()
331 ip_tunnel_rcv(tunnel, skb, tpi, tun_dst, log_ecn_error); in erspan_rcv()
346 struct ip_tunnel *tunnel; in __ipgre_rcv() local
349 tunnel = ip_tunnel_lookup(itn, skb->dev->ifindex, tpi->flags, in __ipgre_rcv()
352 if (tunnel) { in __ipgre_rcv()
357 if (tunnel->dev->type != ARPHRD_NONE) in __ipgre_rcv()
361 if (tunnel->collect_md) { in __ipgre_rcv()
372 ip_tunnel_rcv(tunnel, skb, tpi, tun_dst, log_ecn_error); in __ipgre_rcv()
444 struct ip_tunnel *tunnel = netdev_priv(dev); in __gre_xmit() local
446 if (tunnel->parms.o_flags & TUNNEL_SEQ) in __gre_xmit()
447 tunnel->o_seqno++; in __gre_xmit()
450 gre_build_header(skb, tunnel->tun_hlen, in __gre_xmit()
451 tunnel->parms.o_flags, proto, tunnel->parms.o_key, in __gre_xmit()
452 htonl(tunnel->o_seqno)); in __gre_xmit()
530 struct ip_tunnel *tunnel = netdev_priv(dev); in gre_fb_xmit() local
558 (flags & TUNNEL_SEQ) ? htonl(tunnel->o_seqno++) : 0); in gre_fb_xmit()
576 struct ip_tunnel *tunnel = netdev_priv(dev); in erspan_fb_xmit() local
641 htons(ETH_P_ERSPAN), 0, htonl(tunnel->o_seqno++)); in erspan_fb_xmit()
677 struct ip_tunnel *tunnel = netdev_priv(dev); in ipgre_xmit() local
680 if (tunnel->collect_md) { in ipgre_xmit()
688 (tunnel->hlen + sizeof(struct iphdr)))) in ipgre_xmit()
696 skb_pull(skb, tunnel->hlen + sizeof(struct iphdr)); in ipgre_xmit()
702 tnl_params = &tunnel->parms.iph; in ipgre_xmit()
705 if (gre_handle_offloads(skb, !!(tunnel->parms.o_flags & TUNNEL_CSUM))) in ipgre_xmit()
720 struct ip_tunnel *tunnel = netdev_priv(dev); in erspan_xmit() local
723 if (tunnel->collect_md) { in erspan_xmit()
740 if (tunnel->erspan_ver == 1) in erspan_xmit()
741 erspan_build_header(skb, ntohl(tunnel->parms.o_key), in erspan_xmit()
742 tunnel->index, in erspan_xmit()
744 else if (tunnel->erspan_ver == 2) in erspan_xmit()
745 erspan_build_header_v2(skb, ntohl(tunnel->parms.o_key), in erspan_xmit()
746 tunnel->dir, tunnel->hwid, in erspan_xmit()
751 tunnel->parms.o_flags &= ~TUNNEL_KEY; in erspan_xmit()
752 __gre_xmit(skb, dev, &tunnel->parms.iph, htons(ETH_P_ERSPAN)); in erspan_xmit()
764 struct ip_tunnel *tunnel = netdev_priv(dev); in gre_tap_xmit() local
766 if (tunnel->collect_md) { in gre_tap_xmit()
771 if (gre_handle_offloads(skb, !!(tunnel->parms.o_flags & TUNNEL_CSUM))) in gre_tap_xmit()
777 __gre_xmit(skb, dev, &tunnel->parms.iph, htons(ETH_P_TEB)); in gre_tap_xmit()
788 struct ip_tunnel *tunnel = netdev_priv(dev); in ipgre_link_update() local
791 len = tunnel->tun_hlen; in ipgre_link_update()
792 tunnel->tun_hlen = gre_calc_hlen(tunnel->parms.o_flags); in ipgre_link_update()
793 len = tunnel->tun_hlen - len; in ipgre_link_update()
794 tunnel->hlen = tunnel->hlen + len; in ipgre_link_update()
800 if (!(tunnel->parms.o_flags & TUNNEL_SEQ)) { in ipgre_link_update()
801 if (!(tunnel->parms.o_flags & TUNNEL_CSUM) || in ipgre_link_update()
802 tunnel->encap.type == TUNNEL_ENCAP_NONE) { in ipgre_link_update()
992 struct ip_tunnel *tunnel; in __gre_tunnel_init() local
994 tunnel = netdev_priv(dev); in __gre_tunnel_init()
995 tunnel->tun_hlen = gre_calc_hlen(tunnel->parms.o_flags); in __gre_tunnel_init()
996 tunnel->parms.iph.protocol = IPPROTO_GRE; in __gre_tunnel_init()
998 tunnel->hlen = tunnel->tun_hlen + tunnel->encap_hlen; in __gre_tunnel_init()
1003 if (!(tunnel->parms.o_flags & TUNNEL_SEQ)) { in __gre_tunnel_init()
1008 if (!(tunnel->parms.o_flags & TUNNEL_CSUM) || in __gre_tunnel_init()
1009 (tunnel->encap.type == TUNNEL_ENCAP_NONE)) { in __gre_tunnel_init()
1023 struct ip_tunnel *tunnel = netdev_priv(dev); in ipgre_tunnel_init() local
1024 struct iphdr *iph = &tunnel->parms.iph; in ipgre_tunnel_init()
1035 if (iph->daddr && !tunnel->collect_md) { in ipgre_tunnel_init()
1044 } else if (!tunnel->collect_md) { in ipgre_tunnel_init()
1308 struct ip_tunnel *tunnel = netdev_priv(dev); in erspan_tunnel_init() local
1310 tunnel->tun_hlen = 8; in erspan_tunnel_init()
1311 tunnel->parms.iph.protocol = IPPROTO_GRE; in erspan_tunnel_init()
1312 tunnel->hlen = tunnel->tun_hlen + tunnel->encap_hlen + in erspan_tunnel_init()
1313 erspan_hdr_len(tunnel->erspan_ver); in erspan_tunnel_init()