Home | History | Annotate | Download | only in linux
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ***   To edit the content of this header, modify the corresponding
     11  ***   source file (e.g. under external/kernel-headers/original/) then
     12  ***   run bionic/libc/kernel/tools/update_all.py
     13  ***
     14  ***   Any manual change here will be lost the next time this script will
     15  ***   be run. You've been warned!
     16  ***
     17  ****************************************************************************
     18  ****************************************************************************/
     19 #ifndef _UAPI_LINUX_DEVLINK_H_
     20 #define _UAPI_LINUX_DEVLINK_H_
     21 #define DEVLINK_GENL_NAME "devlink"
     22 #define DEVLINK_GENL_VERSION 0x1
     23 #define DEVLINK_GENL_MCGRP_CONFIG_NAME "config"
     24 enum devlink_command {
     25   DEVLINK_CMD_UNSPEC,
     26   DEVLINK_CMD_GET,
     27   DEVLINK_CMD_SET,
     28   DEVLINK_CMD_NEW,
     29   DEVLINK_CMD_DEL,
     30   DEVLINK_CMD_PORT_GET,
     31   DEVLINK_CMD_PORT_SET,
     32   DEVLINK_CMD_PORT_NEW,
     33   DEVLINK_CMD_PORT_DEL,
     34   DEVLINK_CMD_PORT_SPLIT,
     35   DEVLINK_CMD_PORT_UNSPLIT,
     36   DEVLINK_CMD_SB_GET,
     37   DEVLINK_CMD_SB_SET,
     38   DEVLINK_CMD_SB_NEW,
     39   DEVLINK_CMD_SB_DEL,
     40   DEVLINK_CMD_SB_POOL_GET,
     41   DEVLINK_CMD_SB_POOL_SET,
     42   DEVLINK_CMD_SB_POOL_NEW,
     43   DEVLINK_CMD_SB_POOL_DEL,
     44   DEVLINK_CMD_SB_PORT_POOL_GET,
     45   DEVLINK_CMD_SB_PORT_POOL_SET,
     46   DEVLINK_CMD_SB_PORT_POOL_NEW,
     47   DEVLINK_CMD_SB_PORT_POOL_DEL,
     48   DEVLINK_CMD_SB_TC_POOL_BIND_GET,
     49   DEVLINK_CMD_SB_TC_POOL_BIND_SET,
     50   DEVLINK_CMD_SB_TC_POOL_BIND_NEW,
     51   DEVLINK_CMD_SB_TC_POOL_BIND_DEL,
     52   DEVLINK_CMD_SB_OCC_SNAPSHOT,
     53   DEVLINK_CMD_SB_OCC_MAX_CLEAR,
     54   DEVLINK_CMD_ESWITCH_GET,
     55 #define DEVLINK_CMD_ESWITCH_MODE_GET DEVLINK_CMD_ESWITCH_GET
     56   DEVLINK_CMD_ESWITCH_SET,
     57 #define DEVLINK_CMD_ESWITCH_MODE_SET DEVLINK_CMD_ESWITCH_SET
     58   DEVLINK_CMD_DPIPE_TABLE_GET,
     59   DEVLINK_CMD_DPIPE_ENTRIES_GET,
     60   DEVLINK_CMD_DPIPE_HEADERS_GET,
     61   DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET,
     62   __DEVLINK_CMD_MAX,
     63   DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
     64 };
     65 enum devlink_port_type {
     66   DEVLINK_PORT_TYPE_NOTSET,
     67   DEVLINK_PORT_TYPE_AUTO,
     68   DEVLINK_PORT_TYPE_ETH,
     69   DEVLINK_PORT_TYPE_IB,
     70 };
     71 enum devlink_sb_pool_type {
     72   DEVLINK_SB_POOL_TYPE_INGRESS,
     73   DEVLINK_SB_POOL_TYPE_EGRESS,
     74 };
     75 enum devlink_sb_threshold_type {
     76   DEVLINK_SB_THRESHOLD_TYPE_STATIC,
     77   DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC,
     78 };
     79 #define DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX 20
     80 enum devlink_eswitch_mode {
     81   DEVLINK_ESWITCH_MODE_LEGACY,
     82   DEVLINK_ESWITCH_MODE_SWITCHDEV,
     83 };
     84 enum devlink_eswitch_inline_mode {
     85   DEVLINK_ESWITCH_INLINE_MODE_NONE,
     86   DEVLINK_ESWITCH_INLINE_MODE_LINK,
     87   DEVLINK_ESWITCH_INLINE_MODE_NETWORK,
     88   DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT,
     89 };
     90 enum devlink_eswitch_encap_mode {
     91   DEVLINK_ESWITCH_ENCAP_MODE_NONE,
     92   DEVLINK_ESWITCH_ENCAP_MODE_BASIC,
     93 };
     94 enum devlink_attr {
     95   DEVLINK_ATTR_UNSPEC,
     96   DEVLINK_ATTR_BUS_NAME,
     97   DEVLINK_ATTR_DEV_NAME,
     98   DEVLINK_ATTR_PORT_INDEX,
     99   DEVLINK_ATTR_PORT_TYPE,
    100   DEVLINK_ATTR_PORT_DESIRED_TYPE,
    101   DEVLINK_ATTR_PORT_NETDEV_IFINDEX,
    102   DEVLINK_ATTR_PORT_NETDEV_NAME,
    103   DEVLINK_ATTR_PORT_IBDEV_NAME,
    104   DEVLINK_ATTR_PORT_SPLIT_COUNT,
    105   DEVLINK_ATTR_PORT_SPLIT_GROUP,
    106   DEVLINK_ATTR_SB_INDEX,
    107   DEVLINK_ATTR_SB_SIZE,
    108   DEVLINK_ATTR_SB_INGRESS_POOL_COUNT,
    109   DEVLINK_ATTR_SB_EGRESS_POOL_COUNT,
    110   DEVLINK_ATTR_SB_INGRESS_TC_COUNT,
    111   DEVLINK_ATTR_SB_EGRESS_TC_COUNT,
    112   DEVLINK_ATTR_SB_POOL_INDEX,
    113   DEVLINK_ATTR_SB_POOL_TYPE,
    114   DEVLINK_ATTR_SB_POOL_SIZE,
    115   DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE,
    116   DEVLINK_ATTR_SB_THRESHOLD,
    117   DEVLINK_ATTR_SB_TC_INDEX,
    118   DEVLINK_ATTR_SB_OCC_CUR,
    119   DEVLINK_ATTR_SB_OCC_MAX,
    120   DEVLINK_ATTR_ESWITCH_MODE,
    121   DEVLINK_ATTR_ESWITCH_INLINE_MODE,
    122   DEVLINK_ATTR_DPIPE_TABLES,
    123   DEVLINK_ATTR_DPIPE_TABLE,
    124   DEVLINK_ATTR_DPIPE_TABLE_NAME,
    125   DEVLINK_ATTR_DPIPE_TABLE_SIZE,
    126   DEVLINK_ATTR_DPIPE_TABLE_MATCHES,
    127   DEVLINK_ATTR_DPIPE_TABLE_ACTIONS,
    128   DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED,
    129   DEVLINK_ATTR_DPIPE_ENTRIES,
    130   DEVLINK_ATTR_DPIPE_ENTRY,
    131   DEVLINK_ATTR_DPIPE_ENTRY_INDEX,
    132   DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES,
    133   DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES,
    134   DEVLINK_ATTR_DPIPE_ENTRY_COUNTER,
    135   DEVLINK_ATTR_DPIPE_MATCH,
    136   DEVLINK_ATTR_DPIPE_MATCH_VALUE,
    137   DEVLINK_ATTR_DPIPE_MATCH_TYPE,
    138   DEVLINK_ATTR_DPIPE_ACTION,
    139   DEVLINK_ATTR_DPIPE_ACTION_VALUE,
    140   DEVLINK_ATTR_DPIPE_ACTION_TYPE,
    141   DEVLINK_ATTR_DPIPE_VALUE,
    142   DEVLINK_ATTR_DPIPE_VALUE_MASK,
    143   DEVLINK_ATTR_DPIPE_VALUE_MAPPING,
    144   DEVLINK_ATTR_DPIPE_HEADERS,
    145   DEVLINK_ATTR_DPIPE_HEADER,
    146   DEVLINK_ATTR_DPIPE_HEADER_NAME,
    147   DEVLINK_ATTR_DPIPE_HEADER_ID,
    148   DEVLINK_ATTR_DPIPE_HEADER_FIELDS,
    149   DEVLINK_ATTR_DPIPE_HEADER_GLOBAL,
    150   DEVLINK_ATTR_DPIPE_HEADER_INDEX,
    151   DEVLINK_ATTR_DPIPE_FIELD,
    152   DEVLINK_ATTR_DPIPE_FIELD_NAME,
    153   DEVLINK_ATTR_DPIPE_FIELD_ID,
    154   DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH,
    155   DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE,
    156   DEVLINK_ATTR_PAD,
    157   DEVLINK_ATTR_ESWITCH_ENCAP_MODE,
    158   __DEVLINK_ATTR_MAX,
    159   DEVLINK_ATTR_MAX = __DEVLINK_ATTR_MAX - 1
    160 };
    161 enum devlink_dpipe_field_mapping_type {
    162   DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE,
    163   DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX,
    164 };
    165 enum devlink_dpipe_match_type {
    166   DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT,
    167 };
    168 enum devlink_dpipe_action_type {
    169   DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY,
    170 };
    171 enum devlink_dpipe_field_ethernet_id {
    172   DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC,
    173 };
    174 enum devlink_dpipe_field_ipv4_id {
    175   DEVLINK_DPIPE_FIELD_IPV4_DST_IP,
    176 };
    177 enum devlink_dpipe_field_ipv6_id {
    178   DEVLINK_DPIPE_FIELD_IPV6_DST_IP,
    179 };
    180 enum devlink_dpipe_header_id {
    181   DEVLINK_DPIPE_HEADER_ETHERNET,
    182   DEVLINK_DPIPE_HEADER_IPV4,
    183   DEVLINK_DPIPE_HEADER_IPV6,
    184 };
    185 #endif
    186