Lines Matching refs:tunnel

492 	struct ip6_tnl *tunnel;  in ip6gre_rcv()  local
495 tunnel = ip6gre_tunnel_lookup(skb->dev, in ip6gre_rcv()
498 if (tunnel) { in ip6gre_rcv()
499 if (tunnel->parms.collect_md) { in ip6gre_rcv()
511 ip6_tnl_rcv(tunnel, skb, tpi, tun_dst, log_ecn_error); in ip6gre_rcv()
513 ip6_tnl_rcv(tunnel, skb, tpi, NULL, log_ecn_error); in ip6gre_rcv()
529 struct ip6_tnl *tunnel; in ip6erspan_rcv() local
536 tunnel = ip6gre_tunnel_lookup(skb->dev, in ip6erspan_rcv()
539 if (tunnel) { in ip6erspan_rcv()
550 if (tunnel->parms.collect_md) { in ip6erspan_rcv()
584 ip6_tnl_rcv(tunnel, skb, tpi, tun_dst, log_ecn_error); in ip6erspan_rcv()
587 ip6_tnl_rcv(tunnel, skb, tpi, NULL, log_ecn_error); in ip6erspan_rcv()
710 struct ip6_tnl *tunnel = netdev_priv(dev); in __gre6_xmit() local
719 fl6->daddr = tunnel->parms.raddr; in __gre6_xmit()
721 if (skb_cow_head(skb, dev->needed_headroom ?: tunnel->hlen)) in __gre6_xmit()
727 if (tunnel->parms.collect_md) { in __gre6_xmit()
748 tunnel->tun_hlen = gre_calc_hlen(flags); in __gre6_xmit()
750 gre_build_header(skb, tunnel->tun_hlen, in __gre6_xmit()
753 (flags & TUNNEL_SEQ) ? htonl(tunnel->o_seqno++) in __gre6_xmit()
757 if (tunnel->parms.o_flags & TUNNEL_SEQ) in __gre6_xmit()
758 tunnel->o_seqno++; in __gre6_xmit()
760 gre_build_header(skb, tunnel->tun_hlen, tunnel->parms.o_flags, in __gre6_xmit()
761 protocol, tunnel->parms.o_key, in __gre6_xmit()
762 htonl(tunnel->o_seqno)); in __gre6_xmit()
1138 static int ip6gre_calc_hlen(struct ip6_tnl *tunnel) in ip6gre_calc_hlen() argument
1142 tunnel->tun_hlen = gre_calc_hlen(tunnel->parms.o_flags); in ip6gre_calc_hlen()
1143 tunnel->hlen = tunnel->tun_hlen + tunnel->encap_hlen; in ip6gre_calc_hlen()
1145 t_hlen = tunnel->hlen + sizeof(struct ipv6hdr); in ip6gre_calc_hlen()
1146 tunnel->dev->needed_headroom = LL_MAX_HEADER + t_hlen; in ip6gre_calc_hlen()
1439 struct ip6_tnl *tunnel; in ip6gre_tunnel_init_common() local
1443 tunnel = netdev_priv(dev); in ip6gre_tunnel_init_common()
1445 tunnel->dev = dev; in ip6gre_tunnel_init_common()
1446 tunnel->net = dev_net(dev); in ip6gre_tunnel_init_common()
1447 strcpy(tunnel->parms.name, dev->name); in ip6gre_tunnel_init_common()
1453 ret = dst_cache_init(&tunnel->dst_cache, GFP_KERNEL); in ip6gre_tunnel_init_common()
1457 ret = gro_cells_init(&tunnel->gro_cells, dev); in ip6gre_tunnel_init_common()
1461 t_hlen = ip6gre_calc_hlen(tunnel); in ip6gre_tunnel_init_common()
1465 if (!(tunnel->parms.flags & IP6_TNL_F_IGN_ENCAP_LIMIT)) in ip6gre_tunnel_init_common()
1468 if (tunnel->parms.collect_md) { in ip6gre_tunnel_init_common()
1477 dst_cache_destroy(&tunnel->dst_cache); in ip6gre_tunnel_init_common()
1486 struct ip6_tnl *tunnel; in ip6gre_tunnel_init() local
1493 tunnel = netdev_priv(dev); in ip6gre_tunnel_init()
1495 if (tunnel->parms.collect_md) in ip6gre_tunnel_init()
1498 memcpy(dev->dev_addr, &tunnel->parms.laddr, sizeof(struct in6_addr)); in ip6gre_tunnel_init()
1499 memcpy(dev->broadcast, &tunnel->parms.raddr, sizeof(struct in6_addr)); in ip6gre_tunnel_init()
1501 if (ipv6_addr_any(&tunnel->parms.raddr)) in ip6gre_tunnel_init()
1509 struct ip6_tnl *tunnel = netdev_priv(dev); in ip6gre_fb_tunnel_init() local
1511 tunnel->dev = dev; in ip6gre_fb_tunnel_init()
1512 tunnel->net = dev_net(dev); in ip6gre_fb_tunnel_init()
1513 strcpy(tunnel->parms.name, dev->name); in ip6gre_fb_tunnel_init()
1515 tunnel->hlen = sizeof(struct ipv6hdr) + 4; in ip6gre_fb_tunnel_init()
1819 static int ip6erspan_calc_hlen(struct ip6_tnl *tunnel) in ip6erspan_calc_hlen() argument
1823 tunnel->tun_hlen = 8; in ip6erspan_calc_hlen()
1824 tunnel->hlen = tunnel->tun_hlen + tunnel->encap_hlen + in ip6erspan_calc_hlen()
1825 erspan_hdr_len(tunnel->parms.erspan_ver); in ip6erspan_calc_hlen()
1827 t_hlen = tunnel->hlen + sizeof(struct ipv6hdr); in ip6erspan_calc_hlen()
1828 tunnel->dev->needed_headroom = LL_MAX_HEADER + t_hlen; in ip6erspan_calc_hlen()
1834 struct ip6_tnl *tunnel; in ip6erspan_tap_init() local
1838 tunnel = netdev_priv(dev); in ip6erspan_tap_init()
1840 tunnel->dev = dev; in ip6erspan_tap_init()
1841 tunnel->net = dev_net(dev); in ip6erspan_tap_init()
1842 strcpy(tunnel->parms.name, dev->name); in ip6erspan_tap_init()
1848 ret = dst_cache_init(&tunnel->dst_cache, GFP_KERNEL); in ip6erspan_tap_init()
1852 ret = gro_cells_init(&tunnel->gro_cells, dev); in ip6erspan_tap_init()
1856 t_hlen = ip6erspan_calc_hlen(tunnel); in ip6erspan_tap_init()
1860 if (!(tunnel->parms.flags & IP6_TNL_F_IGN_ENCAP_LIMIT)) in ip6erspan_tap_init()
1864 ip6erspan_tnl_link_config(tunnel, 1); in ip6erspan_tap_init()
1869 dst_cache_destroy(&tunnel->dst_cache); in ip6erspan_tap_init()