Lines Matching refs:tpi

125 		      const struct tnl_ptk_info *tpi)  in ipgre_err()  argument
179 if (tpi->proto == htons(ETH_P_TEB)) in ipgre_err()
181 else if (tpi->proto == htons(ETH_P_ERSPAN) || in ipgre_err()
182 tpi->proto == htons(ETH_P_ERSPAN2)) in ipgre_err()
188 t = ip_tunnel_lookup(itn, skb->dev->ifindex, tpi->flags, in ipgre_err()
189 iph->daddr, iph->saddr, tpi->key); in ipgre_err()
195 if (tpi->proto == htons(ETH_P_IPV6) && in ipgre_err()
196 !ip6_err_gen_icmpv6_unreach(skb, iph->ihl * 4 + tpi->hdr_len, in ipgre_err()
234 struct tnl_ptk_info tpi; in gre_err() local
237 if (gre_parse_header(skb, &tpi, &csum_err, htons(ETH_P_IP), in gre_err()
254 ipgre_err(skb, info, &tpi); in gre_err()
257 static int erspan_rcv(struct sk_buff *skb, struct tnl_ptk_info *tpi, in erspan_rcv() argument
285 tpi->key = cpu_to_be32(get_session_id(ershdr)); in erspan_rcv()
287 tpi->flags | TUNNEL_KEY, in erspan_rcv()
288 iph->saddr, iph->daddr, tpi->key); in erspan_rcv()
310 tpi->flags |= TUNNEL_KEY; in erspan_rcv()
311 flags = tpi->flags; in erspan_rcv()
312 tun_id = key32_to_tunnel_id(tpi->key); in erspan_rcv()
331 ip_tunnel_rcv(tunnel, skb, tpi, tun_dst, log_ecn_error); in erspan_rcv()
341 static int __ipgre_rcv(struct sk_buff *skb, const struct tnl_ptk_info *tpi, in __ipgre_rcv() argument
349 tunnel = ip_tunnel_lookup(itn, skb->dev->ifindex, tpi->flags, in __ipgre_rcv()
350 iph->saddr, iph->daddr, tpi->key); in __ipgre_rcv()
353 if (__iptunnel_pull_header(skb, hdr_len, tpi->proto, in __ipgre_rcv()
365 flags = tpi->flags & (TUNNEL_CSUM | TUNNEL_KEY); in __ipgre_rcv()
366 tun_id = key32_to_tunnel_id(tpi->key); in __ipgre_rcv()
372 ip_tunnel_rcv(tunnel, skb, tpi, tun_dst, log_ecn_error); in __ipgre_rcv()
382 static int ipgre_rcv(struct sk_buff *skb, const struct tnl_ptk_info *tpi, in ipgre_rcv() argument
389 if (tpi->proto == htons(ETH_P_TEB)) in ipgre_rcv()
394 res = __ipgre_rcv(skb, tpi, itn, hdr_len, false); in ipgre_rcv()
395 if (res == PACKET_NEXT && tpi->proto == htons(ETH_P_TEB)) { in ipgre_rcv()
400 res = __ipgre_rcv(skb, tpi, itn, hdr_len, true); in ipgre_rcv()
407 struct tnl_ptk_info tpi; in gre_rcv() local
419 hdr_len = gre_parse_header(skb, &tpi, &csum_err, htons(ETH_P_IP), 0); in gre_rcv()
423 if (unlikely(tpi.proto == htons(ETH_P_ERSPAN) || in gre_rcv()
424 tpi.proto == htons(ETH_P_ERSPAN2))) { in gre_rcv()
425 if (erspan_rcv(skb, &tpi, hdr_len) == PACKET_RCVD) in gre_rcv()
430 if (ipgre_rcv(skb, &tpi, hdr_len) == PACKET_RCVD) in gre_rcv()