iproute2/dcb/dcb.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef __DCB_H__
   3#define __DCB_H__ 1
   4
   5#include <libmnl/libmnl.h>
   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;
  15        bool stats;
  16        bool use_iec;
  17        bool numeric;
  18};
  19
  20int dcb_parse_mapping(const char *what_key, __u32 key, __u32 max_key,
  21                      const char *what_value, __u64 value, __u64 max_value,
  22                      void (*set_array)(__u32 index, __u64 value, void *data),
  23                      void *set_array_data);
  24int dcb_cmd_parse_dev(struct dcb *dcb, int argc, char **argv,
  25                      int (*and_then)(struct dcb *dcb, const char *dev,
  26                                      int argc, char **argv),
  27                      void (*help)(void));
  28
  29void dcb_set_u8(__u32 key, __u64 value, void *data);
  30void dcb_set_u32(__u32 key, __u64 value, void *data);
  31void dcb_set_u64(__u32 key, __u64 value, void *data);
  32
  33int dcb_get_attribute(struct dcb *dcb, const char *dev, int attr,
  34                      void *data, size_t data_len);
  35int dcb_set_attribute(struct dcb *dcb, const char *dev, int attr,
  36                      const void *data, size_t data_len);
  37int dcb_get_attribute_va(struct dcb *dcb, const char *dev, int attr,
  38                         void **payload_p, __u16 *payload_len_p);
  39int dcb_set_attribute_va(struct dcb *dcb, int command, const char *dev,
  40                         int (*cb)(struct dcb *dcb, struct nlmsghdr *nlh, void *data),
  41                         void *data);
  42int dcb_get_attribute_bare(struct dcb *dcb, int cmd, const char *dev, int attr,
  43                           void **payload_p, __u16 *payload_len_p);
  44int dcb_set_attribute_bare(struct dcb *dcb, int command, const char *dev,
  45                           int attr, const void *data, size_t data_len,
  46                           int response_attr);
  47
  48void dcb_print_named_array(const char *json_name, const char *fp_name,
  49                           const __u8 *array, size_t size,
  50                           void (*print_array)(const __u8 *, size_t));
  51void dcb_print_array_u8(const __u8 *array, size_t size);
  52void dcb_print_array_u64(const __u64 *array, size_t size);
  53void dcb_print_array_on_off(const __u8 *array, size_t size);
  54void dcb_print_array_kw(const __u8 *array, size_t array_size,
  55                        const char *const kw[], size_t kw_size);
  56
  57/* dcb_app.c */
  58
  59int dcb_cmd_app(struct dcb *dcb, int argc, char **argv);
  60
  61/* dcb_buffer.c */
  62
  63int dcb_cmd_buffer(struct dcb *dcb, int argc, char **argv);
  64
  65/* dcb_dcbx.c */
  66
  67int dcb_cmd_dcbx(struct dcb *dcb, int argc, char **argv);
  68
  69/* dcb_ets.c */
  70
  71int dcb_cmd_ets(struct dcb *dcb, int argc, char **argv);
  72
  73/* dcb_maxrate.c */
  74
  75int dcb_cmd_maxrate(struct dcb *dcb, int argc, char **argv);
  76
  77/* dcb_pfc.c */
  78
  79int dcb_cmd_pfc(struct dcb *dcb, int argc, char **argv);
  80
  81#endif /* __DCB_H__ */
  82