ndisc_ops
const struct ndisc_ops *ndisc_ops;
if (dev->ndisc_ops && dev->ndisc_ops->parse_options)
return dev->ndisc_ops->parse_options(dev, nd_opt, ndopts);
if (dev->ndisc_ops && dev->ndisc_ops->update)
dev->ndisc_ops->update(dev, n, flags, icmp6_type, ndopts);
if (dev->ndisc_ops && dev->ndisc_ops->opt_addr_space &&
return dev->ndisc_ops->opt_addr_space(dev, icmp6_type, NULL,
if (dev->ndisc_ops && dev->ndisc_ops->opt_addr_space)
return dev->ndisc_ops->opt_addr_space(dev, NDISC_REDIRECT,
if (dev->ndisc_ops && dev->ndisc_ops->fill_addr_option &&
dev->ndisc_ops->fill_addr_option(dev, skb, icmp6_type, NULL);
if (dev->ndisc_ops && dev->ndisc_ops->fill_addr_option)
dev->ndisc_ops->fill_addr_option(dev, skb, NDISC_REDIRECT, ha);
if (dev->ndisc_ops && dev->ndisc_ops->prefix_rcv_add_addr)
dev->ndisc_ops->prefix_rcv_add_addr(net, dev, pinfo, in6_dev,
extern const struct ndisc_ops lowpan_ndisc_ops;
dev->ndisc_ops = &lowpan_ndisc_ops;
const struct ndisc_ops lowpan_ndisc_ops = {