Lines Matching refs:ndopts

222 					  struct ndisc_options *ndopts)  in ndisc_parse_options()  argument
226 if (!nd_opt || opt_len < 0 || !ndopts) in ndisc_parse_options()
228 memset(ndopts, 0, sizeof(*ndopts)); in ndisc_parse_options()
237 if (ndisc_ops_parse_options(dev, nd_opt, ndopts)) in ndisc_parse_options()
245 if (ndopts->nd_opt_array[nd_opt->nd_opt_type]) { in ndisc_parse_options()
250 ndopts->nd_opt_array[nd_opt->nd_opt_type] = nd_opt; in ndisc_parse_options()
254 ndopts->nd_opts_pi_end = nd_opt; in ndisc_parse_options()
255 if (!ndopts->nd_opt_array[nd_opt->nd_opt_type]) in ndisc_parse_options()
256 ndopts->nd_opt_array[nd_opt->nd_opt_type] = nd_opt; in ndisc_parse_options()
260 ndopts->nd_opts_ri_end = nd_opt; in ndisc_parse_options()
261 if (!ndopts->nd_opts_ri) in ndisc_parse_options()
262 ndopts->nd_opts_ri = nd_opt; in ndisc_parse_options()
269 ndopts->nd_useropts_end = nd_opt; in ndisc_parse_options()
270 if (!ndopts->nd_useropts) in ndisc_parse_options()
271 ndopts->nd_useropts = nd_opt; in ndisc_parse_options()
288 return ndopts; in ndisc_parse_options()
782 struct ndisc_options *ndopts) in ndisc_update() argument
786 ndisc_ops_update(dev, neigh, flags, icmp6_type, ndopts); in ndisc_update()
797 struct ndisc_options ndopts; in ndisc_recv_ns() local
825 if (!ndisc_parse_options(dev, msg->opt, ndoptlen, &ndopts)) in ndisc_recv_ns()
828 if (ndopts.nd_opts_src_lladdr) { in ndisc_recv_ns()
829 lladdr = ndisc_opt_addr_data(ndopts.nd_opts_src_lladdr, dev); in ndisc_recv_ns()
847 if (ndopts.nd_opts_nonce && ndopts.nd_opts_nonce->nd_opt_len == 1) in ndisc_recv_ns()
848 memcpy(&nonce, (u8 *)(ndopts.nd_opts_nonce + 1), 6); in ndisc_recv_ns()
958 NDISC_NEIGHBOUR_SOLICITATION, &ndopts); in ndisc_recv_ns()
1002 struct ndisc_options ndopts; in ndisc_recv_na() local
1033 if (!ndisc_parse_options(dev, msg->opt, ndoptlen, &ndopts)) in ndisc_recv_na()
1036 if (ndopts.nd_opts_tgt_lladdr) { in ndisc_recv_na()
1037 lladdr = ndisc_opt_addr_data(ndopts.nd_opts_tgt_lladdr, dev); in ndisc_recv_na()
1119 NDISC_NEIGHBOUR_ADVERTISEMENT, &ndopts); in ndisc_recv_na()
1141 struct ndisc_options ndopts; in ndisc_recv_rs() local
1166 if (!ndisc_parse_options(skb->dev, rs_msg->opt, ndoptlen, &ndopts)) in ndisc_recv_rs()
1169 if (ndopts.nd_opts_src_lladdr) { in ndisc_recv_rs()
1170 lladdr = ndisc_opt_addr_data(ndopts.nd_opts_src_lladdr, in ndisc_recv_rs()
1182 NDISC_ROUTER_SOLICITATION, &ndopts); in ndisc_recv_rs()
1241 struct ndisc_options ndopts; in ndisc_router_discovery() local
1282 if (!ndisc_parse_options(skb->dev, opt, optlen, &ndopts)) in ndisc_router_discovery()
1489 if (ndopts.nd_opts_src_lladdr) { in ndisc_router_discovery()
1490 lladdr = ndisc_opt_addr_data(ndopts.nd_opts_src_lladdr, in ndisc_router_discovery()
1503 NDISC_ROUTER_ADVERTISEMENT, &ndopts); in ndisc_router_discovery()
1524 if (READ_ONCE(in6_dev->cnf.accept_ra_rtr_pref) && ndopts.nd_opts_ri) { in ndisc_router_discovery()
1526 for (p = ndopts.nd_opts_ri; in ndisc_router_discovery()
1528 p = ndisc_next_option(p, ndopts.nd_opts_ri_end)) { in ndisc_router_discovery()
1563 if (READ_ONCE(in6_dev->cnf.accept_ra_pinfo) && ndopts.nd_opts_pi) { in ndisc_router_discovery()
1565 for (p = ndopts.nd_opts_pi; in ndisc_router_discovery()
1567 p = ndisc_next_option(p, ndopts.nd_opts_pi_end)) { in ndisc_router_discovery()
1570 ndopts.nd_opts_src_lladdr != NULL); in ndisc_router_discovery()
1574 if (ndopts.nd_opts_mtu && READ_ONCE(in6_dev->cnf.accept_ra_mtu)) { in ndisc_router_discovery()
1578 memcpy(&n, ((u8 *)(ndopts.nd_opts_mtu+1))+2, sizeof(mtu)); in ndisc_router_discovery()
1595 if (ndopts.nd_useropts) { in ndisc_router_discovery()
1597 for (p = ndopts.nd_useropts; in ndisc_router_discovery()
1600 ndopts.nd_useropts_end)) { in ndisc_router_discovery()
1605 if (ndopts.nd_opts_tgt_lladdr || ndopts.nd_opts_rh) { in ndisc_router_discovery()
1626 struct ndisc_options ndopts; in ndisc_redirect_rcv() local
1646 if (!ndisc_parse_options(skb->dev, msg->opt, ndoptlen, &ndopts)) in ndisc_redirect_rcv()
1649 if (!ndopts.nd_opts_rh) { in ndisc_redirect_rcv()
1655 hdr = (u8 *)ndopts.nd_opts_rh; in ndisc_redirect_rcv()