Lines Matching defs:ndopts
222 struct ndisc_options *ndopts)
226 if (!nd_opt || opt_len < 0 || !ndopts)
228 memset(ndopts, 0, sizeof(*ndopts));
237 if (ndisc_ops_parse_options(dev, nd_opt, ndopts))
245 if (ndopts->nd_opt_array[nd_opt->nd_opt_type]) {
249 ndopts->nd_opt_array[nd_opt->nd_opt_type] = nd_opt;
253 ndopts->nd_opts_pi_end = nd_opt;
254 if (!ndopts->nd_opt_array[nd_opt->nd_opt_type])
255 ndopts->nd_opt_array[nd_opt->nd_opt_type] = nd_opt;
259 ndopts->nd_opts_ri_end = nd_opt;
260 if (!ndopts->nd_opts_ri)
261 ndopts->nd_opts_ri = nd_opt;
268 ndopts->nd_useropts_end = nd_opt;
269 if (!ndopts->nd_useropts)
270 ndopts->nd_useropts = nd_opt;
284 return ndopts;
780 struct ndisc_options *ndopts)
784 ndisc_ops_update(dev, neigh, flags, icmp6_type, ndopts);
795 struct ndisc_options ndopts;
823 if (!ndisc_parse_options(dev, msg->opt, ndoptlen, &ndopts))
826 if (ndopts.nd_opts_src_lladdr) {
827 lladdr = ndisc_opt_addr_data(ndopts.nd_opts_src_lladdr, dev);
843 if (ndopts.nd_opts_nonce && ndopts.nd_opts_nonce->nd_opt_len == 1)
844 memcpy(&nonce, (u8 *)(ndopts.nd_opts_nonce + 1), 6);
952 NDISC_NEIGHBOUR_SOLICITATION, &ndopts);
996 struct ndisc_options ndopts;
1027 if (!ndisc_parse_options(dev, msg->opt, ndoptlen, &ndopts))
1030 if (ndopts.nd_opts_tgt_lladdr) {
1031 lladdr = ndisc_opt_addr_data(ndopts.nd_opts_tgt_lladdr, dev);
1112 NDISC_NEIGHBOUR_ADVERTISEMENT, &ndopts);
1134 struct ndisc_options ndopts;
1159 if (!ndisc_parse_options(skb->dev, rs_msg->opt, ndoptlen, &ndopts))
1162 if (ndopts.nd_opts_src_lladdr) {
1163 lladdr = ndisc_opt_addr_data(ndopts.nd_opts_src_lladdr,
1175 NDISC_ROUTER_SOLICITATION, &ndopts);
1234 struct ndisc_options ndopts;
1272 if (!ndisc_parse_options(skb->dev, opt, optlen, &ndopts))
1470 if (ndopts.nd_opts_src_lladdr) {
1471 lladdr = ndisc_opt_addr_data(ndopts.nd_opts_src_lladdr,
1483 NDISC_ROUTER_ADVERTISEMENT, &ndopts);
1502 if (READ_ONCE(in6_dev->cnf.accept_ra_rtr_pref) && ndopts.nd_opts_ri) {
1504 for (p = ndopts.nd_opts_ri;
1506 p = ndisc_next_option(p, ndopts.nd_opts_ri_end)) {
1532 /* skip link-specific ndopts from interior routers */
1540 if (READ_ONCE(in6_dev->cnf.accept_ra_pinfo) && ndopts.nd_opts_pi) {
1542 for (p = ndopts.nd_opts_pi;
1544 p = ndisc_next_option(p, ndopts.nd_opts_pi_end)) {
1547 ndopts.nd_opts_src_lladdr != NULL);
1551 if (ndopts.nd_opts_mtu && READ_ONCE(in6_dev->cnf.accept_ra_mtu)) {
1555 memcpy(&n, ((u8 *)(ndopts.nd_opts_mtu+1))+2, sizeof(mtu));
1572 if (ndopts.nd_useropts) {
1574 for (p = ndopts.nd_useropts;
1577 ndopts.nd_useropts_end)) {
1582 if (ndopts.nd_opts_tgt_lladdr || ndopts.nd_opts_rh) {
1603 struct ndisc_options ndopts;
1621 if (!ndisc_parse_options(skb->dev, msg->opt, ndoptlen, &ndopts))
1624 if (!ndopts.nd_opts_rh) {
1630 hdr = (u8 *)ndopts.nd_opts_rh;