]> git.proxmox.com Git - mirror_iproute2.git/blame - dcb/dcb.h
dcb: Generalize dcb_set_attribute()
[mirror_iproute2.git] / dcb / dcb.h
CommitLineData
67033d1c
PM
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef __DCB_H__
3#define __DCB_H__ 1
4
69290c32 5#include <libmnl/libmnl.h>
67033d1c
PM
6#include <stdbool.h>
7#include <stddef.h>
8
9/* dcb.c */
10
11struct dcb {
12 char *buf;
13 struct mnl_socket *nl;
14 bool json_output;
6e9687db 15 bool stats;
808dd741 16 bool use_iec;
67033d1c
PM
17};
18
19int dcb_parse_mapping(const char *what_key, __u32 key, __u32 max_key,
11a72186
PM
20 const char *what_value, __u64 value, __u64 max_value,
21 void (*set_array)(__u32 index, __u64 value, void *data),
67033d1c
PM
22 void *set_array_data);
23int dcb_cmd_parse_dev(struct dcb *dcb, int argc, char **argv,
24 int (*and_then)(struct dcb *dcb, const char *dev,
25 int argc, char **argv),
26 void (*help)(void));
27
11a72186
PM
28void dcb_set_u8(__u32 key, __u64 value, void *data);
29void dcb_set_u32(__u32 key, __u64 value, void *data);
30void dcb_set_u64(__u32 key, __u64 value, void *data);
67033d1c
PM
31
32int dcb_get_attribute(struct dcb *dcb, const char *dev, int attr,
33 void *data, size_t data_len);
34int dcb_set_attribute(struct dcb *dcb, const char *dev, int attr,
35 const void *data, size_t data_len);
69290c32
PM
36int dcb_set_attribute_va(struct dcb *dcb, int command, const char *dev,
37 int (*cb)(struct dcb *dcb, struct nlmsghdr *nlh, void *data),
38 void *data);
39int dcb_set_attribute_bare(struct dcb *dcb, int command, const char *dev,
40 int attr, const void *data, size_t data_len,
41 int response_attr);
67033d1c
PM
42
43void dcb_print_named_array(const char *json_name, const char *fp_name,
44 const __u8 *array, size_t size,
45 void (*print_array)(const __u8 *, size_t));
46void dcb_print_array_u8(const __u8 *array, size_t size);
6567cb58
PM
47void dcb_print_array_u64(const __u64 *array, size_t size);
48void dcb_print_array_on_off(const __u8 *array, size_t size);
67033d1c
PM
49void dcb_print_array_kw(const __u8 *array, size_t array_size,
50 const char *const kw[], size_t kw_size);
51
2e36f910
PM
52/* dcb_buffer.c */
53
54int dcb_cmd_buffer(struct dcb *dcb, int argc, char **argv);
55
ef15b076
PM
56/* dcb_ets.c */
57
58int dcb_cmd_ets(struct dcb *dcb, int argc, char **argv);
59
117939d9
PM
60/* dcb_maxrate.c */
61
62int dcb_cmd_maxrate(struct dcb *dcb, int argc, char **argv);
63
6567cb58
PM
64/* dcb_pfc.c */
65
66int dcb_cmd_pfc(struct dcb *dcb, int argc, char **argv);
67
67033d1c 68#endif /* __DCB_H__ */