Lines Matching refs:saddr
410 const struct in6_addr *saddr, in ip6_nd_hdr() argument
426 hdr->saddr = *saddr; in ip6_nd_hdr()
432 const struct in6_addr *saddr) in ndisc_send_skb() argument
448 icmpv6_flow_init(sk, &fl6, type, saddr, daddr, oif); in ndisc_send_skb()
460 icmp6h->icmp6_cksum = csum_ipv6_magic(saddr, daddr, skb->len, in ndisc_send_skb()
465 ip6_nd_hdr(skb, saddr, daddr, inet6_sk(sk)->hop_limit, skb->len); in ndisc_send_skb()
559 const struct in6_addr *daddr, const struct in6_addr *saddr) in ndisc_send_ns() argument
567 if (!saddr) { in ndisc_send_ns()
571 saddr = &addr_buf; in ndisc_send_ns()
574 if (ipv6_addr_any(saddr)) in ndisc_send_ns()
595 ndisc_send_skb(skb, daddr, saddr); in ndisc_send_ns()
598 void ndisc_send_rs(struct net_device *dev, const struct in6_addr *saddr, in ndisc_send_rs() argument
616 struct inet6_ifaddr *ifp = ipv6_get_ifaddr(dev_net(dev), saddr, in ndisc_send_rs()
646 ndisc_send_skb(skb, daddr, saddr); in ndisc_send_rs()
664 struct in6_addr *saddr = NULL; in ndisc_solicit() local
670 if (skb && ipv6_chk_addr_and_flags(dev_net(dev), &ipv6_hdr(skb)->saddr, in ndisc_solicit()
673 saddr = &ipv6_hdr(skb)->saddr; in ndisc_solicit()
681 ndisc_send_ns(dev, target, target, saddr); in ndisc_solicit()
686 ndisc_send_ns(dev, target, &mcaddr, saddr); in ndisc_solicit()
708 const struct in6_addr *saddr = &ipv6_hdr(skb)->saddr; in ndisc_recv_ns() local
718 int dad = ipv6_addr_any(saddr); in ndisc_recv_ns()
856 neigh = __neigh_lookup(&nd_tbl, saddr, dev, in ndisc_recv_ns()
863 ndisc_send_na(dev, saddr, &msg->target, !!is_router, in ndisc_recv_ns()
879 struct in6_addr *saddr = &ipv6_hdr(skb)->saddr; in ndisc_recv_na() local
972 rt6_clean_tohost(dev_net(dev), saddr); in ndisc_recv_na()
986 const struct in6_addr *saddr = &ipv6_hdr(skb)->saddr; in ndisc_recv_rs() local
1007 if (ipv6_addr_any(saddr)) in ndisc_recv_rs()
1023 neigh = __neigh_lookup(&nd_tbl, saddr, skb->dev, 1); in ndisc_recv_rs()
1067 if (nla_put_in6_addr(skb, NDUSEROPT_SRCADDR, &ipv6_hdr(ra)->saddr)) in ndisc_ra_useropt()
1102 if (!(ipv6_addr_type(&ipv6_hdr(skb)->saddr) & IPV6_ADDR_LINKLOCAL)) { in ndisc_router_discovery()
1185 ipv6_chk_addr(dev_net(in6_dev->dev), &ipv6_hdr(skb)->saddr, in ndisc_router_discovery()
1203 rt = rt6_get_dflt_router(&ipv6_hdr(skb)->saddr, skb->dev); in ndisc_router_discovery()
1206 neigh = dst_neigh_lookup(&rt->dst, &ipv6_hdr(skb)->saddr); in ndisc_router_discovery()
1225 rt = rt6_add_dflt_router(&ipv6_hdr(skb)->saddr, skb->dev, pref); in ndisc_router_discovery()
1233 neigh = dst_neigh_lookup(&rt->dst, &ipv6_hdr(skb)->saddr); in ndisc_router_discovery()
1310 neigh = __neigh_lookup(&nd_tbl, &ipv6_hdr(skb)->saddr, in ndisc_router_discovery()
1339 ipv6_chk_addr(dev_net(in6_dev->dev), &ipv6_hdr(skb)->saddr, in ndisc_router_discovery()
1364 &ipv6_hdr(skb)->saddr); in ndisc_router_discovery()
1447 if (!(ipv6_addr_type(&ipv6_hdr(skb)->saddr) & IPV6_ADDR_LINKLOCAL)) { in ndisc_redirect_rcv()
1516 &saddr_buf, &ipv6_hdr(skb)->saddr, oif); in ndisc_send_redirect()
1537 peer = inet_getpeer_v6(net->ipv6.peers, &ipv6_hdr(skb)->saddr, 1); in ndisc_send_redirect()
1598 ndisc_send_skb(buff, &ipv6_hdr(skb)->saddr, &saddr_buf); in ndisc_send_redirect()