Lines Matching refs:saddr
408 const struct in6_addr *saddr, in ip6_nd_hdr() argument
424 hdr->saddr = *saddr; in ip6_nd_hdr()
430 const struct in6_addr *saddr) in ndisc_send_skb() argument
445 icmpv6_flow_init(sk, &fl6, type, saddr, daddr, skb->dev->ifindex); in ndisc_send_skb()
455 icmp6h->icmp6_cksum = csum_ipv6_magic(saddr, daddr, skb->len, in ndisc_send_skb()
460 ip6_nd_hdr(skb, saddr, daddr, inet6_sk(sk)->hop_limit, skb->len); in ndisc_send_skb()
556 const struct in6_addr *daddr, const struct in6_addr *saddr) in ndisc_send_ns() argument
564 if (!saddr) { in ndisc_send_ns()
568 saddr = &addr_buf; in ndisc_send_ns()
571 if (ipv6_addr_any(saddr)) in ndisc_send_ns()
592 ndisc_send_skb(skb, daddr, saddr); in ndisc_send_ns()
595 void ndisc_send_rs(struct net_device *dev, const struct in6_addr *saddr, in ndisc_send_rs() argument
613 struct inet6_ifaddr *ifp = ipv6_get_ifaddr(dev_net(dev), saddr, in ndisc_send_rs()
643 ndisc_send_skb(skb, daddr, saddr); in ndisc_send_rs()
661 struct in6_addr *saddr = NULL; in ndisc_solicit() local
667 if (skb && ipv6_chk_addr_and_flags(dev_net(dev), &ipv6_hdr(skb)->saddr, in ndisc_solicit()
670 saddr = &ipv6_hdr(skb)->saddr; in ndisc_solicit()
678 ndisc_send_ns(dev, neigh, target, target, saddr); in ndisc_solicit()
683 ndisc_send_ns(dev, NULL, target, &mcaddr, saddr); in ndisc_solicit()
705 const struct in6_addr *saddr = &ipv6_hdr(skb)->saddr; in ndisc_recv_ns() local
715 int dad = ipv6_addr_any(saddr); in ndisc_recv_ns()
841 neigh = __neigh_lookup(&nd_tbl, saddr, dev, in ndisc_recv_ns()
848 ndisc_send_na(dev, neigh, saddr, &msg->target, in ndisc_recv_ns()
865 struct in6_addr *saddr = &ipv6_hdr(skb)->saddr; in ndisc_recv_na() local
958 rt6_clean_tohost(dev_net(dev), saddr); in ndisc_recv_na()
972 const struct in6_addr *saddr = &ipv6_hdr(skb)->saddr; in ndisc_recv_rs() local
993 if (ipv6_addr_any(saddr)) in ndisc_recv_rs()
1009 neigh = __neigh_lookup(&nd_tbl, saddr, skb->dev, 1); in ndisc_recv_rs()
1053 if (nla_put_in6_addr(skb, NDUSEROPT_SRCADDR, &ipv6_hdr(ra)->saddr)) in ndisc_ra_useropt()
1086 if (!(ipv6_addr_type(&ipv6_hdr(skb)->saddr) & IPV6_ADDR_LINKLOCAL)) { in ndisc_router_discovery()
1165 ipv6_chk_addr(dev_net(in6_dev->dev), &ipv6_hdr(skb)->saddr, in ndisc_router_discovery()
1183 rt = rt6_get_dflt_router(&ipv6_hdr(skb)->saddr, skb->dev); in ndisc_router_discovery()
1186 neigh = dst_neigh_lookup(&rt->dst, &ipv6_hdr(skb)->saddr); in ndisc_router_discovery()
1205 rt = rt6_add_dflt_router(&ipv6_hdr(skb)->saddr, skb->dev, pref); in ndisc_router_discovery()
1213 neigh = dst_neigh_lookup(&rt->dst, &ipv6_hdr(skb)->saddr); in ndisc_router_discovery()
1284 neigh = __neigh_lookup(&nd_tbl, &ipv6_hdr(skb)->saddr, in ndisc_router_discovery()
1313 ipv6_chk_addr(dev_net(in6_dev->dev), &ipv6_hdr(skb)->saddr, in ndisc_router_discovery()
1338 &ipv6_hdr(skb)->saddr); in ndisc_router_discovery()
1421 if (!(ipv6_addr_type(&ipv6_hdr(skb)->saddr) & IPV6_ADDR_LINKLOCAL)) { in ndisc_redirect_rcv()
1489 &saddr_buf, &ipv6_hdr(skb)->saddr, dev->ifindex); in ndisc_send_redirect()
1568 ndisc_send_skb(buff, &ipv6_hdr(skb)->saddr, &saddr_buf); in ndisc_send_redirect()