Lines Matching refs:tpi
123 const struct tnl_ptk_info *tpi) in ipgre_err() argument
146 if (tpi->proto == htons(ETH_P_TEB)) in ipgre_err()
148 else if (tpi->proto == htons(ETH_P_ERSPAN) || in ipgre_err()
149 tpi->proto == htons(ETH_P_ERSPAN2)) in ipgre_err()
155 t = ip_tunnel_lookup(itn, skb->dev->ifindex, tpi->flags, in ipgre_err()
156 iph->daddr, iph->saddr, tpi->key); in ipgre_err()
191 if (tpi->proto == htons(ETH_P_IPV6)) { in ipgre_err()
197 if (!ip6_err_gen_icmpv6_unreach(skb, iph->ihl * 4 + tpi->hdr_len, in ipgre_err()
238 struct tnl_ptk_info tpi; in gre_err() local
240 if (gre_parse_header(skb, &tpi, NULL, htons(ETH_P_IP), in gre_err()
255 ipgre_err(skb, info, &tpi); in gre_err()
267 static int erspan_rcv(struct sk_buff *skb, struct tnl_ptk_info *tpi, in erspan_rcv() argument
281 ip_tunnel_flags_copy(flags, tpi->flags); in erspan_rcv()
300 iph->saddr, iph->daddr, tpi->key); in erspan_rcv()
324 __set_bit(IP_TUNNEL_KEY_BIT, tpi->flags); in erspan_rcv()
325 ip_tunnel_flags_copy(flags, tpi->flags); in erspan_rcv()
326 tun_id = key32_to_tunnel_id(tpi->key); in erspan_rcv()
354 ip_tunnel_rcv(tunnel, skb, tpi, tun_dst, log_ecn_error); in erspan_rcv()
364 static int __ipgre_rcv(struct sk_buff *skb, const struct tnl_ptk_info *tpi, in __ipgre_rcv() argument
372 tunnel = ip_tunnel_lookup(itn, skb->dev->ifindex, tpi->flags, in __ipgre_rcv()
373 iph->saddr, iph->daddr, tpi->key); in __ipgre_rcv()
378 if (__iptunnel_pull_header(skb, hdr_len, tpi->proto, in __ipgre_rcv()
397 ip_tunnel_flags_and(flags, tpi->flags, flags); in __ipgre_rcv()
399 tun_id = key32_to_tunnel_id(tpi->key); in __ipgre_rcv()
405 ip_tunnel_rcv(tunnel, skb, tpi, tun_dst, log_ecn_error); in __ipgre_rcv()
415 static int ipgre_rcv(struct sk_buff *skb, const struct tnl_ptk_info *tpi, in ipgre_rcv() argument
422 if (tpi->proto == htons(ETH_P_TEB)) in ipgre_rcv()
427 res = __ipgre_rcv(skb, tpi, itn, hdr_len, false); in ipgre_rcv()
428 if (res == PACKET_NEXT && tpi->proto == htons(ETH_P_TEB)) { in ipgre_rcv()
433 res = __ipgre_rcv(skb, tpi, itn, hdr_len, true); in ipgre_rcv()
440 struct tnl_ptk_info tpi; in gre_rcv() local
452 hdr_len = gre_parse_header(skb, &tpi, &csum_err, htons(ETH_P_IP), 0); in gre_rcv()
456 if (unlikely(tpi.proto == htons(ETH_P_ERSPAN) || in gre_rcv()
457 tpi.proto == htons(ETH_P_ERSPAN2))) { in gre_rcv()
458 if (erspan_rcv(skb, &tpi, hdr_len) == PACKET_RCVD) in gre_rcv()
463 if (ipgre_rcv(skb, &tpi, hdr_len) == PACKET_RCVD) in gre_rcv()