Lines Matching refs:flp
2542 int __ip_route_output_key(struct rtable **rp, const struct flowi *flp)
2547 hash = rt_hash(flp->fl4_dst, flp->fl4_src, flp->oif);
2552 if (rth->fl.fl4_dst == flp->fl4_dst &&
2553 rth->fl.fl4_src == flp->fl4_src &&
2555 rth->fl.oif == flp->oif &&
2556 rth->fl.mark == flp->mark &&
2557 !((rth->fl.fl4_tos ^ flp->fl4_tos) &
2563 if (multipath_select_route(flp, rth, rp)) {
2582 return ip_route_output_slow(rp, flp);
2607 static int ipv4_dst_blackhole(struct rtable **rp, struct flowi *flp, struct sock *sk)
2650 int ip_route_output_flow(struct rtable **rp, struct flowi *flp, struct sock *sk, int flags)
2654 if ((err = __ip_route_output_key(rp, flp)) != 0)
2657 if (flp->proto) {
2658 if (!flp->fl4_src)
2659 flp->fl4_src = (*rp)->rt_src;
2660 if (!flp->fl4_dst)
2661 flp->fl4_dst = (*rp)->rt_dst;
2662 err = __xfrm_lookup((struct dst_entry **)rp, flp, sk, flags);
2664 err = ipv4_dst_blackhole(rp, flp, sk);
2674 int ip_route_output_key(struct rtable **rp, struct flowi *flp)
2676 return ip_route_output_flow(rp, flp, NULL, 0);