Lines Matching refs:msg
112 static int put_driver_name_print_type(struct sk_buff *msg, const char *name, in put_driver_name_print_type() argument
115 if (nla_put_string(msg, RDMA_NLDEV_ATTR_DRIVER_STRING, name)) in put_driver_name_print_type()
118 nla_put_u8(msg, RDMA_NLDEV_ATTR_DRIVER_PRINT_TYPE, print_type)) in put_driver_name_print_type()
124 static int _rdma_nl_put_driver_u32(struct sk_buff *msg, const char *name, in _rdma_nl_put_driver_u32() argument
128 if (put_driver_name_print_type(msg, name, print_type)) in _rdma_nl_put_driver_u32()
130 if (nla_put_u32(msg, RDMA_NLDEV_ATTR_DRIVER_U32, value)) in _rdma_nl_put_driver_u32()
136 static int _rdma_nl_put_driver_u64(struct sk_buff *msg, const char *name, in _rdma_nl_put_driver_u64() argument
140 if (put_driver_name_print_type(msg, name, print_type)) in _rdma_nl_put_driver_u64()
142 if (nla_put_u64_64bit(msg, RDMA_NLDEV_ATTR_DRIVER_U64, value, in _rdma_nl_put_driver_u64()
149 int rdma_nl_put_driver_u32(struct sk_buff *msg, const char *name, u32 value) in rdma_nl_put_driver_u32() argument
151 return _rdma_nl_put_driver_u32(msg, name, RDMA_NLDEV_PRINT_TYPE_UNSPEC, in rdma_nl_put_driver_u32()
156 int rdma_nl_put_driver_u32_hex(struct sk_buff *msg, const char *name, in rdma_nl_put_driver_u32_hex() argument
159 return _rdma_nl_put_driver_u32(msg, name, RDMA_NLDEV_PRINT_TYPE_HEX, in rdma_nl_put_driver_u32_hex()
164 int rdma_nl_put_driver_u64(struct sk_buff *msg, const char *name, u64 value) in rdma_nl_put_driver_u64() argument
166 return _rdma_nl_put_driver_u64(msg, name, RDMA_NLDEV_PRINT_TYPE_UNSPEC, in rdma_nl_put_driver_u64()
171 int rdma_nl_put_driver_u64_hex(struct sk_buff *msg, const char *name, u64 value) in rdma_nl_put_driver_u64_hex() argument
173 return _rdma_nl_put_driver_u64(msg, name, RDMA_NLDEV_PRINT_TYPE_HEX, in rdma_nl_put_driver_u64_hex()
178 static int fill_nldev_handle(struct sk_buff *msg, struct ib_device *device) in fill_nldev_handle() argument
180 if (nla_put_u32(msg, RDMA_NLDEV_ATTR_DEV_INDEX, device->index)) in fill_nldev_handle()
182 if (nla_put_string(msg, RDMA_NLDEV_ATTR_DEV_NAME, device->name)) in fill_nldev_handle()
188 static int fill_dev_info(struct sk_buff *msg, struct ib_device *device) in fill_dev_info() argument
192 if (fill_nldev_handle(msg, device)) in fill_dev_info()
195 if (nla_put_u32(msg, RDMA_NLDEV_ATTR_PORT_INDEX, rdma_end_port(device))) in fill_dev_info()
199 if (nla_put_u64_64bit(msg, RDMA_NLDEV_ATTR_CAP_FLAGS, in fill_dev_info()
206 if (strlen(fw) && nla_put_string(msg, RDMA_NLDEV_ATTR_FW_VERSION, fw)) in fill_dev_info()
209 if (nla_put_u64_64bit(msg, RDMA_NLDEV_ATTR_NODE_GUID, in fill_dev_info()
213 if (nla_put_u64_64bit(msg, RDMA_NLDEV_ATTR_SYS_IMAGE_GUID, in fill_dev_info()
217 if (nla_put_u8(msg, RDMA_NLDEV_ATTR_DEV_NODE_TYPE, device->node_type)) in fill_dev_info()
222 static int fill_port_info(struct sk_buff *msg, in fill_port_info() argument
230 if (fill_nldev_handle(msg, device)) in fill_port_info()
233 if (nla_put_u32(msg, RDMA_NLDEV_ATTR_PORT_INDEX, port)) in fill_port_info()
242 if (nla_put_u64_64bit(msg, RDMA_NLDEV_ATTR_CAP_FLAGS, in fill_port_info()
246 if (nla_put_u64_64bit(msg, RDMA_NLDEV_ATTR_SUBNET_PREFIX, in fill_port_info()
249 if (nla_put_u32(msg, RDMA_NLDEV_ATTR_LID, attr.lid)) in fill_port_info()
251 if (nla_put_u32(msg, RDMA_NLDEV_ATTR_SM_LID, attr.sm_lid)) in fill_port_info()
253 if (nla_put_u8(msg, RDMA_NLDEV_ATTR_LMC, attr.lmc)) in fill_port_info()
256 if (nla_put_u8(msg, RDMA_NLDEV_ATTR_PORT_STATE, attr.state)) in fill_port_info()
258 if (nla_put_u8(msg, RDMA_NLDEV_ATTR_PORT_PHYS_STATE, attr.phys_state)) in fill_port_info()
265 ret = nla_put_u32(msg, in fill_port_info()
269 ret = nla_put_string(msg, in fill_port_info()
279 static int fill_res_info_entry(struct sk_buff *msg, in fill_res_info_entry() argument
284 entry_attr = nla_nest_start(msg, RDMA_NLDEV_ATTR_RES_SUMMARY_ENTRY); in fill_res_info_entry()
288 if (nla_put_string(msg, RDMA_NLDEV_ATTR_RES_SUMMARY_ENTRY_NAME, name)) in fill_res_info_entry()
290 if (nla_put_u64_64bit(msg, RDMA_NLDEV_ATTR_RES_SUMMARY_ENTRY_CURR, curr, in fill_res_info_entry()
294 nla_nest_end(msg, entry_attr); in fill_res_info_entry()
298 nla_nest_cancel(msg, entry_attr); in fill_res_info_entry()
302 static int fill_res_info(struct sk_buff *msg, struct ib_device *device) in fill_res_info() argument
316 if (fill_nldev_handle(msg, device)) in fill_res_info()
319 table_attr = nla_nest_start(msg, RDMA_NLDEV_ATTR_RES_SUMMARY); in fill_res_info()
327 ret = fill_res_info_entry(msg, names[i], curr); in fill_res_info()
332 nla_nest_end(msg, table_attr); in fill_res_info()
336 nla_nest_cancel(msg, table_attr); in fill_res_info()
340 static int fill_res_name_pid(struct sk_buff *msg, in fill_res_name_pid() argument
348 if (nla_put_string(msg, RDMA_NLDEV_ATTR_RES_KERN_NAME, in fill_res_name_pid()
352 if (nla_put_u32(msg, RDMA_NLDEV_ATTR_RES_PID, in fill_res_name_pid()
359 static int fill_res_qp_entry(struct sk_buff *msg, struct netlink_callback *cb, in fill_res_qp_entry() argument
376 entry_attr = nla_nest_start(msg, RDMA_NLDEV_ATTR_RES_QP_ENTRY); in fill_res_qp_entry()
382 nla_put_u32(msg, RDMA_NLDEV_ATTR_PORT_INDEX, qp_attr.port_num)) in fill_res_qp_entry()
385 if (nla_put_u32(msg, RDMA_NLDEV_ATTR_RES_LQPN, qp->qp_num)) in fill_res_qp_entry()
388 if (nla_put_u32(msg, RDMA_NLDEV_ATTR_RES_RQPN, in fill_res_qp_entry()
391 if (nla_put_u32(msg, RDMA_NLDEV_ATTR_RES_RQ_PSN, in fill_res_qp_entry()
396 if (nla_put_u32(msg, RDMA_NLDEV_ATTR_RES_SQ_PSN, qp_attr.sq_psn)) in fill_res_qp_entry()
401 if (nla_put_u8(msg, RDMA_NLDEV_ATTR_RES_PATH_MIG_STATE, in fill_res_qp_entry()
405 if (nla_put_u8(msg, RDMA_NLDEV_ATTR_RES_TYPE, qp->qp_type)) in fill_res_qp_entry()
407 if (nla_put_u8(msg, RDMA_NLDEV_ATTR_RES_STATE, qp_attr.qp_state)) in fill_res_qp_entry()
410 if (fill_res_name_pid(msg, res)) in fill_res_qp_entry()
413 if (resroot->fill_res_entry(msg, res)) in fill_res_qp_entry()
416 nla_nest_end(msg, entry_attr); in fill_res_qp_entry()
420 nla_nest_cancel(msg, entry_attr); in fill_res_qp_entry()
425 static int fill_res_cm_id_entry(struct sk_buff *msg, in fill_res_cm_id_entry() argument
438 entry_attr = nla_nest_start(msg, RDMA_NLDEV_ATTR_RES_CM_ID_ENTRY); in fill_res_cm_id_entry()
443 nla_put_u32(msg, RDMA_NLDEV_ATTR_PORT_INDEX, cm_id->port_num)) in fill_res_cm_id_entry()
447 if (nla_put_u32(msg, RDMA_NLDEV_ATTR_RES_LQPN, id_priv->qp_num)) in fill_res_cm_id_entry()
449 if (nla_put_u8(msg, RDMA_NLDEV_ATTR_RES_TYPE, cm_id->qp_type)) in fill_res_cm_id_entry()
453 if (nla_put_u32(msg, RDMA_NLDEV_ATTR_RES_PS, cm_id->ps)) in fill_res_cm_id_entry()
456 if (nla_put_u8(msg, RDMA_NLDEV_ATTR_RES_STATE, id_priv->state)) in fill_res_cm_id_entry()
460 nla_put(msg, RDMA_NLDEV_ATTR_RES_SRC_ADDR, in fill_res_cm_id_entry()
465 nla_put(msg, RDMA_NLDEV_ATTR_RES_DST_ADDR, in fill_res_cm_id_entry()
470 if (fill_res_name_pid(msg, res)) in fill_res_cm_id_entry()
473 if (resroot->fill_res_entry(msg, res)) in fill_res_cm_id_entry()
476 nla_nest_end(msg, entry_attr); in fill_res_cm_id_entry()
480 nla_nest_cancel(msg, entry_attr); in fill_res_cm_id_entry()
485 static int fill_res_cq_entry(struct sk_buff *msg, struct netlink_callback *cb, in fill_res_cq_entry() argument
492 entry_attr = nla_nest_start(msg, RDMA_NLDEV_ATTR_RES_CQ_ENTRY); in fill_res_cq_entry()
496 if (nla_put_u32(msg, RDMA_NLDEV_ATTR_RES_CQE, cq->cqe)) in fill_res_cq_entry()
498 if (nla_put_u64_64bit(msg, RDMA_NLDEV_ATTR_RES_USECNT, in fill_res_cq_entry()
504 nla_put_u8(msg, RDMA_NLDEV_ATTR_RES_POLL_CTX, cq->poll_ctx)) in fill_res_cq_entry()
507 if (fill_res_name_pid(msg, res)) in fill_res_cq_entry()
510 if (resroot->fill_res_entry(msg, res)) in fill_res_cq_entry()
513 nla_nest_end(msg, entry_attr); in fill_res_cq_entry()
517 nla_nest_cancel(msg, entry_attr); in fill_res_cq_entry()
522 static int fill_res_mr_entry(struct sk_buff *msg, struct netlink_callback *cb, in fill_res_mr_entry() argument
529 entry_attr = nla_nest_start(msg, RDMA_NLDEV_ATTR_RES_MR_ENTRY); in fill_res_mr_entry()
534 if (nla_put_u32(msg, RDMA_NLDEV_ATTR_RES_RKEY, mr->rkey)) in fill_res_mr_entry()
536 if (nla_put_u32(msg, RDMA_NLDEV_ATTR_RES_LKEY, mr->lkey)) in fill_res_mr_entry()
540 if (nla_put_u64_64bit(msg, RDMA_NLDEV_ATTR_RES_MRLEN, mr->length, in fill_res_mr_entry()
544 if (fill_res_name_pid(msg, res)) in fill_res_mr_entry()
547 if (resroot->fill_res_entry(msg, res)) in fill_res_mr_entry()
550 nla_nest_end(msg, entry_attr); in fill_res_mr_entry()
554 nla_nest_cancel(msg, entry_attr); in fill_res_mr_entry()
559 static int fill_res_pd_entry(struct sk_buff *msg, struct netlink_callback *cb, in fill_res_pd_entry() argument
566 entry_attr = nla_nest_start(msg, RDMA_NLDEV_ATTR_RES_PD_ENTRY); in fill_res_pd_entry()
571 if (nla_put_u32(msg, RDMA_NLDEV_ATTR_RES_LOCAL_DMA_LKEY, in fill_res_pd_entry()
575 nla_put_u32(msg, RDMA_NLDEV_ATTR_RES_UNSAFE_GLOBAL_RKEY, in fill_res_pd_entry()
579 if (nla_put_u64_64bit(msg, RDMA_NLDEV_ATTR_RES_USECNT, in fill_res_pd_entry()
583 nla_put_u32(msg, RDMA_NLDEV_ATTR_RES_UNSAFE_GLOBAL_RKEY, in fill_res_pd_entry()
587 if (fill_res_name_pid(msg, res)) in fill_res_pd_entry()
590 if (resroot->fill_res_entry(msg, res)) in fill_res_pd_entry()
593 nla_nest_end(msg, entry_attr); in fill_res_pd_entry()
597 nla_nest_cancel(msg, entry_attr); in fill_res_pd_entry()
607 struct sk_buff *msg; in nldev_get_doit() local
622 msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); in nldev_get_doit()
623 if (!msg) { in nldev_get_doit()
628 nlh = nlmsg_put(msg, NETLINK_CB(skb).portid, nlh->nlmsg_seq, in nldev_get_doit()
632 err = fill_dev_info(msg, device); in nldev_get_doit()
636 nlmsg_end(msg, nlh); in nldev_get_doit()
639 return rdma_nl_unicast(msg, NETLINK_CB(skb).portid); in nldev_get_doit()
642 nlmsg_free(msg); in nldev_get_doit()
690 struct sk_buff *msg; in nldev_port_get_doit() local
713 msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); in nldev_port_get_doit()
714 if (!msg) { in nldev_port_get_doit()
719 nlh = nlmsg_put(msg, NETLINK_CB(skb).portid, nlh->nlmsg_seq, in nldev_port_get_doit()
723 err = fill_port_info(msg, device, port, sock_net(skb->sk)); in nldev_port_get_doit()
727 nlmsg_end(msg, nlh); in nldev_port_get_doit()
730 return rdma_nl_unicast(msg, NETLINK_CB(skb).portid); in nldev_port_get_doit()
733 nlmsg_free(msg); in nldev_port_get_doit()
802 struct sk_buff *msg; in nldev_res_get_doit() local
816 msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); in nldev_res_get_doit()
817 if (!msg) { in nldev_res_get_doit()
822 nlh = nlmsg_put(msg, NETLINK_CB(skb).portid, nlh->nlmsg_seq, in nldev_res_get_doit()
826 ret = fill_res_info(msg, device); in nldev_res_get_doit()
830 nlmsg_end(msg, nlh); in nldev_res_get_doit()
832 return rdma_nl_unicast(msg, NETLINK_CB(skb).portid); in nldev_res_get_doit()
835 nlmsg_free(msg); in nldev_res_get_doit()
877 int (*fill_res_func)(struct sk_buff *msg, struct netlink_callback *cb,