Lines Matching refs:pktinfo
1000 static void gtp_push_header(struct sk_buff *skb, struct gtp_pktinfo *pktinfo) in gtp_push_header() argument
1002 switch (pktinfo->pctx->gtp_version) { in gtp_push_header()
1004 pktinfo->gtph_port = htons(GTP0_PORT); in gtp_push_header()
1005 gtp0_push_header(skb, pktinfo->pctx); in gtp_push_header()
1008 pktinfo->gtph_port = htons(GTP1U_PORT); in gtp_push_header()
1009 gtp1_push_header(skb, pktinfo->pctx); in gtp_push_header()
1014 static inline void gtp_set_pktinfo_ipv4(struct gtp_pktinfo *pktinfo, in gtp_set_pktinfo_ipv4() argument
1020 pktinfo->sk = sk; in gtp_set_pktinfo_ipv4()
1021 pktinfo->tos = tos; in gtp_set_pktinfo_ipv4()
1022 pktinfo->pctx = pctx; in gtp_set_pktinfo_ipv4()
1023 pktinfo->rt = rt; in gtp_set_pktinfo_ipv4()
1024 pktinfo->fl4 = *fl4; in gtp_set_pktinfo_ipv4()
1025 pktinfo->dev = dev; in gtp_set_pktinfo_ipv4()
1028 static void gtp_set_pktinfo_ipv6(struct gtp_pktinfo *pktinfo, in gtp_set_pktinfo_ipv6() argument
1034 pktinfo->sk = sk; in gtp_set_pktinfo_ipv6()
1035 pktinfo->tos = tos; in gtp_set_pktinfo_ipv6()
1036 pktinfo->pctx = pctx; in gtp_set_pktinfo_ipv6()
1037 pktinfo->rt6 = rt6; in gtp_set_pktinfo_ipv6()
1038 pktinfo->fl6 = *fl6; in gtp_set_pktinfo_ipv6()
1039 pktinfo->dev = dev; in gtp_set_pktinfo_ipv6()
1043 struct gtp_pktinfo *pktinfo, in gtp_build_skb_outer_ip4() argument
1096 gtp_set_pktinfo_ipv4(pktinfo, pctx->sk, tos, pctx, rt, &fl4, dev); in gtp_build_skb_outer_ip4()
1097 gtp_push_header(skb, pktinfo); in gtp_build_skb_outer_ip4()
1108 struct gtp_pktinfo *pktinfo, in gtp_build_skb_outer_ip6() argument
1153 gtp_set_pktinfo_ipv6(pktinfo, pctx->sk, tos, pctx, rt, &fl6, dev); in gtp_build_skb_outer_ip6()
1154 gtp_push_header(skb, pktinfo); in gtp_build_skb_outer_ip6()
1164 struct gtp_pktinfo *pktinfo) in gtp_build_skb_ip4() argument
1190 ret = gtp_build_skb_outer_ip4(skb, dev, pktinfo, pctx, in gtp_build_skb_ip4()
1194 ret = gtp_build_skb_outer_ip6(net, skb, dev, pktinfo, pctx, in gtp_build_skb_ip4()
1213 struct gtp_pktinfo *pktinfo) in gtp_build_skb_ip6() argument
1242 ret = gtp_build_skb_outer_ip4(skb, dev, pktinfo, pctx, tos, 0); in gtp_build_skb_ip6()
1245 ret = gtp_build_skb_outer_ip6(net, skb, dev, pktinfo, pctx, tos); in gtp_build_skb_ip6()
1265 struct gtp_pktinfo pktinfo; in gtp_dev_xmit() local
1281 err = gtp_build_skb_ip4(skb, dev, &pktinfo); in gtp_dev_xmit()
1284 err = gtp_build_skb_ip6(skb, dev, &pktinfo); in gtp_dev_xmit()
1295 switch (pktinfo.pctx->sk->sk_family) { in gtp_dev_xmit()
1297 udp_tunnel_xmit_skb(pktinfo.rt, pktinfo.sk, skb, in gtp_dev_xmit()
1298 pktinfo.fl4.saddr, pktinfo.fl4.daddr, in gtp_dev_xmit()
1299 pktinfo.tos, in gtp_dev_xmit()
1300 ip4_dst_hoplimit(&pktinfo.rt->dst), in gtp_dev_xmit()
1302 pktinfo.gtph_port, pktinfo.gtph_port, in gtp_dev_xmit()
1303 !net_eq(sock_net(pktinfo.pctx->sk), in gtp_dev_xmit()
1309 udp_tunnel6_xmit_skb(&pktinfo.rt6->dst, pktinfo.sk, skb, dev, in gtp_dev_xmit()
1310 &pktinfo.fl6.saddr, &pktinfo.fl6.daddr, in gtp_dev_xmit()
1311 pktinfo.tos, in gtp_dev_xmit()
1312 ip6_dst_hoplimit(&pktinfo.rt->dst), in gtp_dev_xmit()
1314 pktinfo.gtph_port, pktinfo.gtph_port, in gtp_dev_xmit()