icmp6_nodeinfo
struct icmp6_nodeinfo *nip;
nip = (struct icmp6_nodeinfo *)outpack;
mynireply(const struct icmp6_nodeinfo *nip)
struct icmp6_nodeinfo *ni;
ni = (struct icmp6_nodeinfo *)buf;
pr_suptypes(struct icmp6_nodeinfo *ni, size_t nilen)
pr_nodeaddr(struct icmp6_nodeinfo *ni, int nilen)
nilen -= sizeof(struct icmp6_nodeinfo);
struct icmp6_nodeinfo *ni;
ni = (struct icmp6_nodeinfo *)icp;
ni = (struct icmp6_nodeinfo *)icp;
void pr_suptypes(struct icmp6_nodeinfo *, size_t);
void pr_nodeaddr(struct icmp6_nodeinfo *, int);
int mynireply(const struct icmp6_nodeinfo *);
struct icmp6_nodeinfo *ni6, *nni6;
int replylen = sizeof(struct ip6_hdr) + sizeof(struct icmp6_nodeinfo);
ni6 = (struct icmp6_nodeinfo *)(mtod(m, caddr_t) + off);
IP6_EXTHDR_GET(ni6, struct icmp6_nodeinfo *, m, off, sizeof(*ni6));
(icmp6_nodeinfo & 4) == 0) {
subjlen = m->m_pkthdr.len - off - sizeof(struct icmp6_nodeinfo);
m_copydata(m, off + sizeof(struct icmp6_nodeinfo),
off + sizeof(struct icmp6_nodeinfo), subjlen);
if ((icmp6_nodeinfo & 1) == 0)
if ((icmp6_nodeinfo & 2) == 0)
nni6 = (struct icmp6_nodeinfo *)(mtod(n, struct ip6_hdr *) + 1);
bcopy((caddr_t)ni6, (caddr_t)nni6, sizeof(struct icmp6_nodeinfo));
sizeof(struct icmp6_nodeinfo));
sizeof(struct ip6_hdr) + sizeof(struct icmp6_nodeinfo);
sizeof(struct icmp6_nodeinfo) + copied;
extern int icmp6_nodeinfo;
ni6_addrs(struct icmp6_nodeinfo *ni6, struct mbuf *m, struct ifnet **ifpp,
static int ni6_addrs (struct icmp6_nodeinfo *, struct mbuf *,
static int ni6_store_addrs (struct icmp6_nodeinfo *, struct icmp6_nodeinfo *,
(icmp6_nodeinfo & 4) == 0) {
ni6_store_addrs(struct icmp6_nodeinfo *ni6, struct icmp6_nodeinfo *nni6,
(icmp6_nodeinfo & 4) == 0) {
if (!icmp6_nodeinfo)
else if (icmp6len >= sizeof(struct icmp6_nodeinfo))
IP6_EXTHDR_CHECK(m, off, sizeof(struct icmp6_nodeinfo),
if ((icmp6_nodeinfo & 5) != 5)
int icmp6_nodeinfo = 3; /* enable/disable NI response */
nodeinfo, CTLFLAG_RW, &icmp6_nodeinfo, 0, "Enable/disable NI response");