Lines Matching refs:saddr
441 const struct in6_addr *saddr, in ip6_nd_hdr() argument
464 hdr->saddr = *saddr; in ip6_nd_hdr()
469 const struct in6_addr *saddr) in ndisc_send_skb() argument
490 icmpv6_flow_init(sk, &fl6, type, saddr, daddr, oif); in ndisc_send_skb()
501 icmp6h->icmp6_cksum = csum_ipv6_magic(saddr, daddr, skb->len, in ndisc_send_skb()
506 ip6_nd_hdr(skb, saddr, daddr, READ_ONCE(inet6_sk(sk)->hop_limit), skb->len); in ndisc_send_skb()
607 const struct in6_addr *saddr, u64 nonce) in ndisc_ns_create() argument
614 if (!saddr) in ndisc_ns_create()
617 if (ipv6_addr_any(saddr)) in ndisc_ns_create()
654 const struct in6_addr *daddr, const struct in6_addr *saddr, in ndisc_send_ns() argument
660 if (!saddr) { in ndisc_send_ns()
664 saddr = &addr_buf; in ndisc_send_ns()
667 skb = ndisc_ns_create(dev, solicit, saddr, nonce); in ndisc_send_ns()
670 ndisc_send_skb(skb, daddr, saddr); in ndisc_send_ns()
673 void ndisc_send_rs(struct net_device *dev, const struct in6_addr *saddr, in ndisc_send_rs() argument
691 struct inet6_ifaddr *ifp = ipv6_get_ifaddr(dev_net(dev), saddr, in ndisc_send_rs()
722 ndisc_send_skb(skb, daddr, saddr); in ndisc_send_rs()
740 struct in6_addr *saddr = NULL; in ndisc_solicit() local
746 if (skb && ipv6_chk_addr_and_flags(dev_net(dev), &ipv6_hdr(skb)->saddr, in ndisc_solicit()
749 saddr = &ipv6_hdr(skb)->saddr; in ndisc_solicit()
756 ndisc_send_ns(dev, target, target, saddr, 0); in ndisc_solicit()
761 ndisc_send_ns(dev, target, &mcaddr, saddr, 0); in ndisc_solicit()
790 const struct in6_addr *saddr = &ipv6_hdr(skb)->saddr; in ndisc_recv_ns() local
800 int dad = ipv6_addr_any(saddr); in ndisc_recv_ns()
946 neigh = __neigh_lookup(&nd_tbl, saddr, dev, in ndisc_recv_ns()
954 ndisc_send_na(dev, saddr, &msg->target, !!is_router, in ndisc_recv_ns()
969 static int accept_untracked_na(struct net_device *dev, struct in6_addr *saddr) in accept_untracked_na() argument
982 return !!ipv6_chk_prefix(saddr, dev); in accept_untracked_na()
991 struct in6_addr *saddr = &ipv6_hdr(skb)->saddr; in ndisc_recv_na() local
1080 if (accept_untracked_na(dev, saddr)) { in ndisc_recv_na()
1118 rt6_clean_tohost(dev_net(dev), saddr); in ndisc_recv_na()
1133 const struct in6_addr *saddr = &ipv6_hdr(skb)->saddr; in ndisc_recv_rs() local
1155 if (ipv6_addr_any(saddr)) in ndisc_recv_rs()
1169 neigh = __neigh_lookup(&nd_tbl, saddr, skb->dev, 1); in ndisc_recv_rs()
1215 if (nla_put_in6_addr(skb, NDUSEROPT_SRCADDR, &ipv6_hdr(ra)->saddr)) in ndisc_ra_useropt()
1252 if (!(ipv6_addr_type(&ipv6_hdr(skb)->saddr) & IPV6_ADDR_LINKLOCAL)) { in ndisc_router_discovery()
1332 ipv6_chk_addr(net, &ipv6_hdr(skb)->saddr, in6_dev->dev, 0)) { in ndisc_router_discovery()
1346 rt = rt6_get_dflt_router(net, &ipv6_hdr(skb)->saddr, skb->dev); in ndisc_router_discovery()
1350 &ipv6_hdr(skb)->saddr); in ndisc_router_discovery()
1374 rt = rt6_add_dflt_router(net, &ipv6_hdr(skb)->saddr, in ndisc_router_discovery()
1384 &ipv6_hdr(skb)->saddr); in ndisc_router_discovery()
1466 neigh = __neigh_lookup(&nd_tbl, &ipv6_hdr(skb)->saddr, in ndisc_router_discovery()
1495 ipv6_chk_addr(dev_net(in6_dev->dev), &ipv6_hdr(skb)->saddr, in ndisc_router_discovery()
1524 &ipv6_hdr(skb)->saddr); in ndisc_router_discovery()
1616 if (!(ipv6_addr_type(&ipv6_hdr(skb)->saddr) & IPV6_ADDR_LINKLOCAL)) { in ndisc_redirect_rcv()
1689 &saddr_buf, &ipv6_hdr(skb)->saddr, dev->ifindex); in ndisc_send_redirect()
1707 peer = inet_getpeer_v6(net->ipv6.peers, &ipv6_hdr(skb)->saddr); in ndisc_send_redirect()
1768 ndisc_send_skb(buff, &ipv6_hdr(skb)->saddr, &saddr_buf); in ndisc_send_redirect()