Lines Matching refs:nlh
2660 struct nlmsghdr *nlh; in __nlmsg_put() local
2663 nlh = (struct nlmsghdr *)skb_put(skb, NLMSG_ALIGN(size)); in __nlmsg_put()
2664 nlh->nlmsg_type = type; in __nlmsg_put()
2665 nlh->nlmsg_len = size; in __nlmsg_put()
2666 nlh->nlmsg_flags = flags; in __nlmsg_put()
2667 nlh->nlmsg_pid = portid; in __nlmsg_put()
2668 nlh->nlmsg_seq = seq; in __nlmsg_put()
2670 memset(nlmsg_data(nlh) + len, 0, NLMSG_ALIGN(size) - size); in __nlmsg_put()
2671 return nlh; in __nlmsg_put()
2685 struct nlmsghdr *nlh; in netlink_dump() local
2748 nlh = nlmsg_put_answer(skb, cb, NLMSG_DONE, sizeof(len), NLM_F_MULTI); in netlink_dump()
2749 if (!nlh) in netlink_dump()
2752 nl_dump_check_consistent(cb, nlh); in netlink_dump()
2754 memcpy(nlmsg_data(nlh), &len, sizeof(len)); in netlink_dump()
2777 const struct nlmsghdr *nlh, in __netlink_dump_start() argument
2819 cb->nlh = nlh; in __netlink_dump_start()
2849 void netlink_ack(struct sk_buff *in_skb, struct nlmsghdr *nlh, int err) in netlink_ack() argument
2858 payload += nlmsg_len(nlh); in netlink_ack()
2876 rep = __nlmsg_put(skb, NETLINK_CB(in_skb).portid, nlh->nlmsg_seq, in netlink_ack()
2880 memcpy(&errmsg->msg, nlh, err ? nlh->nlmsg_len : sizeof(*nlh)); in netlink_ack()
2888 struct nlmsghdr *nlh; in netlink_rcv_skb() local
2894 nlh = nlmsg_hdr(skb); in netlink_rcv_skb()
2897 if (nlh->nlmsg_len < NLMSG_HDRLEN || skb->len < nlh->nlmsg_len) in netlink_rcv_skb()
2901 if (!(nlh->nlmsg_flags & NLM_F_REQUEST)) in netlink_rcv_skb()
2905 if (nlh->nlmsg_type < NLMSG_MIN_TYPE) in netlink_rcv_skb()
2908 err = cb(skb, nlh); in netlink_rcv_skb()
2913 if (nlh->nlmsg_flags & NLM_F_ACK || err) in netlink_rcv_skb()
2914 netlink_ack(skb, nlh, err); in netlink_rcv_skb()
2917 msglen = NLMSG_ALIGN(nlh->nlmsg_len); in netlink_rcv_skb()