• Home
  • Raw
  • Download

Lines Matching refs:rt

270 static inline int icmpv4_xrlim_allow(struct net *net, struct rtable *rt,  in icmpv4_xrlim_allow()  argument
273 struct dst_entry *dst = &rt->u.dst; in icmpv4_xrlim_allow()
324 struct ipcm_cookie *ipc, struct rtable **rt) in icmp_push_reply() argument
329 sk = icmp_sk(dev_net((*rt)->u.dst.dev)); in icmp_push_reply()
333 ipc, rt, MSG_DONTWAIT) < 0) in icmp_push_reply()
359 struct rtable *rt = skb->rtable; in icmp_reply() local
360 struct net *net = dev_net(rt->u.dst.dev); in icmp_reply()
376 daddr = ipc.addr = rt->rt_src; in icmp_reply()
386 .saddr = rt->rt_spec_dst, in icmp_reply()
390 if (ip_route_output_key(net, &rt, &fl)) in icmp_reply()
393 if (icmpv4_xrlim_allow(net, rt, icmp_param->data.icmph.type, in icmp_reply()
395 icmp_push_reply(icmp_param, &ipc, &rt); in icmp_reply()
396 ip_rt_put(rt); in icmp_reply()
418 struct rtable *rt = skb_in->rtable; in icmp_send() local
425 if (!rt) in icmp_send()
427 net = dev_net(rt->u.dst.dev); in icmp_send()
449 if (rt->rt_flags & (RTCF_BROADCAST | RTCF_MULTICAST)) in icmp_send()
500 if (!(rt->rt_flags & RTCF_LOCAL)) { in icmp_send()
503 if (rt->fl.iif && in icmp_send()
505 dev = dev_get_by_index(net, rt->fl.iif); in icmp_send()
559 if (__ip_route_output_key(net, &rt, &fl)) in icmp_send()
563 rt2 = rt; in icmp_send()
565 err = xfrm_lookup(net, (struct dst_entry **)&rt, &fl, NULL, 0); in icmp_send()
568 if (rt != rt2) in icmp_send()
572 rt = NULL; in icmp_send()
608 dst_release(&rt->u.dst); in icmp_send()
609 rt = rt2; in icmp_send()
615 if (!rt) in icmp_send()
622 if (!icmpv4_xrlim_allow(net, rt, type, code)) in icmp_send()
627 room = dst_mtu(&rt->u.dst); in icmp_send()
638 icmp_push_reply(&icmp_param, &ipc, &rt); in icmp_send()
640 ip_rt_put(rt); in icmp_send()
927 struct rtable *rt = skb->rtable; in icmp_address_reply() local
932 if (skb->len < 4 || !(rt->rt_flags&RTCF_DIRECTSRC)) in icmp_address_reply()
948 inet_ifa_match(rt->rt_src, ifa)) in icmp_address_reply()
953 mp, dev->name, &rt->rt_src); in icmp_address_reply()
971 struct rtable *rt = skb->rtable; in icmp_rcv() local
972 struct net *net = dev_net(rt->u.dst.dev); in icmp_rcv()
1027 if (rt->rt_flags & (RTCF_BROADCAST | RTCF_MULTICAST)) { in icmp_rcv()