Lines Matching refs:ndopts
204 struct ndisc_options *ndopts) in ndisc_parse_options() argument
208 if (!nd_opt || opt_len < 0 || !ndopts) in ndisc_parse_options()
210 memset(ndopts, 0, sizeof(*ndopts)); in ndisc_parse_options()
223 if (ndopts->nd_opt_array[nd_opt->nd_opt_type]) { in ndisc_parse_options()
228 ndopts->nd_opt_array[nd_opt->nd_opt_type] = nd_opt; in ndisc_parse_options()
232 ndopts->nd_opts_pi_end = nd_opt; in ndisc_parse_options()
233 if (!ndopts->nd_opt_array[nd_opt->nd_opt_type]) in ndisc_parse_options()
234 ndopts->nd_opt_array[nd_opt->nd_opt_type] = nd_opt; in ndisc_parse_options()
238 ndopts->nd_opts_ri_end = nd_opt; in ndisc_parse_options()
239 if (!ndopts->nd_opts_ri) in ndisc_parse_options()
240 ndopts->nd_opts_ri = nd_opt; in ndisc_parse_options()
245 ndopts->nd_useropts_end = nd_opt; in ndisc_parse_options()
246 if (!ndopts->nd_useropts) in ndisc_parse_options()
247 ndopts->nd_useropts = nd_opt; in ndisc_parse_options()
264 return ndopts; in ndisc_parse_options()
710 struct ndisc_options ndopts; in ndisc_recv_ns() local
738 if (!ndisc_parse_options(msg->opt, ndoptlen, &ndopts)) { in ndisc_recv_ns()
743 if (ndopts.nd_opts_src_lladdr) { in ndisc_recv_ns()
744 lladdr = ndisc_opt_addr_data(ndopts.nd_opts_src_lladdr, dev); in ndisc_recv_ns()
870 struct ndisc_options ndopts; in ndisc_recv_na() local
891 if (!ndisc_parse_options(msg->opt, ndoptlen, &ndopts)) { in ndisc_recv_na()
895 if (ndopts.nd_opts_tgt_lladdr) { in ndisc_recv_na()
896 lladdr = ndisc_opt_addr_data(ndopts.nd_opts_tgt_lladdr, dev); in ndisc_recv_na()
973 struct ndisc_options ndopts; in ndisc_recv_rs() local
997 if (!ndisc_parse_options(rs_msg->opt, ndoptlen, &ndopts)) { in ndisc_recv_rs()
1002 if (ndopts.nd_opts_src_lladdr) { in ndisc_recv_rs()
1003 lladdr = ndisc_opt_addr_data(ndopts.nd_opts_src_lladdr, in ndisc_recv_rs()
1074 struct ndisc_options ndopts; in ndisc_router_discovery() local
1113 if (!ndisc_parse_options(opt, optlen, &ndopts)) { in ndisc_router_discovery()
1288 if (ndopts.nd_opts_src_lladdr) { in ndisc_router_discovery()
1289 lladdr = ndisc_opt_addr_data(ndopts.nd_opts_src_lladdr, in ndisc_router_discovery()
1321 if (in6_dev->cnf.accept_ra_rtr_pref && ndopts.nd_opts_ri) { in ndisc_router_discovery()
1323 for (p = ndopts.nd_opts_ri; in ndisc_router_discovery()
1325 p = ndisc_next_option(p, ndopts.nd_opts_ri_end)) { in ndisc_router_discovery()
1355 if (in6_dev->cnf.accept_ra_pinfo && ndopts.nd_opts_pi) { in ndisc_router_discovery()
1357 for (p = ndopts.nd_opts_pi; in ndisc_router_discovery()
1359 p = ndisc_next_option(p, ndopts.nd_opts_pi_end)) { in ndisc_router_discovery()
1362 ndopts.nd_opts_src_lladdr != NULL); in ndisc_router_discovery()
1366 if (ndopts.nd_opts_mtu && in6_dev->cnf.accept_ra_mtu) { in ndisc_router_discovery()
1370 memcpy(&n, ((u8 *)(ndopts.nd_opts_mtu+1))+2, sizeof(mtu)); in ndisc_router_discovery()
1385 if (ndopts.nd_useropts) { in ndisc_router_discovery()
1387 for (p = ndopts.nd_useropts; in ndisc_router_discovery()
1389 p = ndisc_next_useropt(p, ndopts.nd_useropts_end)) { in ndisc_router_discovery()
1394 if (ndopts.nd_opts_tgt_lladdr || ndopts.nd_opts_rh) { in ndisc_router_discovery()
1406 struct ndisc_options ndopts; in ndisc_redirect_rcv() local
1427 if (!ndisc_parse_options(msg->opt, ndoptlen, &ndopts)) in ndisc_redirect_rcv()
1430 if (!ndopts.nd_opts_rh) { in ndisc_redirect_rcv()
1436 hdr = (u8 *)ndopts.nd_opts_rh; in ndisc_redirect_rcv()