Lines Matching refs:fl4
269 static int vrf_send_v4_prep(struct sk_buff *skb, struct flowi4 *fl4, in vrf_send_v4_prep() argument
275 rt = ip_route_output_flow(dev_net(vrf_dev), fl4, NULL); in vrf_send_v4_prep()
297 struct flowi4 fl4 = { in vrf_process_v4_outbound() local
307 if (vrf_send_v4_prep(skb, &fl4, vrf_dev)) in vrf_process_v4_outbound()
791 const struct flowi4 *fl4) in vrf_get_rtable() argument
795 if (!(fl4->flowi4_flags & FLOWI_FLAG_L3MDEV_SRC)) { in vrf_get_rtable()
806 static int vrf_get_saddr(struct net_device *dev, struct flowi4 *fl4) in vrf_get_saddr() argument
810 u32 orig_tos = fl4->flowi4_tos; in vrf_get_saddr()
811 u8 flags = fl4->flowi4_flags; in vrf_get_saddr()
812 u8 scope = fl4->flowi4_scope; in vrf_get_saddr()
813 u8 tos = RT_FL_TOS(fl4); in vrf_get_saddr()
816 if (unlikely(!fl4->daddr)) in vrf_get_saddr()
819 fl4->flowi4_flags |= FLOWI_FLAG_SKIP_NH_OIF; in vrf_get_saddr()
820 fl4->flowi4_iif = LOOPBACK_IFINDEX; in vrf_get_saddr()
821 fl4->flowi4_tos = tos & IPTOS_RT_MASK; in vrf_get_saddr()
822 fl4->flowi4_scope = ((tos & RTO_ONLINK) ? in vrf_get_saddr()
825 rc = fib_lookup(net, fl4, &res, 0); in vrf_get_saddr()
828 fl4->saddr = res.fi->fib_prefsrc ? : fl4->daddr; in vrf_get_saddr()
830 fib_select_path(net, &res, fl4, -1); in vrf_get_saddr()
833 fl4->flowi4_flags = flags; in vrf_get_saddr()
834 fl4->flowi4_tos = orig_tos; in vrf_get_saddr()
835 fl4->flowi4_scope = scope; in vrf_get_saddr()