Lines Matching defs:saddr
493 (__force u32)iph->saddr,
527 prot, flow_flags, iph->daddr, iph->saddr, 0, 0,
742 __be32 old_gw = ip_hdr(skb)->saddr;
812 __be32 saddr = iph->saddr;
817 &saddr, &daddr);
894 peer = inet_getpeer_v4(net->ipv4.peers, ip_hdr(skb)->saddr, vif, 1);
933 &ip_hdr(skb)->saddr, inet_iif(skb),
998 peer = inet_getpeer_v4(net->ipv4.peers, ip_hdr(skb)->saddr,
1258 __func__, &ip_hdr(skb)->saddr, &ip_hdr(skb)->daddr,
1279 src = ip_hdr(skb)->saddr;
1285 .saddr = iph->saddr,
1691 int ip_mc_validate_source(struct sk_buff *skb, __be32 daddr, __be32 saddr,
1701 if (ipv4_is_multicast(saddr) || ipv4_is_lbcast(saddr) ||
1705 if (ipv4_is_loopback(saddr) && !IN_DEV_ROUTE_LOCALNET(in_dev))
1708 if (ipv4_is_zeronet(saddr)) {
1713 err = fib_validate_source(skb, saddr, 0, tos, 0, dev,
1722 static int ip_route_input_mc(struct sk_buff *skb, __be32 daddr, __be32 saddr,
1731 err = ip_mc_validate_source(skb, daddr, saddr, tos, dev, in_dev, &itag);
1768 __be32 saddr)
1778 &daddr, &saddr, dev->name);
1793 __be32 daddr, __be32 saddr, u32 tos)
1811 err = fib_validate_source(skb, saddr, daddr, tos, FIB_RES_OIF(*res),
1815 saddr);
1827 inet_addr_onlink(out_dev, saddr, gw))
1919 hash_keys->addrs.v4addrs.src = key_iph->saddr;
2025 hash_keys.addrs.v4addrs.src = fl4->saddr;
2053 hash_keys.addrs.v4addrs.src = fl4->saddr;
2084 hash_keys.addrs.v4addrs.src = fl4->saddr;
2118 hash_keys.addrs.v4addrs.src = fl4->saddr;
2141 __be32 daddr, __be32 saddr, u32 tos,
2154 return __mkroute_input(skb, res, in_dev, daddr, saddr, tos);
2157 /* Implements all the saddr-related checks as ip_route_input_slow(),
2161 int ip_route_use_hint(struct sk_buff *skb, __be32 daddr, __be32 saddr,
2171 if (ipv4_is_multicast(saddr) || ipv4_is_lbcast(saddr))
2174 if (ipv4_is_zeronet(saddr))
2177 if (ipv4_is_loopback(saddr) && !IN_DEV_NET_ROUTE_LOCALNET(in_dev, net))
2184 err = fib_validate_source(skb, saddr, daddr, tos, 0, dev, in_dev, &tag);
2193 ip_handle_martian_source(dev, in_dev, skb, daddr, saddr);
2223 static int ip_route_input_slow(struct sk_buff *skb, __be32 daddr, __be32 saddr,
2254 if (ipv4_is_multicast(saddr) || ipv4_is_lbcast(saddr))
2259 if (ipv4_is_lbcast(daddr) || (saddr == 0 && daddr == 0))
2265 if (ipv4_is_zeronet(saddr))
2272 * and call it once if daddr or/and saddr are loopback addresses
2277 } else if (ipv4_is_loopback(saddr)) {
2293 fl4.saddr = saddr;
2322 err = fib_validate_source(skb, saddr, daddr, tos,
2337 err = ip_mkroute_input(skb, res, in_dev, daddr, saddr, tos, flkeys);
2344 if (!ipv4_is_zeronet(saddr)) {
2345 err = fib_validate_source(skb, saddr, 0, tos, 0, dev,
2420 &daddr, &saddr, dev->name);
2432 ip_handle_martian_source(dev, in_dev, skb, daddr, saddr);
2437 static int ip_route_input_rcu(struct sk_buff *skb, __be32 daddr, __be32 saddr,
2458 our = ip_check_mc_rcu(in_dev, daddr, saddr,
2467 our = ip_check_mc_rcu(l3_in_dev, daddr, saddr,
2478 err = ip_route_input_mc(skb, daddr, saddr,
2484 return ip_route_input_slow(skb, daddr, saddr, tos, dev, res);
2487 int ip_route_input_noref(struct sk_buff *skb, __be32 daddr, __be32 saddr,
2495 err = ip_route_input_rcu(skb, daddr, saddr, tos, dev, &res);
2520 if (ipv4_is_loopback(fl4->saddr) &&
2541 if (!ip_check_mc_rcu(in_dev, fl4->daddr, fl4->saddr,
2661 if (fl4->saddr) {
2662 if (ipv4_is_multicast(fl4->saddr) ||
2663 ipv4_is_lbcast(fl4->saddr) ||
2664 ipv4_is_zeronet(fl4->saddr)) {
2673 * 1. ip_dev_find(net, saddr) can return wrong iface, if saddr
2675 * 2. Moreover, we are allowed to send packets with saddr
2682 /* It is equivalent to inet_addr_type(saddr) == RTN_LOCAL */
2683 dev_out = __ip_dev_find(net, fl4->saddr, false);
2707 /* It is equivalent to inet_addr_type(saddr) == RTN_LOCAL */
2708 if (!__ip_dev_find(net, fl4->saddr, false))
2728 if (!fl4->saddr)
2729 fl4->saddr = inet_select_addr(dev_out, 0,
2733 if (!fl4->saddr) {
2735 fl4->saddr = inet_select_addr(dev_out, 0,
2738 fl4->saddr = inet_select_addr(dev_out, 0,
2744 fl4->daddr = fl4->saddr;
2746 fl4->daddr = fl4->saddr = htonl(INADDR_LOOPBACK);
2778 if (fl4->saddr == 0)
2779 fl4->saddr = inet_select_addr(dev_out, 0,
2789 if (!fl4->saddr) {
2791 fl4->saddr = res->fi->fib_prefsrc;
2793 fl4->saddr = fl4->daddr;
2890 struct net *net, __be32 *saddr,
2904 rt = dst_cache_get_ip4(dst_cache, saddr);
2913 fl4.saddr = info->key.u.ipv4.src;
2929 dst_cache_set_ip4(dst_cache, &rt->dst, fl4.saddr);
2931 *saddr = fl4.saddr;
2988 fl4->saddr != src) {
2989 if (nla_put_in_addr(skb, RTA_PREFSRC, fl4->saddr))
3046 fl4->saddr, fl4->daddr,
3168 iph->saddr = src;
3331 fl4.saddr = src;