Lines Matching refs:tpi

64 void gre_build_header(struct sk_buff *skb, const struct tnl_ptk_info *tpi,  in gre_build_header()  argument
73 greh->flags = tnl_flags_to_gre_flags(tpi->flags); in gre_build_header()
74 greh->protocol = tpi->proto; in gre_build_header()
76 if (tpi->flags&(TUNNEL_KEY|TUNNEL_CSUM|TUNNEL_SEQ)) { in gre_build_header()
79 if (tpi->flags&TUNNEL_SEQ) { in gre_build_header()
80 *ptr = tpi->seq; in gre_build_header()
83 if (tpi->flags&TUNNEL_KEY) { in gre_build_header()
84 *ptr = tpi->key; in gre_build_header()
87 if (tpi->flags&TUNNEL_CSUM && in gre_build_header()
98 static int parse_gre_header(struct sk_buff *skb, struct tnl_ptk_info *tpi, in parse_gre_header() argument
112 tpi->flags = gre_flags_to_tnl_flags(greh->flags); in parse_gre_header()
113 hdr_len = ip_gre_calc_hlen(tpi->flags); in parse_gre_header()
119 tpi->proto = greh->protocol; in parse_gre_header()
135 tpi->key = *options; in parse_gre_header()
138 tpi->key = 0; in parse_gre_header()
141 tpi->seq = *options; in parse_gre_header()
144 tpi->seq = 0; in parse_gre_header()
150 if (greh->flags == 0 && tpi->proto == htons(ETH_P_WCCP)) { in parse_gre_header()
151 tpi->proto = htons(ETH_P_IP); in parse_gre_header()
159 return iptunnel_pull_header(skb, hdr_len, tpi->proto); in parse_gre_header()
164 struct tnl_ptk_info tpi; in gre_cisco_rcv() local
176 if (parse_gre_header(skb, &tpi, &csum_err) < 0) in gre_cisco_rcv()
187 ret = proto->handler(skb, &tpi); in gre_cisco_rcv()
219 struct tnl_ptk_info tpi; in gre_cisco_err() local
223 if (parse_gre_header(skb, &tpi, &csum_err)) { in gre_cisco_err()
247 if (proto->err_handler(skb, info, &tpi) == PACKET_RCVD) in gre_cisco_err()