Lines Matching defs:saddr
525 (__force u32)iph->saddr,
559 iph->daddr, iph->saddr, 0, 0,
771 __be32 old_gw = ip_hdr(skb)->saddr;
841 __be32 saddr = iph->saddr;
846 &saddr, &daddr);
917 peer = inet_getpeer_v4(net->ipv4.peers, ip_hdr(skb)->saddr, vif, 1);
956 &ip_hdr(skb)->saddr, inet_iif(skb),
1017 peer = inet_getpeer_v4(net->ipv4.peers, ip_hdr(skb)->saddr,
1279 __func__, &ip_hdr(skb)->saddr, &ip_hdr(skb)->daddr,
1300 src = ip_hdr(skb)->saddr;
1306 .saddr = iph->saddr,
1727 int ip_mc_validate_source(struct sk_buff *skb, __be32 daddr, __be32 saddr,
1737 if (ipv4_is_multicast(saddr) || ipv4_is_lbcast(saddr) ||
1741 if (ipv4_is_loopback(saddr) && !IN_DEV_ROUTE_LOCALNET(in_dev))
1744 if (ipv4_is_zeronet(saddr)) {
1749 err = fib_validate_source(skb, saddr, 0, tos, 0, dev,
1758 static int ip_route_input_mc(struct sk_buff *skb, __be32 daddr, __be32 saddr,
1768 err = ip_mc_validate_source(skb, daddr, saddr, tos, dev, in_dev, &itag);
1806 __be32 saddr)
1816 &daddr, &saddr, dev->name);
1831 __be32 daddr, __be32 saddr, u32 tos)
1849 err = fib_validate_source(skb, saddr, daddr, tos, FIB_RES_OIF(*res),
1853 saddr);
1865 inet_addr_onlink(out_dev, saddr, gw))
1958 hash_keys->addrs.v4addrs.src = key_iph->saddr;
1977 hash_keys.addrs.v4addrs.src = fl4->saddr;
2007 hash_keys.addrs.v4addrs.src = fl4->saddr;
2040 hash_keys.addrs.v4addrs.src = fl4->saddr;
2057 __be32 daddr, __be32 saddr, u32 tos,
2070 return __mkroute_input(skb, res, in_dev, daddr, saddr, tos);
2073 /* Implements all the saddr-related checks as ip_route_input_slow(),
2077 int ip_route_use_hint(struct sk_buff *skb, __be32 daddr, __be32 saddr,
2090 if (ipv4_is_multicast(saddr) || ipv4_is_lbcast(saddr))
2093 if (ipv4_is_zeronet(saddr))
2096 if (ipv4_is_loopback(saddr) && !IN_DEV_NET_ROUTE_LOCALNET(in_dev, net))
2103 err = fib_validate_source(skb, saddr, daddr, tos, 0, dev, in_dev, &tag);
2112 ip_handle_martian_source(dev, in_dev, skb, daddr, saddr);
2142 static int ip_route_input_slow(struct sk_buff *skb, __be32 daddr, __be32 saddr,
2174 if (ipv4_is_multicast(saddr) || ipv4_is_lbcast(saddr))
2179 if (ipv4_is_lbcast(daddr) || (saddr == 0 && daddr == 0))
2185 if (ipv4_is_zeronet(saddr))
2192 * and call it once if daddr or/and saddr are loopback addresses
2197 } else if (ipv4_is_loopback(saddr)) {
2212 fl4.saddr = saddr;
2241 err = fib_validate_source(skb, saddr, daddr, tos,
2256 err = ip_mkroute_input(skb, res, in_dev, daddr, saddr, tos, flkeys);
2263 if (!ipv4_is_zeronet(saddr)) {
2264 err = fib_validate_source(skb, saddr, 0, tos, 0, dev,
2341 &daddr, &saddr, dev->name);
2353 ip_handle_martian_source(dev, in_dev, skb, daddr, saddr);
2357 int ip_route_input_noref(struct sk_buff *skb, __be32 daddr, __be32 saddr,
2365 err = ip_route_input_rcu(skb, daddr, saddr, tos, dev, &res);
2373 int ip_route_input_rcu(struct sk_buff *skb, __be32 daddr, __be32 saddr,
2394 our = ip_check_mc_rcu(in_dev, daddr, saddr,
2403 our = ip_check_mc_rcu(l3_in_dev, daddr, saddr,
2414 err = ip_route_input_mc(skb, daddr, saddr,
2420 return ip_route_input_slow(skb, daddr, saddr, tos, dev, res);
2441 if (ipv4_is_loopback(fl4->saddr) &&
2462 if (!ip_check_mc_rcu(in_dev, fl4->daddr, fl4->saddr,
2583 if (fl4->saddr) {
2584 if (ipv4_is_multicast(fl4->saddr) ||
2585 ipv4_is_lbcast(fl4->saddr) ||
2586 ipv4_is_zeronet(fl4->saddr)) {
2595 1. ip_dev_find(net, saddr) can return wrong iface, if saddr
2597 2. Moreover, we are allowed to send packets with saddr
2604 /* It is equivalent to inet_addr_type(saddr) == RTN_LOCAL */
2605 dev_out = __ip_dev_find(net, fl4->saddr, false);
2629 /* It is equivalent to inet_addr_type(saddr) == RTN_LOCAL */
2630 if (!__ip_dev_find(net, fl4->saddr, false))
2650 if (!fl4->saddr)
2651 fl4->saddr = inet_select_addr(dev_out, 0,
2655 if (!fl4->saddr) {
2657 fl4->saddr = inet_select_addr(dev_out, 0,
2660 fl4->saddr = inet_select_addr(dev_out, 0,
2666 fl4->daddr = fl4->saddr;
2668 fl4->daddr = fl4->saddr = htonl(INADDR_LOOPBACK);
2701 if (fl4->saddr == 0)
2702 fl4->saddr = inet_select_addr(dev_out, 0,
2712 if (!fl4->saddr) {
2714 fl4->saddr = res->fi->fib_prefsrc;
2716 fl4->saddr = fl4->daddr;
2816 struct net *net, __be32 *saddr,
2830 rt = dst_cache_get_ip4(dst_cache, saddr);
2839 fl4.saddr = info->key.u.ipv4.src;
2855 dst_cache_set_ip4(dst_cache, &rt->dst, fl4.saddr);
2857 *saddr = fl4.saddr;
2911 fl4->saddr != src) {
2912 if (nla_put_in_addr(skb, RTA_PREFSRC, fl4->saddr))
2969 fl4->saddr, fl4->daddr,
3091 iph->saddr = src;
3254 fl4.saddr = src;