Home
last modified time | relevance | path

Searched refs:nlh (Results 1 – 25 of 158) sorted by relevance

1234567

/Linux-v4.19/drivers/staging/gdm724x/
Dnetlink_k.c20 #define ND_NLMSG_DATA(nlh) ((void *)((char *)NLMSG_DATA(nlh) + \ argument
23 #define ND_NLMSG_R_LEN(nlh) (nlh->nlmsg_len - ND_IFINDEX_LEN) argument
24 #define ND_NLMSG_IFIDX(nlh) NLMSG_DATA(nlh) argument
31 struct nlmsghdr *nlh; in netlink_rcv_cb() local
47 nlh = (struct nlmsghdr *)skb->data; in netlink_rcv_cb()
49 if (skb->len < nlh->nlmsg_len || nlh->nlmsg_len > ND_MAX_MSG_LEN) { in netlink_rcv_cb()
51 skb->len, nlh->nlmsg_len); in netlink_rcv_cb()
55 memcpy(&ifindex, ND_NLMSG_IFIDX(nlh), ND_IFINDEX_LEN); in netlink_rcv_cb()
56 msg = ND_NLMSG_DATA(nlh); in netlink_rcv_cb()
57 mlen = ND_NLMSG_R_LEN(nlh); in netlink_rcv_cb()
[all …]
/Linux-v4.19/drivers/infiniband/core/
Dnetlink.c136 void *ibnl_put_msg(struct sk_buff *skb, struct nlmsghdr **nlh, int seq, in ibnl_put_msg() argument
139 *nlh = nlmsg_put(skb, 0, seq, RDMA_NL_GET_TYPE(client, op), len, flags); in ibnl_put_msg()
140 if (!*nlh) in ibnl_put_msg()
142 return nlmsg_data(*nlh); in ibnl_put_msg()
146 int ibnl_put_attr(struct sk_buff *skb, struct nlmsghdr *nlh, in ibnl_put_attr() argument
150 nlmsg_cancel(skb, nlh); in ibnl_put_attr()
157 static int rdma_nl_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh, in rdma_nl_rcv_msg() argument
160 int type = nlh->nlmsg_type; in rdma_nl_rcv_msg()
180 return cb_table[op].doit(skb, nlh, extack); in rdma_nl_rcv_msg()
184 if ((nlh->nlmsg_flags & NLM_F_DUMP) || index == RDMA_NL_RDMA_CM || in rdma_nl_rcv_msg()
[all …]
Diwpm_msg.c60 struct nlmsghdr *nlh; in iwpm_register_pid() local
72 skb = iwpm_create_nlmsg(RDMA_NL_IWPM_REG_PID, &nlh, nl_client); in iwpm_register_pid()
77 nlh->nlmsg_seq = iwpm_get_nlmsg_seq(); in iwpm_register_pid()
78 nlmsg_request = iwpm_get_nlmsg_request(nlh->nlmsg_seq, nl_client, GFP_KERNEL); in iwpm_register_pid()
87 ret = ibnl_put_attr(skb, nlh, sizeof(u32), &msg_seq, IWPM_NLA_REG_PID_SEQ); in iwpm_register_pid()
90 ret = ibnl_put_attr(skb, nlh, IFNAMSIZ, in iwpm_register_pid()
94 ret = ibnl_put_attr(skb, nlh, IWPM_DEVNAME_SIZE, in iwpm_register_pid()
98 ret = ibnl_put_attr(skb, nlh, IWPM_ULIBNAME_SIZE, in iwpm_register_pid()
103 nlmsg_end(skb, nlh); in iwpm_register_pid()
138 struct nlmsghdr *nlh; in iwpm_add_mapping() local
[all …]
Dnldev.c602 static int nldev_get_doit(struct sk_buff *skb, struct nlmsghdr *nlh, in nldev_get_doit() argument
611 err = nlmsg_parse(nlh, 0, tb, RDMA_NLDEV_ATTR_MAX - 1, in nldev_get_doit()
628 nlh = nlmsg_put(msg, NETLINK_CB(skb).portid, nlh->nlmsg_seq, in nldev_get_doit()
636 nlmsg_end(msg, nlh); in nldev_get_doit()
654 struct nlmsghdr *nlh; in _nldev_get_dumpit() local
659 nlh = nlmsg_put(skb, NETLINK_CB(cb->skb).portid, cb->nlh->nlmsg_seq, in _nldev_get_dumpit()
664 nlmsg_cancel(skb, nlh); in _nldev_get_dumpit()
668 nlmsg_end(skb, nlh); in _nldev_get_dumpit()
685 static int nldev_port_get_doit(struct sk_buff *skb, struct nlmsghdr *nlh, in nldev_port_get_doit() argument
695 err = nlmsg_parse(nlh, 0, tb, RDMA_NLDEV_ATTR_MAX - 1, in nldev_port_get_doit()
[all …]
Diwpm_util.c441 struct sk_buff *iwpm_create_nlmsg(u32 nl_op, struct nlmsghdr **nlh, in iwpm_create_nlmsg() argument
450 if (!(ibnl_put_msg(skb, nlh, 0, 0, nl_client, nl_op, in iwpm_create_nlmsg()
468 ret = nlmsg_validate(cb->nlh, nlh_len, policy_max - 1, nlmsg_policy, in iwpm_parse_nlmsg()
474 ret = nlmsg_parse(cb->nlh, nlh_len, nltb, policy_max - 1, in iwpm_parse_nlmsg()
584 struct nlmsghdr *nlh; in send_mapinfo_num() local
589 skb = iwpm_create_nlmsg(RDMA_NL_IWPM_MAPINFO_NUM, &nlh, nl_client); in send_mapinfo_num()
594 nlh->nlmsg_seq = iwpm_get_nlmsg_seq(); in send_mapinfo_num()
597 ret = ibnl_put_attr(skb, nlh, sizeof(u32), &msg_seq, IWPM_NLA_MAPINFO_SEQ); in send_mapinfo_num()
600 ret = ibnl_put_attr(skb, nlh, sizeof(u32), in send_mapinfo_num()
605 nlmsg_end(skb, nlh); in send_mapinfo_num()
[all …]
/Linux-v4.19/net/netfilter/
Dnfnetlink.c159 static int nfnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh, in nfnetlink_rcv_msg() argument
168 if (nlmsg_len(nlh) < sizeof(struct nfgenmsg)) in nfnetlink_rcv_msg()
171 type = nlh->nlmsg_type; in nfnetlink_rcv_msg()
197 u8 cb_id = NFNL_MSG_TYPE(nlh->nlmsg_type); in nfnetlink_rcv_msg()
199 struct nlattr *attr = (void *)nlh + min_len; in nfnetlink_rcv_msg()
200 int attrlen = nlh->nlmsg_len - min_len; in nfnetlink_rcv_msg()
217 err = nc->call_rcu(net, net->nfnl, skb, nlh, in nfnetlink_rcv_msg()
228 err = nc->call(net, net->nfnl, skb, nlh, in nfnetlink_rcv_msg()
243 struct nlmsghdr *nlh; member
248 static int nfnl_err_add(struct list_head *list, struct nlmsghdr *nlh, int err, in nfnl_err_add() argument
[all …]
Dnfnetlink_cttimeout.c79 const struct nlmsghdr *nlh, in cttimeout_new_timeout() argument
104 if (nlh->nlmsg_flags & NLM_F_EXCL) in cttimeout_new_timeout()
112 if (nlh->nlmsg_flags & NLM_F_REPLACE) { in cttimeout_new_timeout()
166 struct nlmsghdr *nlh; in ctnl_timeout_fill_info() local
172 nlh = nlmsg_put(skb, portid, seq, event, sizeof(*nfmsg), flags); in ctnl_timeout_fill_info()
173 if (nlh == NULL) in ctnl_timeout_fill_info()
176 nfmsg = nlmsg_data(nlh); in ctnl_timeout_fill_info()
206 nlmsg_end(skb, nlh); in ctnl_timeout_fill_info()
211 nlmsg_cancel(skb, nlh); in ctnl_timeout_fill_info()
237 cb->nlh->nlmsg_seq, in ctnl_timeout_dump()
[all …]
Dnf_conntrack_netlink.c513 struct nlmsghdr *nlh; in ctnetlink_fill_info() local
519 nlh = nlmsg_put(skb, portid, seq, event, sizeof(*nfmsg), flags); in ctnetlink_fill_info()
520 if (nlh == NULL) in ctnetlink_fill_info()
523 nfmsg = nlmsg_data(nlh); in ctnetlink_fill_info()
570 nlmsg_end(skb, nlh); in ctnetlink_fill_info()
575 nlmsg_cancel(skb, nlh); in ctnetlink_fill_info()
680 struct nlmsghdr *nlh; in ctnetlink_conntrack_event() local
711 nlh = nlmsg_put(skb, item->portid, 0, type, sizeof(*nfmsg), flags); in ctnetlink_conntrack_event()
712 if (nlh == NULL) in ctnetlink_conntrack_event()
715 nfmsg = nlmsg_data(nlh); in ctnetlink_conntrack_event()
[all …]
/Linux-v4.19/drivers/scsi/
Dscsi_netlink.c48 struct nlmsghdr *nlh; in scsi_nl_rcv_msg() local
56 nlh = nlmsg_hdr(skb); in scsi_nl_rcv_msg()
57 if ((nlh->nlmsg_len < (sizeof(*nlh) + sizeof(*hdr))) || in scsi_nl_rcv_msg()
58 (skb->len < nlh->nlmsg_len)) { in scsi_nl_rcv_msg()
64 rlen = NLMSG_ALIGN(nlh->nlmsg_len); in scsi_nl_rcv_msg()
68 if (nlh->nlmsg_type != SCSI_TRANSPORT_MSG) { in scsi_nl_rcv_msg()
73 hdr = nlmsg_data(nlh); in scsi_nl_rcv_msg()
85 if (nlh->nlmsg_len < (sizeof(*nlh) + hdr->msglen)) { in scsi_nl_rcv_msg()
113 if ((err) || (nlh->nlmsg_flags & NLM_F_ACK)) in scsi_nl_rcv_msg()
114 netlink_ack(skb, nlh, err, NULL); in scsi_nl_rcv_msg()
/Linux-v4.19/net/phonet/
Dpn_netlink.c64 static int addr_doit(struct sk_buff *skb, struct nlmsghdr *nlh, in addr_doit() argument
82 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFA_MAX, ifa_phonet_policy, in addr_doit()
87 ifm = nlmsg_data(nlh); in addr_doit()
99 if (nlh->nlmsg_type == RTM_NEWADDR) in addr_doit()
104 phonet_address_notify(nlh->nlmsg_type, dev, pnaddr); in addr_doit()
112 struct nlmsghdr *nlh; in fill_addr() local
114 nlh = nlmsg_put(skb, portid, seq, event, sizeof(*ifm), 0); in fill_addr()
115 if (nlh == NULL) in fill_addr()
118 ifm = nlmsg_data(nlh); in fill_addr()
126 nlmsg_end(skb, nlh); in fill_addr()
[all …]
/Linux-v4.19/include/net/
Dnetlink.h234 struct nlmsghdr *nlh; member
313 static inline void *nlmsg_data(const struct nlmsghdr *nlh) in nlmsg_data() argument
315 return (unsigned char *) nlh + NLMSG_HDRLEN; in nlmsg_data()
322 static inline int nlmsg_len(const struct nlmsghdr *nlh) in nlmsg_len() argument
324 return nlh->nlmsg_len - NLMSG_HDRLEN; in nlmsg_len()
332 static inline struct nlattr *nlmsg_attrdata(const struct nlmsghdr *nlh, in nlmsg_attrdata() argument
335 unsigned char *data = nlmsg_data(nlh); in nlmsg_attrdata()
344 static inline int nlmsg_attrlen(const struct nlmsghdr *nlh, int hdrlen) in nlmsg_attrlen() argument
346 return nlmsg_len(nlh) - NLMSG_ALIGN(hdrlen); in nlmsg_attrlen()
354 static inline int nlmsg_ok(const struct nlmsghdr *nlh, int remaining) in nlmsg_ok() argument
[all …]
/Linux-v4.19/net/decnet/netfilter/
Ddn_rtmsg.c38 struct nlmsghdr *nlh; in dnrmg_build_message() local
50 nlh = nlmsg_put(skb, 0, 0, 0, size, 0); in dnrmg_build_message()
51 if (!nlh) { in dnrmg_build_message()
56 rtm = (struct nf_dn_rtmsg *)nlmsg_data(nlh); in dnrmg_build_message()
60 nlh->nlmsg_len = skb->tail - old_tail; in dnrmg_build_message()
99 #define RCV_SKB_FAIL(err) do { netlink_ack(skb, nlh, (err), NULL); return; } while (0)
103 struct nlmsghdr *nlh = nlmsg_hdr(skb); in dnrmg_receive_user_skb() local
105 if (skb->len < sizeof(*nlh) || in dnrmg_receive_user_skb()
106 nlh->nlmsg_len < sizeof(*nlh) || in dnrmg_receive_user_skb()
107 skb->len < nlh->nlmsg_len) in dnrmg_receive_user_skb()
/Linux-v4.19/tools/include/uapi/linux/
Dnetlink.h94 #define NLMSG_DATA(nlh) ((void*)(((char*)nlh) + NLMSG_LENGTH(0))) argument
95 #define NLMSG_NEXT(nlh,len) ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), \ argument
96 (struct nlmsghdr*)(((char*)(nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len)))
97 #define NLMSG_OK(nlh,len) ((len) >= (int)sizeof(struct nlmsghdr) && \ argument
98 (nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \
99 (nlh)->nlmsg_len <= (len))
100 #define NLMSG_PAYLOAD(nlh,len) ((nlh)->nlmsg_len - NLMSG_SPACE((len))) argument
/Linux-v4.19/include/uapi/linux/
Dnetlink.h94 #define NLMSG_DATA(nlh) ((void*)(((char*)nlh) + NLMSG_LENGTH(0))) argument
95 #define NLMSG_NEXT(nlh,len) ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), \ argument
96 (struct nlmsghdr*)(((char*)(nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len)))
97 #define NLMSG_OK(nlh,len) ((len) >= (int)sizeof(struct nlmsghdr) && \ argument
98 (nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \
99 (nlh)->nlmsg_len <= (len))
100 #define NLMSG_PAYLOAD(nlh,len) ((nlh)->nlmsg_len - NLMSG_SPACE((len))) argument
/Linux-v4.19/security/selinux/
Dnetlink.c46 static void selnl_add_payload(struct nlmsghdr *nlh, int len, int msgtype, void *data) in selnl_add_payload() argument
50 struct selnl_msg_setenforce *msg = nlmsg_data(nlh); in selnl_add_payload()
58 struct selnl_msg_policyload *msg = nlmsg_data(nlh); in selnl_add_payload()
75 struct nlmsghdr *nlh; in selnl_notify() local
84 nlh = nlmsg_put(skb, 0, 0, msgtype, len, 0); in selnl_notify()
85 if (!nlh) in selnl_notify()
87 selnl_add_payload(nlh, len, msgtype, data); in selnl_notify()
88 nlh->nlmsg_len = skb->tail - tmp; in selnl_notify()
/Linux-v4.19/net/xfrm/
Dxfrm_user.c650 static int xfrm_add_sa(struct sk_buff *skb, struct nlmsghdr *nlh, in xfrm_add_sa() argument
654 struct xfrm_usersa_info *p = nlmsg_data(nlh); in xfrm_add_sa()
668 if (nlh->nlmsg_type == XFRM_MSG_NEWSA) in xfrm_add_sa()
685 c.seq = nlh->nlmsg_seq; in xfrm_add_sa()
686 c.portid = nlh->nlmsg_pid; in xfrm_add_sa()
687 c.event = nlh->nlmsg_type; in xfrm_add_sa()
729 static int xfrm_del_sa(struct sk_buff *skb, struct nlmsghdr *nlh, in xfrm_del_sa() argument
736 struct xfrm_usersa_id *p = nlmsg_data(nlh); in xfrm_del_sa()
755 c.seq = nlh->nlmsg_seq; in xfrm_del_sa()
756 c.portid = nlh->nlmsg_pid; in xfrm_del_sa()
[all …]
/Linux-v4.19/net/ipv4/
Dinet_diag.c173 struct nlmsghdr *nlh; in inet_sk_diag_fill() local
180 nlh = nlmsg_put(skb, portid, seq, unlh->nlmsg_type, sizeof(*r), in inet_sk_diag_fill()
182 if (!nlh) in inet_sk_diag_fill()
185 r = nlmsg_data(nlh); in inet_sk_diag_fill()
302 nlmsg_end(skb, nlh); in inet_sk_diag_fill()
306 nlmsg_cancel(skb, nlh); in inet_sk_diag_fill()
330 struct nlmsghdr *nlh; in inet_twsk_diag_fill() local
333 nlh = nlmsg_put(skb, portid, seq, unlh->nlmsg_type, sizeof(*r), in inet_twsk_diag_fill()
335 if (!nlh) in inet_twsk_diag_fill()
338 r = nlmsg_data(nlh); in inet_twsk_diag_fill()
[all …]
/Linux-v4.19/net/wimax/
Dop-msg.c186 struct nlmsghdr *nlh = (void *) msg->head; in wimax_msg_data_len() local
189 nla = nlmsg_find_attr(nlh, sizeof(struct genlmsghdr), in wimax_msg_data_len()
208 struct nlmsghdr *nlh = (void *) msg->head; in wimax_msg_data() local
211 nla = nlmsg_find_attr(nlh, sizeof(struct genlmsghdr), in wimax_msg_data()
229 struct nlmsghdr *nlh = (void *) msg->head; in wimax_msg_len() local
232 nla = nlmsg_find_attr(nlh, sizeof(struct genlmsghdr), in wimax_msg_len()
337 struct nlmsghdr *nlh = info->nlhdr; in wimax_gnl_doit_msg_from_user() local
389 nlh->nlmsg_len, nlh->nlmsg_type, nlh->nlmsg_flags, in wimax_gnl_doit_msg_from_user()
390 nlh->nlmsg_seq, nlh->nlmsg_pid); in wimax_gnl_doit_msg_from_user()
/Linux-v4.19/crypto/
Dcrypto_user.c232 struct nlmsghdr *nlh; in crypto_report_alg() local
236 nlh = nlmsg_put(skb, NETLINK_CB(in_skb).portid, info->nlmsg_seq, in crypto_report_alg()
238 if (!nlh) { in crypto_report_alg()
243 ualg = nlmsg_data(nlh); in crypto_report_alg()
247 nlmsg_cancel(skb, nlh); in crypto_report_alg()
251 nlmsg_end(skb, nlh); in crypto_report_alg()
307 info.nlmsg_seq = cb->nlh->nlmsg_seq; in crypto_dump_report()
327 static int crypto_update_alg(struct sk_buff *skb, struct nlmsghdr *nlh, in crypto_update_alg() argument
331 struct crypto_user_alg *p = nlmsg_data(nlh); in crypto_update_alg()
363 static int crypto_del_alg(struct sk_buff *skb, struct nlmsghdr *nlh, in crypto_del_alg() argument
[all …]
/Linux-v4.19/drivers/connector/
Dconnector.c80 struct nlmsghdr *nlh; in cn_netlink_send_mult() local
113 nlh = nlmsg_put(skb, 0, msg->seq, NLMSG_DONE, size, 0); in cn_netlink_send_mult()
114 if (!nlh) { in cn_netlink_send_mult()
119 data = nlmsg_data(nlh); in cn_netlink_send_mult()
146 struct nlmsghdr *nlh; in cn_call_callback() local
154 nlh = nlmsg_hdr(skb); in cn_call_callback()
155 if (nlh->nlmsg_len < NLMSG_HDRLEN + sizeof(struct cn_msg) + msg->len) in cn_call_callback()
185 struct nlmsghdr *nlh; in cn_rx_skb() local
189 nlh = nlmsg_hdr(skb); in cn_rx_skb()
190 len = nlmsg_len(nlh); in cn_rx_skb()
[all …]
/Linux-v4.19/net/core/
Dsock_diag.c19 static int (*inet_rcv_compat)(struct sk_buff *skb, struct nlmsghdr *nlh);
163 void sock_diag_register_inet_compat(int (*fn)(struct sk_buff *skb, struct nlmsghdr *nlh)) in sock_diag_register_inet_compat() argument
171 void sock_diag_unregister_inet_compat(int (*fn)(struct sk_buff *skb, struct nlmsghdr *nlh)) in sock_diag_unregister_inet_compat() argument
211 static int __sock_diag_cmd(struct sk_buff *skb, struct nlmsghdr *nlh) in __sock_diag_cmd() argument
214 struct sock_diag_req *req = nlmsg_data(nlh); in __sock_diag_cmd()
217 if (nlmsg_len(nlh) < sizeof(*req)) in __sock_diag_cmd()
231 else if (nlh->nlmsg_type == SOCK_DIAG_BY_FAMILY) in __sock_diag_cmd()
232 err = hndl->dump(skb, nlh); in __sock_diag_cmd()
233 else if (nlh->nlmsg_type == SOCK_DESTROY && hndl->destroy) in __sock_diag_cmd()
234 err = hndl->destroy(skb, nlh); in __sock_diag_cmd()
[all …]
/Linux-v4.19/samples/connector/
Ducon.c62 struct nlmsghdr *nlh; in netlink_send() local
70 nlh = (struct nlmsghdr *)buf; in netlink_send()
71 nlh->nlmsg_seq = seq++; in netlink_send()
72 nlh->nlmsg_pid = getpid(); in netlink_send()
73 nlh->nlmsg_type = NLMSG_DONE; in netlink_send()
74 nlh->nlmsg_len = size; in netlink_send()
75 nlh->nlmsg_flags = 0; in netlink_send()
77 m = NLMSG_DATA(nlh); in netlink_send()
84 err = send(s, nlh, size, 0); in netlink_send()
/Linux-v4.19/net/bridge/
Dbr_mdb.c169 struct nlmsghdr *nlh = NULL; in br_mdb_dump() local
186 nlh = nlmsg_put(skb, NETLINK_CB(cb->skb).portid, in br_mdb_dump()
187 cb->nlh->nlmsg_seq, RTM_GETMDB, in br_mdb_dump()
189 if (nlh == NULL) in br_mdb_dump()
192 bpm = nlmsg_data(nlh); in br_mdb_dump()
201 nlmsg_end(skb, nlh); in br_mdb_dump()
208 if (nlh) in br_mdb_dump()
209 nlmsg_end(skb, nlh); in br_mdb_dump()
220 struct nlmsghdr *nlh; in nlmsg_populate_mdb_fill() local
224 nlh = nlmsg_put(skb, pid, seq, type, sizeof(*bpm), 0); in nlmsg_populate_mdb_fill()
[all …]
/Linux-v4.19/tools/lib/bpf/
Dnlattr.c94 static inline int nlmsg_len(const struct nlmsghdr *nlh) in nlmsg_len() argument
96 return nlh->nlmsg_len - NLMSG_HDRLEN; in nlmsg_len()
150 int nla_dump_errormsg(struct nlmsghdr *nlh) in nla_dump_errormsg() argument
162 if (!(nlh->nlmsg_flags & NLM_F_ACK_TLVS)) in nla_dump_errormsg()
165 err = (struct nlmsgerr *)NLMSG_DATA(nlh); in nla_dump_errormsg()
169 if (!(nlh->nlmsg_flags & NLM_F_CAPPED)) in nla_dump_errormsg()
173 alen = nlh->nlmsg_len - hlen; in nla_dump_errormsg()
/Linux-v4.19/net/netlink/
Ddiag.c47 struct nlmsghdr *nlh; in sk_diag_fill() local
51 nlh = nlmsg_put(skb, portid, seq, SOCK_DIAG_BY_FAMILY, sizeof(*rep), in sk_diag_fill()
53 if (!nlh) in sk_diag_fill()
56 rep = nlmsg_data(nlh); in sk_diag_fill()
80 nlmsg_end(skb, nlh); in sk_diag_fill()
84 nlmsg_cancel(skb, nlh); in sk_diag_fill()
100 req = nlmsg_data(cb->nlh); in __netlink_diag_dump()
137 cb->nlh->nlmsg_seq, in __netlink_diag_dump()
167 cb->nlh->nlmsg_seq, in __netlink_diag_dump()
189 req = nlmsg_data(cb->nlh); in netlink_diag_dump()

1234567