ndmsg
struct ndmsg *ndm;
ndm = nlmsg_copy_next_header(hdr, nw, struct ndmsg);
if (!nlmsg_copy_all_nla(hdr, sizeof(struct ndmsg), nw))
struct ndmsg *ndm = (struct ndmsg *)(hdr + 1);
if (hdr->nlmsg_len < sizeof(struct nlmsghdr) + sizeof(struct ndmsg))
#define _IN(_field) offsetof(struct ndmsg, _field)
SNL_DECLARE_PARSER_EXT(snl_rtm_neigh_parser, sizeof(struct ndmsg),
struct ndmsg *ndm;
if (!nlmsg_reply(nw, hdr, sizeof(struct ndmsg)))
ndm = nlmsg_reserve_object(nw, struct ndmsg);
#define _IN(_field) offsetof(struct ndmsg, _field)
NL_DECLARE_PARSER_EXT(ndmsg_parser, struct ndmsg, NULL, nlf_p_neigh, nla_p_neigh, post_p_neigh);
struct ndmsg *ndmsg = snl_reserve_msg_object(&nw, struct ndmsg);
if (ndmsg != NULL) {
ndmsg->ndm_family = AF_INET;
ndmsg->ndm_ifindex = ifindex;
struct ndmsg *ndmsg = snl_reserve_msg_object(&nw, struct ndmsg);
if (ndmsg != NULL) {
ndmsg->ndm_family = AF_INET;
ndmsg->ndm_ifindex = ifindex;
struct ndmsg *ndmsg = snl_reserve_msg_object(&nw, struct ndmsg);
if (ndmsg != NULL) {
ndmsg->ndm_family = AF_INET;
ndmsg->ndm_ifindex = ifindex;
ndmsg->ndm_state = (opts.expire_time == 0) ? \
ndmsg->ndm_flags = nl_flags;
struct ndmsg *ndmsg;
ndmsg = snl_reserve_msg_object(&nw, struct ndmsg);
if (ndmsg != NULL) {
ndmsg->ndm_family = AF_INET6;
ndmsg->ndm_ifindex = ifindex;
struct ndmsg *ndmsg = snl_reserve_msg_object(&nw, struct ndmsg);
if (ndmsg != NULL) {
ndmsg->ndm_family = AF_INET6;
ndmsg->ndm_ifindex = ifindex;
struct ndmsg *ndmsg = snl_reserve_msg_object(&nw, struct ndmsg);
if (ndmsg != NULL) {
ndmsg->ndm_family = AF_INET6;
ndmsg->ndm_ifindex = ifindex;
ndmsg->ndm_state = NUD_PERMANENT;
ndmsg->ndm_flags = nl_flags;