1 /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
2 /* Do not edit directly, auto-generated from: */
3 /* Documentation/netlink/specs/devlink.yaml */
4 /* YNL-GEN user header */
6 #ifndef _LINUX_DEVLINK_GEN_H
7 #define _LINUX_DEVLINK_GEN_H
11 #include <linux/types.h>
12 #include <linux/devlink.h>
16 extern const struct ynl_family ynl_devlink_family;
19 const char *devlink_op_str(int op);
20 const char *devlink_sb_pool_type_str(enum devlink_sb_pool_type value);
22 /* Common nested types */
23 struct devlink_dl_info_version {
25 __u32 info_version_name_len;
26 __u32 info_version_value_len;
29 char *info_version_name;
30 char *info_version_value;
33 struct devlink_dl_reload_stats_entry {
35 __u32 reload_stats_limit:1;
36 __u32 reload_stats_value:1;
39 __u8 reload_stats_limit;
40 __u32 reload_stats_value;
43 struct devlink_dl_reload_act_stats {
44 unsigned int n_reload_stats_entry;
45 struct devlink_dl_reload_stats_entry *reload_stats_entry;
48 struct devlink_dl_reload_act_info {
50 __u32 reload_action:1;
54 unsigned int n_reload_action_stats;
55 struct devlink_dl_reload_act_stats *reload_action_stats;
58 struct devlink_dl_reload_stats {
59 unsigned int n_reload_action_info;
60 struct devlink_dl_reload_act_info *reload_action_info;
63 struct devlink_dl_dev_stats {
66 __u32 remote_reload_stats:1;
69 struct devlink_dl_reload_stats reload_stats;
70 struct devlink_dl_reload_stats remote_reload_stats;
73 /* ============== DEVLINK_CMD_GET ============== */
74 /* DEVLINK_CMD_GET - do */
75 struct devlink_get_req {
85 static inline struct devlink_get_req *devlink_get_req_alloc(void)
87 return calloc(1, sizeof(struct devlink_get_req));
89 void devlink_get_req_free(struct devlink_get_req *req);
92 devlink_get_req_set_bus_name(struct devlink_get_req *req, const char *bus_name)
95 req->_present.bus_name_len = strlen(bus_name);
96 req->bus_name = malloc(req->_present.bus_name_len + 1);
97 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
98 req->bus_name[req->_present.bus_name_len] = 0;
101 devlink_get_req_set_dev_name(struct devlink_get_req *req, const char *dev_name)
104 req->_present.dev_name_len = strlen(dev_name);
105 req->dev_name = malloc(req->_present.dev_name_len + 1);
106 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
107 req->dev_name[req->_present.dev_name_len] = 0;
110 struct devlink_get_rsp {
114 __u32 reload_failed:1;
115 __u32 reload_action:1;
123 struct devlink_dl_dev_stats dev_stats;
126 void devlink_get_rsp_free(struct devlink_get_rsp *rsp);
129 * Get devlink instances.
131 struct devlink_get_rsp *
132 devlink_get(struct ynl_sock *ys, struct devlink_get_req *req);
134 /* DEVLINK_CMD_GET - dump */
135 struct devlink_get_list {
136 struct devlink_get_list *next;
137 struct devlink_get_rsp obj __attribute__ ((aligned (8)));
140 void devlink_get_list_free(struct devlink_get_list *rsp);
142 struct devlink_get_list *devlink_get_dump(struct ynl_sock *ys);
144 /* ============== DEVLINK_CMD_PORT_GET ============== */
145 /* DEVLINK_CMD_PORT_GET - do */
146 struct devlink_port_get_req {
158 static inline struct devlink_port_get_req *devlink_port_get_req_alloc(void)
160 return calloc(1, sizeof(struct devlink_port_get_req));
162 void devlink_port_get_req_free(struct devlink_port_get_req *req);
165 devlink_port_get_req_set_bus_name(struct devlink_port_get_req *req,
166 const char *bus_name)
169 req->_present.bus_name_len = strlen(bus_name);
170 req->bus_name = malloc(req->_present.bus_name_len + 1);
171 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
172 req->bus_name[req->_present.bus_name_len] = 0;
175 devlink_port_get_req_set_dev_name(struct devlink_port_get_req *req,
176 const char *dev_name)
179 req->_present.dev_name_len = strlen(dev_name);
180 req->dev_name = malloc(req->_present.dev_name_len + 1);
181 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
182 req->dev_name[req->_present.dev_name_len] = 0;
185 devlink_port_get_req_set_port_index(struct devlink_port_get_req *req,
188 req->_present.port_index = 1;
189 req->port_index = port_index;
192 struct devlink_port_get_rsp {
204 void devlink_port_get_rsp_free(struct devlink_port_get_rsp *rsp);
207 * Get devlink port instances.
209 struct devlink_port_get_rsp *
210 devlink_port_get(struct ynl_sock *ys, struct devlink_port_get_req *req);
212 /* DEVLINK_CMD_PORT_GET - dump */
213 struct devlink_port_get_req_dump {
223 static inline struct devlink_port_get_req_dump *
224 devlink_port_get_req_dump_alloc(void)
226 return calloc(1, sizeof(struct devlink_port_get_req_dump));
228 void devlink_port_get_req_dump_free(struct devlink_port_get_req_dump *req);
231 devlink_port_get_req_dump_set_bus_name(struct devlink_port_get_req_dump *req,
232 const char *bus_name)
235 req->_present.bus_name_len = strlen(bus_name);
236 req->bus_name = malloc(req->_present.bus_name_len + 1);
237 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
238 req->bus_name[req->_present.bus_name_len] = 0;
241 devlink_port_get_req_dump_set_dev_name(struct devlink_port_get_req_dump *req,
242 const char *dev_name)
245 req->_present.dev_name_len = strlen(dev_name);
246 req->dev_name = malloc(req->_present.dev_name_len + 1);
247 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
248 req->dev_name[req->_present.dev_name_len] = 0;
251 struct devlink_port_get_rsp_dump {
263 struct devlink_port_get_rsp_list {
264 struct devlink_port_get_rsp_list *next;
265 struct devlink_port_get_rsp_dump obj __attribute__ ((aligned (8)));
268 void devlink_port_get_rsp_list_free(struct devlink_port_get_rsp_list *rsp);
270 struct devlink_port_get_rsp_list *
271 devlink_port_get_dump(struct ynl_sock *ys,
272 struct devlink_port_get_req_dump *req);
274 /* ============== DEVLINK_CMD_SB_GET ============== */
275 /* DEVLINK_CMD_SB_GET - do */
276 struct devlink_sb_get_req {
288 static inline struct devlink_sb_get_req *devlink_sb_get_req_alloc(void)
290 return calloc(1, sizeof(struct devlink_sb_get_req));
292 void devlink_sb_get_req_free(struct devlink_sb_get_req *req);
295 devlink_sb_get_req_set_bus_name(struct devlink_sb_get_req *req,
296 const char *bus_name)
299 req->_present.bus_name_len = strlen(bus_name);
300 req->bus_name = malloc(req->_present.bus_name_len + 1);
301 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
302 req->bus_name[req->_present.bus_name_len] = 0;
305 devlink_sb_get_req_set_dev_name(struct devlink_sb_get_req *req,
306 const char *dev_name)
309 req->_present.dev_name_len = strlen(dev_name);
310 req->dev_name = malloc(req->_present.dev_name_len + 1);
311 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
312 req->dev_name[req->_present.dev_name_len] = 0;
315 devlink_sb_get_req_set_sb_index(struct devlink_sb_get_req *req, __u32 sb_index)
317 req->_present.sb_index = 1;
318 req->sb_index = sb_index;
321 struct devlink_sb_get_rsp {
333 void devlink_sb_get_rsp_free(struct devlink_sb_get_rsp *rsp);
336 * Get shared buffer instances.
338 struct devlink_sb_get_rsp *
339 devlink_sb_get(struct ynl_sock *ys, struct devlink_sb_get_req *req);
341 /* DEVLINK_CMD_SB_GET - dump */
342 struct devlink_sb_get_req_dump {
352 static inline struct devlink_sb_get_req_dump *
353 devlink_sb_get_req_dump_alloc(void)
355 return calloc(1, sizeof(struct devlink_sb_get_req_dump));
357 void devlink_sb_get_req_dump_free(struct devlink_sb_get_req_dump *req);
360 devlink_sb_get_req_dump_set_bus_name(struct devlink_sb_get_req_dump *req,
361 const char *bus_name)
364 req->_present.bus_name_len = strlen(bus_name);
365 req->bus_name = malloc(req->_present.bus_name_len + 1);
366 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
367 req->bus_name[req->_present.bus_name_len] = 0;
370 devlink_sb_get_req_dump_set_dev_name(struct devlink_sb_get_req_dump *req,
371 const char *dev_name)
374 req->_present.dev_name_len = strlen(dev_name);
375 req->dev_name = malloc(req->_present.dev_name_len + 1);
376 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
377 req->dev_name[req->_present.dev_name_len] = 0;
380 struct devlink_sb_get_list {
381 struct devlink_sb_get_list *next;
382 struct devlink_sb_get_rsp obj __attribute__ ((aligned (8)));
385 void devlink_sb_get_list_free(struct devlink_sb_get_list *rsp);
387 struct devlink_sb_get_list *
388 devlink_sb_get_dump(struct ynl_sock *ys, struct devlink_sb_get_req_dump *req);
390 /* ============== DEVLINK_CMD_SB_POOL_GET ============== */
391 /* DEVLINK_CMD_SB_POOL_GET - do */
392 struct devlink_sb_pool_get_req {
397 __u32 sb_pool_index:1;
406 static inline struct devlink_sb_pool_get_req *
407 devlink_sb_pool_get_req_alloc(void)
409 return calloc(1, sizeof(struct devlink_sb_pool_get_req));
411 void devlink_sb_pool_get_req_free(struct devlink_sb_pool_get_req *req);
414 devlink_sb_pool_get_req_set_bus_name(struct devlink_sb_pool_get_req *req,
415 const char *bus_name)
418 req->_present.bus_name_len = strlen(bus_name);
419 req->bus_name = malloc(req->_present.bus_name_len + 1);
420 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
421 req->bus_name[req->_present.bus_name_len] = 0;
424 devlink_sb_pool_get_req_set_dev_name(struct devlink_sb_pool_get_req *req,
425 const char *dev_name)
428 req->_present.dev_name_len = strlen(dev_name);
429 req->dev_name = malloc(req->_present.dev_name_len + 1);
430 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
431 req->dev_name[req->_present.dev_name_len] = 0;
434 devlink_sb_pool_get_req_set_sb_index(struct devlink_sb_pool_get_req *req,
437 req->_present.sb_index = 1;
438 req->sb_index = sb_index;
441 devlink_sb_pool_get_req_set_sb_pool_index(struct devlink_sb_pool_get_req *req,
444 req->_present.sb_pool_index = 1;
445 req->sb_pool_index = sb_pool_index;
448 struct devlink_sb_pool_get_rsp {
453 __u32 sb_pool_index:1;
462 void devlink_sb_pool_get_rsp_free(struct devlink_sb_pool_get_rsp *rsp);
465 * Get shared buffer pool instances.
467 struct devlink_sb_pool_get_rsp *
468 devlink_sb_pool_get(struct ynl_sock *ys, struct devlink_sb_pool_get_req *req);
470 /* DEVLINK_CMD_SB_POOL_GET - dump */
471 struct devlink_sb_pool_get_req_dump {
481 static inline struct devlink_sb_pool_get_req_dump *
482 devlink_sb_pool_get_req_dump_alloc(void)
484 return calloc(1, sizeof(struct devlink_sb_pool_get_req_dump));
487 devlink_sb_pool_get_req_dump_free(struct devlink_sb_pool_get_req_dump *req);
490 devlink_sb_pool_get_req_dump_set_bus_name(struct devlink_sb_pool_get_req_dump *req,
491 const char *bus_name)
494 req->_present.bus_name_len = strlen(bus_name);
495 req->bus_name = malloc(req->_present.bus_name_len + 1);
496 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
497 req->bus_name[req->_present.bus_name_len] = 0;
500 devlink_sb_pool_get_req_dump_set_dev_name(struct devlink_sb_pool_get_req_dump *req,
501 const char *dev_name)
504 req->_present.dev_name_len = strlen(dev_name);
505 req->dev_name = malloc(req->_present.dev_name_len + 1);
506 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
507 req->dev_name[req->_present.dev_name_len] = 0;
510 struct devlink_sb_pool_get_list {
511 struct devlink_sb_pool_get_list *next;
512 struct devlink_sb_pool_get_rsp obj __attribute__ ((aligned (8)));
515 void devlink_sb_pool_get_list_free(struct devlink_sb_pool_get_list *rsp);
517 struct devlink_sb_pool_get_list *
518 devlink_sb_pool_get_dump(struct ynl_sock *ys,
519 struct devlink_sb_pool_get_req_dump *req);
521 /* ============== DEVLINK_CMD_SB_PORT_POOL_GET ============== */
522 /* DEVLINK_CMD_SB_PORT_POOL_GET - do */
523 struct devlink_sb_port_pool_get_req {
529 __u32 sb_pool_index:1;
539 static inline struct devlink_sb_port_pool_get_req *
540 devlink_sb_port_pool_get_req_alloc(void)
542 return calloc(1, sizeof(struct devlink_sb_port_pool_get_req));
545 devlink_sb_port_pool_get_req_free(struct devlink_sb_port_pool_get_req *req);
548 devlink_sb_port_pool_get_req_set_bus_name(struct devlink_sb_port_pool_get_req *req,
549 const char *bus_name)
552 req->_present.bus_name_len = strlen(bus_name);
553 req->bus_name = malloc(req->_present.bus_name_len + 1);
554 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
555 req->bus_name[req->_present.bus_name_len] = 0;
558 devlink_sb_port_pool_get_req_set_dev_name(struct devlink_sb_port_pool_get_req *req,
559 const char *dev_name)
562 req->_present.dev_name_len = strlen(dev_name);
563 req->dev_name = malloc(req->_present.dev_name_len + 1);
564 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
565 req->dev_name[req->_present.dev_name_len] = 0;
568 devlink_sb_port_pool_get_req_set_port_index(struct devlink_sb_port_pool_get_req *req,
571 req->_present.port_index = 1;
572 req->port_index = port_index;
575 devlink_sb_port_pool_get_req_set_sb_index(struct devlink_sb_port_pool_get_req *req,
578 req->_present.sb_index = 1;
579 req->sb_index = sb_index;
582 devlink_sb_port_pool_get_req_set_sb_pool_index(struct devlink_sb_port_pool_get_req *req,
585 req->_present.sb_pool_index = 1;
586 req->sb_pool_index = sb_pool_index;
589 struct devlink_sb_port_pool_get_rsp {
595 __u32 sb_pool_index:1;
606 devlink_sb_port_pool_get_rsp_free(struct devlink_sb_port_pool_get_rsp *rsp);
609 * Get shared buffer port-pool combinations and threshold.
611 struct devlink_sb_port_pool_get_rsp *
612 devlink_sb_port_pool_get(struct ynl_sock *ys,
613 struct devlink_sb_port_pool_get_req *req);
615 /* DEVLINK_CMD_SB_PORT_POOL_GET - dump */
616 struct devlink_sb_port_pool_get_req_dump {
626 static inline struct devlink_sb_port_pool_get_req_dump *
627 devlink_sb_port_pool_get_req_dump_alloc(void)
629 return calloc(1, sizeof(struct devlink_sb_port_pool_get_req_dump));
632 devlink_sb_port_pool_get_req_dump_free(struct devlink_sb_port_pool_get_req_dump *req);
635 devlink_sb_port_pool_get_req_dump_set_bus_name(struct devlink_sb_port_pool_get_req_dump *req,
636 const char *bus_name)
639 req->_present.bus_name_len = strlen(bus_name);
640 req->bus_name = malloc(req->_present.bus_name_len + 1);
641 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
642 req->bus_name[req->_present.bus_name_len] = 0;
645 devlink_sb_port_pool_get_req_dump_set_dev_name(struct devlink_sb_port_pool_get_req_dump *req,
646 const char *dev_name)
649 req->_present.dev_name_len = strlen(dev_name);
650 req->dev_name = malloc(req->_present.dev_name_len + 1);
651 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
652 req->dev_name[req->_present.dev_name_len] = 0;
655 struct devlink_sb_port_pool_get_list {
656 struct devlink_sb_port_pool_get_list *next;
657 struct devlink_sb_port_pool_get_rsp obj __attribute__ ((aligned (8)));
661 devlink_sb_port_pool_get_list_free(struct devlink_sb_port_pool_get_list *rsp);
663 struct devlink_sb_port_pool_get_list *
664 devlink_sb_port_pool_get_dump(struct ynl_sock *ys,
665 struct devlink_sb_port_pool_get_req_dump *req);
667 /* ============== DEVLINK_CMD_SB_TC_POOL_BIND_GET ============== */
668 /* DEVLINK_CMD_SB_TC_POOL_BIND_GET - do */
669 struct devlink_sb_tc_pool_bind_get_req {
675 __u32 sb_pool_type:1;
683 enum devlink_sb_pool_type sb_pool_type;
687 static inline struct devlink_sb_tc_pool_bind_get_req *
688 devlink_sb_tc_pool_bind_get_req_alloc(void)
690 return calloc(1, sizeof(struct devlink_sb_tc_pool_bind_get_req));
693 devlink_sb_tc_pool_bind_get_req_free(struct devlink_sb_tc_pool_bind_get_req *req);
696 devlink_sb_tc_pool_bind_get_req_set_bus_name(struct devlink_sb_tc_pool_bind_get_req *req,
697 const char *bus_name)
700 req->_present.bus_name_len = strlen(bus_name);
701 req->bus_name = malloc(req->_present.bus_name_len + 1);
702 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
703 req->bus_name[req->_present.bus_name_len] = 0;
706 devlink_sb_tc_pool_bind_get_req_set_dev_name(struct devlink_sb_tc_pool_bind_get_req *req,
707 const char *dev_name)
710 req->_present.dev_name_len = strlen(dev_name);
711 req->dev_name = malloc(req->_present.dev_name_len + 1);
712 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
713 req->dev_name[req->_present.dev_name_len] = 0;
716 devlink_sb_tc_pool_bind_get_req_set_port_index(struct devlink_sb_tc_pool_bind_get_req *req,
719 req->_present.port_index = 1;
720 req->port_index = port_index;
723 devlink_sb_tc_pool_bind_get_req_set_sb_index(struct devlink_sb_tc_pool_bind_get_req *req,
726 req->_present.sb_index = 1;
727 req->sb_index = sb_index;
730 devlink_sb_tc_pool_bind_get_req_set_sb_pool_type(struct devlink_sb_tc_pool_bind_get_req *req,
731 enum devlink_sb_pool_type sb_pool_type)
733 req->_present.sb_pool_type = 1;
734 req->sb_pool_type = sb_pool_type;
737 devlink_sb_tc_pool_bind_get_req_set_sb_tc_index(struct devlink_sb_tc_pool_bind_get_req *req,
740 req->_present.sb_tc_index = 1;
741 req->sb_tc_index = sb_tc_index;
744 struct devlink_sb_tc_pool_bind_get_rsp {
750 __u32 sb_pool_type:1;
758 enum devlink_sb_pool_type sb_pool_type;
763 devlink_sb_tc_pool_bind_get_rsp_free(struct devlink_sb_tc_pool_bind_get_rsp *rsp);
766 * Get shared buffer port-TC to pool bindings and threshold.
768 struct devlink_sb_tc_pool_bind_get_rsp *
769 devlink_sb_tc_pool_bind_get(struct ynl_sock *ys,
770 struct devlink_sb_tc_pool_bind_get_req *req);
772 /* DEVLINK_CMD_SB_TC_POOL_BIND_GET - dump */
773 struct devlink_sb_tc_pool_bind_get_req_dump {
783 static inline struct devlink_sb_tc_pool_bind_get_req_dump *
784 devlink_sb_tc_pool_bind_get_req_dump_alloc(void)
786 return calloc(1, sizeof(struct devlink_sb_tc_pool_bind_get_req_dump));
789 devlink_sb_tc_pool_bind_get_req_dump_free(struct devlink_sb_tc_pool_bind_get_req_dump *req);
792 devlink_sb_tc_pool_bind_get_req_dump_set_bus_name(struct devlink_sb_tc_pool_bind_get_req_dump *req,
793 const char *bus_name)
796 req->_present.bus_name_len = strlen(bus_name);
797 req->bus_name = malloc(req->_present.bus_name_len + 1);
798 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
799 req->bus_name[req->_present.bus_name_len] = 0;
802 devlink_sb_tc_pool_bind_get_req_dump_set_dev_name(struct devlink_sb_tc_pool_bind_get_req_dump *req,
803 const char *dev_name)
806 req->_present.dev_name_len = strlen(dev_name);
807 req->dev_name = malloc(req->_present.dev_name_len + 1);
808 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
809 req->dev_name[req->_present.dev_name_len] = 0;
812 struct devlink_sb_tc_pool_bind_get_list {
813 struct devlink_sb_tc_pool_bind_get_list *next;
814 struct devlink_sb_tc_pool_bind_get_rsp obj __attribute__ ((aligned (8)));
818 devlink_sb_tc_pool_bind_get_list_free(struct devlink_sb_tc_pool_bind_get_list *rsp);
820 struct devlink_sb_tc_pool_bind_get_list *
821 devlink_sb_tc_pool_bind_get_dump(struct ynl_sock *ys,
822 struct devlink_sb_tc_pool_bind_get_req_dump *req);
824 /* ============== DEVLINK_CMD_PARAM_GET ============== */
825 /* DEVLINK_CMD_PARAM_GET - do */
826 struct devlink_param_get_req {
830 __u32 param_name_len;
838 static inline struct devlink_param_get_req *devlink_param_get_req_alloc(void)
840 return calloc(1, sizeof(struct devlink_param_get_req));
842 void devlink_param_get_req_free(struct devlink_param_get_req *req);
845 devlink_param_get_req_set_bus_name(struct devlink_param_get_req *req,
846 const char *bus_name)
849 req->_present.bus_name_len = strlen(bus_name);
850 req->bus_name = malloc(req->_present.bus_name_len + 1);
851 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
852 req->bus_name[req->_present.bus_name_len] = 0;
855 devlink_param_get_req_set_dev_name(struct devlink_param_get_req *req,
856 const char *dev_name)
859 req->_present.dev_name_len = strlen(dev_name);
860 req->dev_name = malloc(req->_present.dev_name_len + 1);
861 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
862 req->dev_name[req->_present.dev_name_len] = 0;
865 devlink_param_get_req_set_param_name(struct devlink_param_get_req *req,
866 const char *param_name)
868 free(req->param_name);
869 req->_present.param_name_len = strlen(param_name);
870 req->param_name = malloc(req->_present.param_name_len + 1);
871 memcpy(req->param_name, param_name, req->_present.param_name_len);
872 req->param_name[req->_present.param_name_len] = 0;
875 struct devlink_param_get_rsp {
879 __u32 param_name_len;
887 void devlink_param_get_rsp_free(struct devlink_param_get_rsp *rsp);
890 * Get param instances.
892 struct devlink_param_get_rsp *
893 devlink_param_get(struct ynl_sock *ys, struct devlink_param_get_req *req);
895 /* DEVLINK_CMD_PARAM_GET - dump */
896 struct devlink_param_get_req_dump {
906 static inline struct devlink_param_get_req_dump *
907 devlink_param_get_req_dump_alloc(void)
909 return calloc(1, sizeof(struct devlink_param_get_req_dump));
911 void devlink_param_get_req_dump_free(struct devlink_param_get_req_dump *req);
914 devlink_param_get_req_dump_set_bus_name(struct devlink_param_get_req_dump *req,
915 const char *bus_name)
918 req->_present.bus_name_len = strlen(bus_name);
919 req->bus_name = malloc(req->_present.bus_name_len + 1);
920 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
921 req->bus_name[req->_present.bus_name_len] = 0;
924 devlink_param_get_req_dump_set_dev_name(struct devlink_param_get_req_dump *req,
925 const char *dev_name)
928 req->_present.dev_name_len = strlen(dev_name);
929 req->dev_name = malloc(req->_present.dev_name_len + 1);
930 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
931 req->dev_name[req->_present.dev_name_len] = 0;
934 struct devlink_param_get_list {
935 struct devlink_param_get_list *next;
936 struct devlink_param_get_rsp obj __attribute__ ((aligned (8)));
939 void devlink_param_get_list_free(struct devlink_param_get_list *rsp);
941 struct devlink_param_get_list *
942 devlink_param_get_dump(struct ynl_sock *ys,
943 struct devlink_param_get_req_dump *req);
945 /* ============== DEVLINK_CMD_REGION_GET ============== */
946 /* DEVLINK_CMD_REGION_GET - do */
947 struct devlink_region_get_req {
952 __u32 region_name_len;
961 static inline struct devlink_region_get_req *devlink_region_get_req_alloc(void)
963 return calloc(1, sizeof(struct devlink_region_get_req));
965 void devlink_region_get_req_free(struct devlink_region_get_req *req);
968 devlink_region_get_req_set_bus_name(struct devlink_region_get_req *req,
969 const char *bus_name)
972 req->_present.bus_name_len = strlen(bus_name);
973 req->bus_name = malloc(req->_present.bus_name_len + 1);
974 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
975 req->bus_name[req->_present.bus_name_len] = 0;
978 devlink_region_get_req_set_dev_name(struct devlink_region_get_req *req,
979 const char *dev_name)
982 req->_present.dev_name_len = strlen(dev_name);
983 req->dev_name = malloc(req->_present.dev_name_len + 1);
984 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
985 req->dev_name[req->_present.dev_name_len] = 0;
988 devlink_region_get_req_set_port_index(struct devlink_region_get_req *req,
991 req->_present.port_index = 1;
992 req->port_index = port_index;
995 devlink_region_get_req_set_region_name(struct devlink_region_get_req *req,
996 const char *region_name)
998 free(req->region_name);
999 req->_present.region_name_len = strlen(region_name);
1000 req->region_name = malloc(req->_present.region_name_len + 1);
1001 memcpy(req->region_name, region_name, req->_present.region_name_len);
1002 req->region_name[req->_present.region_name_len] = 0;
1005 struct devlink_region_get_rsp {
1010 __u32 region_name_len;
1019 void devlink_region_get_rsp_free(struct devlink_region_get_rsp *rsp);
1022 * Get region instances.
1024 struct devlink_region_get_rsp *
1025 devlink_region_get(struct ynl_sock *ys, struct devlink_region_get_req *req);
1027 /* DEVLINK_CMD_REGION_GET - dump */
1028 struct devlink_region_get_req_dump {
1038 static inline struct devlink_region_get_req_dump *
1039 devlink_region_get_req_dump_alloc(void)
1041 return calloc(1, sizeof(struct devlink_region_get_req_dump));
1043 void devlink_region_get_req_dump_free(struct devlink_region_get_req_dump *req);
1046 devlink_region_get_req_dump_set_bus_name(struct devlink_region_get_req_dump *req,
1047 const char *bus_name)
1049 free(req->bus_name);
1050 req->_present.bus_name_len = strlen(bus_name);
1051 req->bus_name = malloc(req->_present.bus_name_len + 1);
1052 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1053 req->bus_name[req->_present.bus_name_len] = 0;
1056 devlink_region_get_req_dump_set_dev_name(struct devlink_region_get_req_dump *req,
1057 const char *dev_name)
1059 free(req->dev_name);
1060 req->_present.dev_name_len = strlen(dev_name);
1061 req->dev_name = malloc(req->_present.dev_name_len + 1);
1062 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1063 req->dev_name[req->_present.dev_name_len] = 0;
1066 struct devlink_region_get_list {
1067 struct devlink_region_get_list *next;
1068 struct devlink_region_get_rsp obj __attribute__ ((aligned (8)));
1071 void devlink_region_get_list_free(struct devlink_region_get_list *rsp);
1073 struct devlink_region_get_list *
1074 devlink_region_get_dump(struct ynl_sock *ys,
1075 struct devlink_region_get_req_dump *req);
1077 /* ============== DEVLINK_CMD_INFO_GET ============== */
1078 /* DEVLINK_CMD_INFO_GET - do */
1079 struct devlink_info_get_req {
1089 static inline struct devlink_info_get_req *devlink_info_get_req_alloc(void)
1091 return calloc(1, sizeof(struct devlink_info_get_req));
1093 void devlink_info_get_req_free(struct devlink_info_get_req *req);
1096 devlink_info_get_req_set_bus_name(struct devlink_info_get_req *req,
1097 const char *bus_name)
1099 free(req->bus_name);
1100 req->_present.bus_name_len = strlen(bus_name);
1101 req->bus_name = malloc(req->_present.bus_name_len + 1);
1102 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1103 req->bus_name[req->_present.bus_name_len] = 0;
1106 devlink_info_get_req_set_dev_name(struct devlink_info_get_req *req,
1107 const char *dev_name)
1109 free(req->dev_name);
1110 req->_present.dev_name_len = strlen(dev_name);
1111 req->dev_name = malloc(req->_present.dev_name_len + 1);
1112 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1113 req->dev_name[req->_present.dev_name_len] = 0;
1116 struct devlink_info_get_rsp {
1120 __u32 info_driver_name_len;
1121 __u32 info_serial_number_len;
1126 char *info_driver_name;
1127 char *info_serial_number;
1128 unsigned int n_info_version_fixed;
1129 struct devlink_dl_info_version *info_version_fixed;
1130 unsigned int n_info_version_running;
1131 struct devlink_dl_info_version *info_version_running;
1132 unsigned int n_info_version_stored;
1133 struct devlink_dl_info_version *info_version_stored;
1136 void devlink_info_get_rsp_free(struct devlink_info_get_rsp *rsp);
1139 * Get device information, like driver name, hardware and firmware versions etc.
1141 struct devlink_info_get_rsp *
1142 devlink_info_get(struct ynl_sock *ys, struct devlink_info_get_req *req);
1144 /* DEVLINK_CMD_INFO_GET - dump */
1145 struct devlink_info_get_list {
1146 struct devlink_info_get_list *next;
1147 struct devlink_info_get_rsp obj __attribute__ ((aligned (8)));
1150 void devlink_info_get_list_free(struct devlink_info_get_list *rsp);
1152 struct devlink_info_get_list *devlink_info_get_dump(struct ynl_sock *ys);
1154 /* ============== DEVLINK_CMD_HEALTH_REPORTER_GET ============== */
1155 /* DEVLINK_CMD_HEALTH_REPORTER_GET - do */
1156 struct devlink_health_reporter_get_req {
1161 __u32 health_reporter_name_len;
1167 char *health_reporter_name;
1170 static inline struct devlink_health_reporter_get_req *
1171 devlink_health_reporter_get_req_alloc(void)
1173 return calloc(1, sizeof(struct devlink_health_reporter_get_req));
1176 devlink_health_reporter_get_req_free(struct devlink_health_reporter_get_req *req);
1179 devlink_health_reporter_get_req_set_bus_name(struct devlink_health_reporter_get_req *req,
1180 const char *bus_name)
1182 free(req->bus_name);
1183 req->_present.bus_name_len = strlen(bus_name);
1184 req->bus_name = malloc(req->_present.bus_name_len + 1);
1185 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1186 req->bus_name[req->_present.bus_name_len] = 0;
1189 devlink_health_reporter_get_req_set_dev_name(struct devlink_health_reporter_get_req *req,
1190 const char *dev_name)
1192 free(req->dev_name);
1193 req->_present.dev_name_len = strlen(dev_name);
1194 req->dev_name = malloc(req->_present.dev_name_len + 1);
1195 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1196 req->dev_name[req->_present.dev_name_len] = 0;
1199 devlink_health_reporter_get_req_set_port_index(struct devlink_health_reporter_get_req *req,
1202 req->_present.port_index = 1;
1203 req->port_index = port_index;
1206 devlink_health_reporter_get_req_set_health_reporter_name(struct devlink_health_reporter_get_req *req,
1207 const char *health_reporter_name)
1209 free(req->health_reporter_name);
1210 req->_present.health_reporter_name_len = strlen(health_reporter_name);
1211 req->health_reporter_name = malloc(req->_present.health_reporter_name_len + 1);
1212 memcpy(req->health_reporter_name, health_reporter_name, req->_present.health_reporter_name_len);
1213 req->health_reporter_name[req->_present.health_reporter_name_len] = 0;
1216 struct devlink_health_reporter_get_rsp {
1221 __u32 health_reporter_name_len;
1227 char *health_reporter_name;
1231 devlink_health_reporter_get_rsp_free(struct devlink_health_reporter_get_rsp *rsp);
1234 * Get health reporter instances.
1236 struct devlink_health_reporter_get_rsp *
1237 devlink_health_reporter_get(struct ynl_sock *ys,
1238 struct devlink_health_reporter_get_req *req);
1240 /* DEVLINK_CMD_HEALTH_REPORTER_GET - dump */
1241 struct devlink_health_reporter_get_req_dump {
1253 static inline struct devlink_health_reporter_get_req_dump *
1254 devlink_health_reporter_get_req_dump_alloc(void)
1256 return calloc(1, sizeof(struct devlink_health_reporter_get_req_dump));
1259 devlink_health_reporter_get_req_dump_free(struct devlink_health_reporter_get_req_dump *req);
1262 devlink_health_reporter_get_req_dump_set_bus_name(struct devlink_health_reporter_get_req_dump *req,
1263 const char *bus_name)
1265 free(req->bus_name);
1266 req->_present.bus_name_len = strlen(bus_name);
1267 req->bus_name = malloc(req->_present.bus_name_len + 1);
1268 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1269 req->bus_name[req->_present.bus_name_len] = 0;
1272 devlink_health_reporter_get_req_dump_set_dev_name(struct devlink_health_reporter_get_req_dump *req,
1273 const char *dev_name)
1275 free(req->dev_name);
1276 req->_present.dev_name_len = strlen(dev_name);
1277 req->dev_name = malloc(req->_present.dev_name_len + 1);
1278 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1279 req->dev_name[req->_present.dev_name_len] = 0;
1282 devlink_health_reporter_get_req_dump_set_port_index(struct devlink_health_reporter_get_req_dump *req,
1285 req->_present.port_index = 1;
1286 req->port_index = port_index;
1289 struct devlink_health_reporter_get_list {
1290 struct devlink_health_reporter_get_list *next;
1291 struct devlink_health_reporter_get_rsp obj __attribute__ ((aligned (8)));
1295 devlink_health_reporter_get_list_free(struct devlink_health_reporter_get_list *rsp);
1297 struct devlink_health_reporter_get_list *
1298 devlink_health_reporter_get_dump(struct ynl_sock *ys,
1299 struct devlink_health_reporter_get_req_dump *req);
1301 /* ============== DEVLINK_CMD_TRAP_GET ============== */
1302 /* DEVLINK_CMD_TRAP_GET - do */
1303 struct devlink_trap_get_req {
1307 __u32 trap_name_len;
1315 static inline struct devlink_trap_get_req *devlink_trap_get_req_alloc(void)
1317 return calloc(1, sizeof(struct devlink_trap_get_req));
1319 void devlink_trap_get_req_free(struct devlink_trap_get_req *req);
1322 devlink_trap_get_req_set_bus_name(struct devlink_trap_get_req *req,
1323 const char *bus_name)
1325 free(req->bus_name);
1326 req->_present.bus_name_len = strlen(bus_name);
1327 req->bus_name = malloc(req->_present.bus_name_len + 1);
1328 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1329 req->bus_name[req->_present.bus_name_len] = 0;
1332 devlink_trap_get_req_set_dev_name(struct devlink_trap_get_req *req,
1333 const char *dev_name)
1335 free(req->dev_name);
1336 req->_present.dev_name_len = strlen(dev_name);
1337 req->dev_name = malloc(req->_present.dev_name_len + 1);
1338 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1339 req->dev_name[req->_present.dev_name_len] = 0;
1342 devlink_trap_get_req_set_trap_name(struct devlink_trap_get_req *req,
1343 const char *trap_name)
1345 free(req->trap_name);
1346 req->_present.trap_name_len = strlen(trap_name);
1347 req->trap_name = malloc(req->_present.trap_name_len + 1);
1348 memcpy(req->trap_name, trap_name, req->_present.trap_name_len);
1349 req->trap_name[req->_present.trap_name_len] = 0;
1352 struct devlink_trap_get_rsp {
1356 __u32 trap_name_len;
1364 void devlink_trap_get_rsp_free(struct devlink_trap_get_rsp *rsp);
1367 * Get trap instances.
1369 struct devlink_trap_get_rsp *
1370 devlink_trap_get(struct ynl_sock *ys, struct devlink_trap_get_req *req);
1372 /* DEVLINK_CMD_TRAP_GET - dump */
1373 struct devlink_trap_get_req_dump {
1383 static inline struct devlink_trap_get_req_dump *
1384 devlink_trap_get_req_dump_alloc(void)
1386 return calloc(1, sizeof(struct devlink_trap_get_req_dump));
1388 void devlink_trap_get_req_dump_free(struct devlink_trap_get_req_dump *req);
1391 devlink_trap_get_req_dump_set_bus_name(struct devlink_trap_get_req_dump *req,
1392 const char *bus_name)
1394 free(req->bus_name);
1395 req->_present.bus_name_len = strlen(bus_name);
1396 req->bus_name = malloc(req->_present.bus_name_len + 1);
1397 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1398 req->bus_name[req->_present.bus_name_len] = 0;
1401 devlink_trap_get_req_dump_set_dev_name(struct devlink_trap_get_req_dump *req,
1402 const char *dev_name)
1404 free(req->dev_name);
1405 req->_present.dev_name_len = strlen(dev_name);
1406 req->dev_name = malloc(req->_present.dev_name_len + 1);
1407 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1408 req->dev_name[req->_present.dev_name_len] = 0;
1411 struct devlink_trap_get_list {
1412 struct devlink_trap_get_list *next;
1413 struct devlink_trap_get_rsp obj __attribute__ ((aligned (8)));
1416 void devlink_trap_get_list_free(struct devlink_trap_get_list *rsp);
1418 struct devlink_trap_get_list *
1419 devlink_trap_get_dump(struct ynl_sock *ys,
1420 struct devlink_trap_get_req_dump *req);
1422 /* ============== DEVLINK_CMD_TRAP_GROUP_GET ============== */
1423 /* DEVLINK_CMD_TRAP_GROUP_GET - do */
1424 struct devlink_trap_group_get_req {
1428 __u32 trap_group_name_len;
1433 char *trap_group_name;
1436 static inline struct devlink_trap_group_get_req *
1437 devlink_trap_group_get_req_alloc(void)
1439 return calloc(1, sizeof(struct devlink_trap_group_get_req));
1441 void devlink_trap_group_get_req_free(struct devlink_trap_group_get_req *req);
1444 devlink_trap_group_get_req_set_bus_name(struct devlink_trap_group_get_req *req,
1445 const char *bus_name)
1447 free(req->bus_name);
1448 req->_present.bus_name_len = strlen(bus_name);
1449 req->bus_name = malloc(req->_present.bus_name_len + 1);
1450 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1451 req->bus_name[req->_present.bus_name_len] = 0;
1454 devlink_trap_group_get_req_set_dev_name(struct devlink_trap_group_get_req *req,
1455 const char *dev_name)
1457 free(req->dev_name);
1458 req->_present.dev_name_len = strlen(dev_name);
1459 req->dev_name = malloc(req->_present.dev_name_len + 1);
1460 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1461 req->dev_name[req->_present.dev_name_len] = 0;
1464 devlink_trap_group_get_req_set_trap_group_name(struct devlink_trap_group_get_req *req,
1465 const char *trap_group_name)
1467 free(req->trap_group_name);
1468 req->_present.trap_group_name_len = strlen(trap_group_name);
1469 req->trap_group_name = malloc(req->_present.trap_group_name_len + 1);
1470 memcpy(req->trap_group_name, trap_group_name, req->_present.trap_group_name_len);
1471 req->trap_group_name[req->_present.trap_group_name_len] = 0;
1474 struct devlink_trap_group_get_rsp {
1478 __u32 trap_group_name_len;
1483 char *trap_group_name;
1486 void devlink_trap_group_get_rsp_free(struct devlink_trap_group_get_rsp *rsp);
1489 * Get trap group instances.
1491 struct devlink_trap_group_get_rsp *
1492 devlink_trap_group_get(struct ynl_sock *ys,
1493 struct devlink_trap_group_get_req *req);
1495 /* DEVLINK_CMD_TRAP_GROUP_GET - dump */
1496 struct devlink_trap_group_get_req_dump {
1506 static inline struct devlink_trap_group_get_req_dump *
1507 devlink_trap_group_get_req_dump_alloc(void)
1509 return calloc(1, sizeof(struct devlink_trap_group_get_req_dump));
1512 devlink_trap_group_get_req_dump_free(struct devlink_trap_group_get_req_dump *req);
1515 devlink_trap_group_get_req_dump_set_bus_name(struct devlink_trap_group_get_req_dump *req,
1516 const char *bus_name)
1518 free(req->bus_name);
1519 req->_present.bus_name_len = strlen(bus_name);
1520 req->bus_name = malloc(req->_present.bus_name_len + 1);
1521 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1522 req->bus_name[req->_present.bus_name_len] = 0;
1525 devlink_trap_group_get_req_dump_set_dev_name(struct devlink_trap_group_get_req_dump *req,
1526 const char *dev_name)
1528 free(req->dev_name);
1529 req->_present.dev_name_len = strlen(dev_name);
1530 req->dev_name = malloc(req->_present.dev_name_len + 1);
1531 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1532 req->dev_name[req->_present.dev_name_len] = 0;
1535 struct devlink_trap_group_get_list {
1536 struct devlink_trap_group_get_list *next;
1537 struct devlink_trap_group_get_rsp obj __attribute__ ((aligned (8)));
1540 void devlink_trap_group_get_list_free(struct devlink_trap_group_get_list *rsp);
1542 struct devlink_trap_group_get_list *
1543 devlink_trap_group_get_dump(struct ynl_sock *ys,
1544 struct devlink_trap_group_get_req_dump *req);
1546 /* ============== DEVLINK_CMD_TRAP_POLICER_GET ============== */
1547 /* DEVLINK_CMD_TRAP_POLICER_GET - do */
1548 struct devlink_trap_policer_get_req {
1552 __u32 trap_policer_id:1;
1557 __u32 trap_policer_id;
1560 static inline struct devlink_trap_policer_get_req *
1561 devlink_trap_policer_get_req_alloc(void)
1563 return calloc(1, sizeof(struct devlink_trap_policer_get_req));
1566 devlink_trap_policer_get_req_free(struct devlink_trap_policer_get_req *req);
1569 devlink_trap_policer_get_req_set_bus_name(struct devlink_trap_policer_get_req *req,
1570 const char *bus_name)
1572 free(req->bus_name);
1573 req->_present.bus_name_len = strlen(bus_name);
1574 req->bus_name = malloc(req->_present.bus_name_len + 1);
1575 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1576 req->bus_name[req->_present.bus_name_len] = 0;
1579 devlink_trap_policer_get_req_set_dev_name(struct devlink_trap_policer_get_req *req,
1580 const char *dev_name)
1582 free(req->dev_name);
1583 req->_present.dev_name_len = strlen(dev_name);
1584 req->dev_name = malloc(req->_present.dev_name_len + 1);
1585 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1586 req->dev_name[req->_present.dev_name_len] = 0;
1589 devlink_trap_policer_get_req_set_trap_policer_id(struct devlink_trap_policer_get_req *req,
1590 __u32 trap_policer_id)
1592 req->_present.trap_policer_id = 1;
1593 req->trap_policer_id = trap_policer_id;
1596 struct devlink_trap_policer_get_rsp {
1600 __u32 trap_policer_id:1;
1605 __u32 trap_policer_id;
1609 devlink_trap_policer_get_rsp_free(struct devlink_trap_policer_get_rsp *rsp);
1612 * Get trap policer instances.
1614 struct devlink_trap_policer_get_rsp *
1615 devlink_trap_policer_get(struct ynl_sock *ys,
1616 struct devlink_trap_policer_get_req *req);
1618 /* DEVLINK_CMD_TRAP_POLICER_GET - dump */
1619 struct devlink_trap_policer_get_req_dump {
1629 static inline struct devlink_trap_policer_get_req_dump *
1630 devlink_trap_policer_get_req_dump_alloc(void)
1632 return calloc(1, sizeof(struct devlink_trap_policer_get_req_dump));
1635 devlink_trap_policer_get_req_dump_free(struct devlink_trap_policer_get_req_dump *req);
1638 devlink_trap_policer_get_req_dump_set_bus_name(struct devlink_trap_policer_get_req_dump *req,
1639 const char *bus_name)
1641 free(req->bus_name);
1642 req->_present.bus_name_len = strlen(bus_name);
1643 req->bus_name = malloc(req->_present.bus_name_len + 1);
1644 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1645 req->bus_name[req->_present.bus_name_len] = 0;
1648 devlink_trap_policer_get_req_dump_set_dev_name(struct devlink_trap_policer_get_req_dump *req,
1649 const char *dev_name)
1651 free(req->dev_name);
1652 req->_present.dev_name_len = strlen(dev_name);
1653 req->dev_name = malloc(req->_present.dev_name_len + 1);
1654 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1655 req->dev_name[req->_present.dev_name_len] = 0;
1658 struct devlink_trap_policer_get_list {
1659 struct devlink_trap_policer_get_list *next;
1660 struct devlink_trap_policer_get_rsp obj __attribute__ ((aligned (8)));
1664 devlink_trap_policer_get_list_free(struct devlink_trap_policer_get_list *rsp);
1666 struct devlink_trap_policer_get_list *
1667 devlink_trap_policer_get_dump(struct ynl_sock *ys,
1668 struct devlink_trap_policer_get_req_dump *req);
1670 /* ============== DEVLINK_CMD_RATE_GET ============== */
1671 /* DEVLINK_CMD_RATE_GET - do */
1672 struct devlink_rate_get_req {
1677 __u32 rate_node_name_len;
1683 char *rate_node_name;
1686 static inline struct devlink_rate_get_req *devlink_rate_get_req_alloc(void)
1688 return calloc(1, sizeof(struct devlink_rate_get_req));
1690 void devlink_rate_get_req_free(struct devlink_rate_get_req *req);
1693 devlink_rate_get_req_set_bus_name(struct devlink_rate_get_req *req,
1694 const char *bus_name)
1696 free(req->bus_name);
1697 req->_present.bus_name_len = strlen(bus_name);
1698 req->bus_name = malloc(req->_present.bus_name_len + 1);
1699 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1700 req->bus_name[req->_present.bus_name_len] = 0;
1703 devlink_rate_get_req_set_dev_name(struct devlink_rate_get_req *req,
1704 const char *dev_name)
1706 free(req->dev_name);
1707 req->_present.dev_name_len = strlen(dev_name);
1708 req->dev_name = malloc(req->_present.dev_name_len + 1);
1709 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1710 req->dev_name[req->_present.dev_name_len] = 0;
1713 devlink_rate_get_req_set_port_index(struct devlink_rate_get_req *req,
1716 req->_present.port_index = 1;
1717 req->port_index = port_index;
1720 devlink_rate_get_req_set_rate_node_name(struct devlink_rate_get_req *req,
1721 const char *rate_node_name)
1723 free(req->rate_node_name);
1724 req->_present.rate_node_name_len = strlen(rate_node_name);
1725 req->rate_node_name = malloc(req->_present.rate_node_name_len + 1);
1726 memcpy(req->rate_node_name, rate_node_name, req->_present.rate_node_name_len);
1727 req->rate_node_name[req->_present.rate_node_name_len] = 0;
1730 struct devlink_rate_get_rsp {
1735 __u32 rate_node_name_len;
1741 char *rate_node_name;
1744 void devlink_rate_get_rsp_free(struct devlink_rate_get_rsp *rsp);
1747 * Get rate instances.
1749 struct devlink_rate_get_rsp *
1750 devlink_rate_get(struct ynl_sock *ys, struct devlink_rate_get_req *req);
1752 /* DEVLINK_CMD_RATE_GET - dump */
1753 struct devlink_rate_get_req_dump {
1763 static inline struct devlink_rate_get_req_dump *
1764 devlink_rate_get_req_dump_alloc(void)
1766 return calloc(1, sizeof(struct devlink_rate_get_req_dump));
1768 void devlink_rate_get_req_dump_free(struct devlink_rate_get_req_dump *req);
1771 devlink_rate_get_req_dump_set_bus_name(struct devlink_rate_get_req_dump *req,
1772 const char *bus_name)
1774 free(req->bus_name);
1775 req->_present.bus_name_len = strlen(bus_name);
1776 req->bus_name = malloc(req->_present.bus_name_len + 1);
1777 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1778 req->bus_name[req->_present.bus_name_len] = 0;
1781 devlink_rate_get_req_dump_set_dev_name(struct devlink_rate_get_req_dump *req,
1782 const char *dev_name)
1784 free(req->dev_name);
1785 req->_present.dev_name_len = strlen(dev_name);
1786 req->dev_name = malloc(req->_present.dev_name_len + 1);
1787 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1788 req->dev_name[req->_present.dev_name_len] = 0;
1791 struct devlink_rate_get_list {
1792 struct devlink_rate_get_list *next;
1793 struct devlink_rate_get_rsp obj __attribute__ ((aligned (8)));
1796 void devlink_rate_get_list_free(struct devlink_rate_get_list *rsp);
1798 struct devlink_rate_get_list *
1799 devlink_rate_get_dump(struct ynl_sock *ys,
1800 struct devlink_rate_get_req_dump *req);
1802 /* ============== DEVLINK_CMD_LINECARD_GET ============== */
1803 /* DEVLINK_CMD_LINECARD_GET - do */
1804 struct devlink_linecard_get_req {
1808 __u32 linecard_index:1;
1813 __u32 linecard_index;
1816 static inline struct devlink_linecard_get_req *
1817 devlink_linecard_get_req_alloc(void)
1819 return calloc(1, sizeof(struct devlink_linecard_get_req));
1821 void devlink_linecard_get_req_free(struct devlink_linecard_get_req *req);
1824 devlink_linecard_get_req_set_bus_name(struct devlink_linecard_get_req *req,
1825 const char *bus_name)
1827 free(req->bus_name);
1828 req->_present.bus_name_len = strlen(bus_name);
1829 req->bus_name = malloc(req->_present.bus_name_len + 1);
1830 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1831 req->bus_name[req->_present.bus_name_len] = 0;
1834 devlink_linecard_get_req_set_dev_name(struct devlink_linecard_get_req *req,
1835 const char *dev_name)
1837 free(req->dev_name);
1838 req->_present.dev_name_len = strlen(dev_name);
1839 req->dev_name = malloc(req->_present.dev_name_len + 1);
1840 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1841 req->dev_name[req->_present.dev_name_len] = 0;
1844 devlink_linecard_get_req_set_linecard_index(struct devlink_linecard_get_req *req,
1845 __u32 linecard_index)
1847 req->_present.linecard_index = 1;
1848 req->linecard_index = linecard_index;
1851 struct devlink_linecard_get_rsp {
1855 __u32 linecard_index:1;
1860 __u32 linecard_index;
1863 void devlink_linecard_get_rsp_free(struct devlink_linecard_get_rsp *rsp);
1866 * Get line card instances.
1868 struct devlink_linecard_get_rsp *
1869 devlink_linecard_get(struct ynl_sock *ys, struct devlink_linecard_get_req *req);
1871 /* DEVLINK_CMD_LINECARD_GET - dump */
1872 struct devlink_linecard_get_req_dump {
1882 static inline struct devlink_linecard_get_req_dump *
1883 devlink_linecard_get_req_dump_alloc(void)
1885 return calloc(1, sizeof(struct devlink_linecard_get_req_dump));
1888 devlink_linecard_get_req_dump_free(struct devlink_linecard_get_req_dump *req);
1891 devlink_linecard_get_req_dump_set_bus_name(struct devlink_linecard_get_req_dump *req,
1892 const char *bus_name)
1894 free(req->bus_name);
1895 req->_present.bus_name_len = strlen(bus_name);
1896 req->bus_name = malloc(req->_present.bus_name_len + 1);
1897 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1898 req->bus_name[req->_present.bus_name_len] = 0;
1901 devlink_linecard_get_req_dump_set_dev_name(struct devlink_linecard_get_req_dump *req,
1902 const char *dev_name)
1904 free(req->dev_name);
1905 req->_present.dev_name_len = strlen(dev_name);
1906 req->dev_name = malloc(req->_present.dev_name_len + 1);
1907 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1908 req->dev_name[req->_present.dev_name_len] = 0;
1911 struct devlink_linecard_get_list {
1912 struct devlink_linecard_get_list *next;
1913 struct devlink_linecard_get_rsp obj __attribute__ ((aligned (8)));
1916 void devlink_linecard_get_list_free(struct devlink_linecard_get_list *rsp);
1918 struct devlink_linecard_get_list *
1919 devlink_linecard_get_dump(struct ynl_sock *ys,
1920 struct devlink_linecard_get_req_dump *req);
1922 /* ============== DEVLINK_CMD_SELFTESTS_GET ============== */
1923 /* DEVLINK_CMD_SELFTESTS_GET - do */
1924 struct devlink_selftests_get_req {
1934 static inline struct devlink_selftests_get_req *
1935 devlink_selftests_get_req_alloc(void)
1937 return calloc(1, sizeof(struct devlink_selftests_get_req));
1939 void devlink_selftests_get_req_free(struct devlink_selftests_get_req *req);
1942 devlink_selftests_get_req_set_bus_name(struct devlink_selftests_get_req *req,
1943 const char *bus_name)
1945 free(req->bus_name);
1946 req->_present.bus_name_len = strlen(bus_name);
1947 req->bus_name = malloc(req->_present.bus_name_len + 1);
1948 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1949 req->bus_name[req->_present.bus_name_len] = 0;
1952 devlink_selftests_get_req_set_dev_name(struct devlink_selftests_get_req *req,
1953 const char *dev_name)
1955 free(req->dev_name);
1956 req->_present.dev_name_len = strlen(dev_name);
1957 req->dev_name = malloc(req->_present.dev_name_len + 1);
1958 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1959 req->dev_name[req->_present.dev_name_len] = 0;
1962 struct devlink_selftests_get_rsp {
1972 void devlink_selftests_get_rsp_free(struct devlink_selftests_get_rsp *rsp);
1975 * Get device selftest instances.
1977 struct devlink_selftests_get_rsp *
1978 devlink_selftests_get(struct ynl_sock *ys,
1979 struct devlink_selftests_get_req *req);
1981 /* DEVLINK_CMD_SELFTESTS_GET - dump */
1982 struct devlink_selftests_get_list {
1983 struct devlink_selftests_get_list *next;
1984 struct devlink_selftests_get_rsp obj __attribute__ ((aligned (8)));
1987 void devlink_selftests_get_list_free(struct devlink_selftests_get_list *rsp);
1989 struct devlink_selftests_get_list *
1990 devlink_selftests_get_dump(struct ynl_sock *ys);
1992 #endif /* _LINUX_DEVLINK_GEN_H */