Lines Matching refs:nlh
209 static int inet_diag_parse_attrs(const struct nlmsghdr *nlh, int hdrlen, in inet_diag_parse_attrs() argument
215 nlmsg_for_each_attr(nla, nlh, hdrlen, remaining) { in inet_diag_parse_attrs()
247 struct nlmsghdr *nlh; in inet_sk_diag_fill() local
262 nlh = nlmsg_put(skb, NETLINK_CB(cb->skb).portid, cb->nlh->nlmsg_seq, in inet_sk_diag_fill()
263 cb->nlh->nlmsg_type, sizeof(*r), nlmsg_flags); in inet_sk_diag_fill()
264 if (!nlh) in inet_sk_diag_fill()
267 r = nlmsg_data(nlh); in inet_sk_diag_fill()
378 bool first_nlmsg = ((unsigned char *)nlh == skb->data); in inet_sk_diag_fill()
384 msg_len = skb_tail_pointer(skb) - (unsigned char *)nlh; in inet_sk_diag_fill()
416 nlmsg_end(skb, nlh); in inet_sk_diag_fill()
420 nlmsg_cancel(skb, nlh); in inet_sk_diag_fill()
432 struct nlmsghdr *nlh; in inet_twsk_diag_fill() local
435 nlh = nlmsg_put(skb, NETLINK_CB(cb->skb).portid, in inet_twsk_diag_fill()
436 cb->nlh->nlmsg_seq, cb->nlh->nlmsg_type, in inet_twsk_diag_fill()
438 if (!nlh) in inet_twsk_diag_fill()
441 r = nlmsg_data(nlh); in inet_twsk_diag_fill()
458 nlmsg_cancel(skb, nlh); in inet_twsk_diag_fill()
462 nlmsg_end(skb, nlh); in inet_twsk_diag_fill()
472 struct nlmsghdr *nlh; in inet_req_diag_fill() local
475 nlh = nlmsg_put(skb, NETLINK_CB(cb->skb).portid, cb->nlh->nlmsg_seq, in inet_req_diag_fill()
476 cb->nlh->nlmsg_type, sizeof(*r), nlmsg_flags); in inet_req_diag_fill()
477 if (!nlh) in inet_req_diag_fill()
480 r = nlmsg_data(nlh); in inet_req_diag_fill()
498 nlmsg_cancel(skb, nlh); in inet_req_diag_fill()
502 nlmsg_end(skb, nlh); in inet_req_diag_fill()
603 const struct nlmsghdr *nlh, in inet_diag_cmd_exact() argument
612 err = inet_diag_parse_attrs(nlh, hdrlen, dump_data.req_nlas); in inet_diag_cmd_exact()
624 .nlh = nlh, in inet_diag_cmd_exact()
1302 return __inet_diag_dump(skb, cb, nlmsg_data(cb->nlh)); in inet_diag_dump()
1307 const struct nlmsghdr *nlh = cb->nlh; in __inet_diag_dump_start() local
1317 err = inet_diag_parse_attrs(nlh, hdrlen, cb_data->req_nlas); in __inet_diag_dump_start()
1382 struct inet_diag_req *rc = nlmsg_data(cb->nlh); in inet_diag_dump_compat()
1386 req.sdiag_protocol = inet_diag_type2proto(cb->nlh->nlmsg_type); in inet_diag_dump_compat()
1396 const struct nlmsghdr *nlh) in inet_diag_get_exact_compat() argument
1398 struct inet_diag_req *rc = nlmsg_data(nlh); in inet_diag_get_exact_compat()
1402 req.sdiag_protocol = inet_diag_type2proto(nlh->nlmsg_type); in inet_diag_get_exact_compat()
1408 return inet_diag_cmd_exact(SOCK_DIAG_BY_FAMILY, in_skb, nlh, in inet_diag_get_exact_compat()
1412 static int inet_diag_rcv_msg_compat(struct sk_buff *skb, struct nlmsghdr *nlh) in inet_diag_rcv_msg_compat() argument
1417 if (nlh->nlmsg_type >= INET_DIAG_GETSOCK_MAX || in inet_diag_rcv_msg_compat()
1418 nlmsg_len(nlh) < hdrlen) in inet_diag_rcv_msg_compat()
1421 if (nlh->nlmsg_flags & NLM_F_DUMP) { in inet_diag_rcv_msg_compat()
1427 return netlink_dump_start(net->diag_nlsk, skb, nlh, &c); in inet_diag_rcv_msg_compat()
1430 return inet_diag_get_exact_compat(skb, nlh); in inet_diag_rcv_msg_compat()
1459 struct nlmsghdr *nlh; in inet_diag_handler_get_info() local
1465 nlh = nlmsg_put(skb, 0, 0, SOCK_DIAG_BY_FAMILY, sizeof(*r), 0); in inet_diag_handler_get_info()
1466 if (!nlh) in inet_diag_handler_get_info()
1469 r = nlmsg_data(nlh); in inet_diag_handler_get_info()
1477 nlmsg_cancel(skb, nlh); in inet_diag_handler_get_info()
1483 nlmsg_cancel(skb, nlh); in inet_diag_handler_get_info()
1498 nlmsg_end(skb, nlh); in inet_diag_handler_get_info()