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 __LINUX_DCBNL_H__ 20 #define __LINUX_DCBNL_H__ 21 #include <linux/types.h> 22 #define IEEE_8021QAZ_MAX_TCS 8 23 #define IEEE_8021QAZ_TSA_STRICT 0 24 #define IEEE_8021QAZ_TSA_CB_SHAPER 1 25 #define IEEE_8021QAZ_TSA_ETS 2 26 #define IEEE_8021QAZ_TSA_VENDOR 255 27 struct ieee_ets { 28 __u8 willing; 29 __u8 ets_cap; 30 __u8 cbs; 31 __u8 tc_tx_bw[IEEE_8021QAZ_MAX_TCS]; 32 __u8 tc_rx_bw[IEEE_8021QAZ_MAX_TCS]; 33 __u8 tc_tsa[IEEE_8021QAZ_MAX_TCS]; 34 __u8 prio_tc[IEEE_8021QAZ_MAX_TCS]; 35 __u8 tc_reco_bw[IEEE_8021QAZ_MAX_TCS]; 36 __u8 tc_reco_tsa[IEEE_8021QAZ_MAX_TCS]; 37 __u8 reco_prio_tc[IEEE_8021QAZ_MAX_TCS]; 38 }; 39 struct ieee_maxrate { 40 __u64 tc_maxrate[IEEE_8021QAZ_MAX_TCS]; 41 }; 42 enum dcbnl_cndd_states { 43 DCB_CNDD_RESET = 0, 44 DCB_CNDD_EDGE, 45 DCB_CNDD_INTERIOR, 46 DCB_CNDD_INTERIOR_READY, 47 }; 48 struct ieee_qcn { 49 __u8 rpg_enable[IEEE_8021QAZ_MAX_TCS]; 50 __u32 rppp_max_rps[IEEE_8021QAZ_MAX_TCS]; 51 __u32 rpg_time_reset[IEEE_8021QAZ_MAX_TCS]; 52 __u32 rpg_byte_reset[IEEE_8021QAZ_MAX_TCS]; 53 __u32 rpg_threshold[IEEE_8021QAZ_MAX_TCS]; 54 __u32 rpg_max_rate[IEEE_8021QAZ_MAX_TCS]; 55 __u32 rpg_ai_rate[IEEE_8021QAZ_MAX_TCS]; 56 __u32 rpg_hai_rate[IEEE_8021QAZ_MAX_TCS]; 57 __u32 rpg_gd[IEEE_8021QAZ_MAX_TCS]; 58 __u32 rpg_min_dec_fac[IEEE_8021QAZ_MAX_TCS]; 59 __u32 rpg_min_rate[IEEE_8021QAZ_MAX_TCS]; 60 __u32 cndd_state_machine[IEEE_8021QAZ_MAX_TCS]; 61 }; 62 struct ieee_qcn_stats { 63 __u64 rppp_rp_centiseconds[IEEE_8021QAZ_MAX_TCS]; 64 __u32 rppp_created_rps[IEEE_8021QAZ_MAX_TCS]; 65 }; 66 struct ieee_pfc { 67 __u8 pfc_cap; 68 __u8 pfc_en; 69 __u8 mbc; 70 __u16 delay; 71 __u64 requests[IEEE_8021QAZ_MAX_TCS]; 72 __u64 indications[IEEE_8021QAZ_MAX_TCS]; 73 }; 74 #define IEEE_8021Q_MAX_PRIORITIES 8 75 #define DCBX_MAX_BUFFERS 8 76 struct dcbnl_buffer { 77 __u8 prio2buffer[IEEE_8021Q_MAX_PRIORITIES]; 78 __u32 buffer_size[DCBX_MAX_BUFFERS]; 79 __u32 total_size; 80 }; 81 #define CEE_DCBX_MAX_PGS 8 82 #define CEE_DCBX_MAX_PRIO 8 83 struct cee_pg { 84 __u8 willing; 85 __u8 error; 86 __u8 pg_en; 87 __u8 tcs_supported; 88 __u8 pg_bw[CEE_DCBX_MAX_PGS]; 89 __u8 prio_pg[CEE_DCBX_MAX_PGS]; 90 }; 91 struct cee_pfc { 92 __u8 willing; 93 __u8 error; 94 __u8 pfc_en; 95 __u8 tcs_supported; 96 }; 97 #define IEEE_8021QAZ_APP_SEL_ETHERTYPE 1 98 #define IEEE_8021QAZ_APP_SEL_STREAM 2 99 #define IEEE_8021QAZ_APP_SEL_DGRAM 3 100 #define IEEE_8021QAZ_APP_SEL_ANY 4 101 #define IEEE_8021QAZ_APP_SEL_DSCP 5 102 #define DCB_APP_SEL_PCP 255 103 struct dcb_app { 104 __u8 selector; 105 __u8 priority; 106 __u16 protocol; 107 }; 108 #define IEEE_8021QAZ_APP_SEL_MAX 255 109 struct dcb_peer_app_info { 110 __u8 willing; 111 __u8 error; 112 }; 113 struct dcbmsg { 114 __u8 dcb_family; 115 __u8 cmd; 116 __u16 dcb_pad; 117 }; 118 enum dcbnl_commands { 119 DCB_CMD_UNDEFINED, 120 DCB_CMD_GSTATE, 121 DCB_CMD_SSTATE, 122 DCB_CMD_PGTX_GCFG, 123 DCB_CMD_PGTX_SCFG, 124 DCB_CMD_PGRX_GCFG, 125 DCB_CMD_PGRX_SCFG, 126 DCB_CMD_PFC_GCFG, 127 DCB_CMD_PFC_SCFG, 128 DCB_CMD_SET_ALL, 129 DCB_CMD_GPERM_HWADDR, 130 DCB_CMD_GCAP, 131 DCB_CMD_GNUMTCS, 132 DCB_CMD_SNUMTCS, 133 DCB_CMD_PFC_GSTATE, 134 DCB_CMD_PFC_SSTATE, 135 DCB_CMD_BCN_GCFG, 136 DCB_CMD_BCN_SCFG, 137 DCB_CMD_GAPP, 138 DCB_CMD_SAPP, 139 DCB_CMD_IEEE_SET, 140 DCB_CMD_IEEE_GET, 141 DCB_CMD_GDCBX, 142 DCB_CMD_SDCBX, 143 DCB_CMD_GFEATCFG, 144 DCB_CMD_SFEATCFG, 145 DCB_CMD_CEE_GET, 146 DCB_CMD_IEEE_DEL, 147 __DCB_CMD_ENUM_MAX, 148 DCB_CMD_MAX = __DCB_CMD_ENUM_MAX - 1, 149 }; 150 enum dcbnl_attrs { 151 DCB_ATTR_UNDEFINED, 152 DCB_ATTR_IFNAME, 153 DCB_ATTR_STATE, 154 DCB_ATTR_PFC_STATE, 155 DCB_ATTR_PFC_CFG, 156 DCB_ATTR_NUM_TC, 157 DCB_ATTR_PG_CFG, 158 DCB_ATTR_SET_ALL, 159 DCB_ATTR_PERM_HWADDR, 160 DCB_ATTR_CAP, 161 DCB_ATTR_NUMTCS, 162 DCB_ATTR_BCN, 163 DCB_ATTR_APP, 164 DCB_ATTR_IEEE, 165 DCB_ATTR_DCBX, 166 DCB_ATTR_FEATCFG, 167 DCB_ATTR_CEE, 168 __DCB_ATTR_ENUM_MAX, 169 DCB_ATTR_MAX = __DCB_ATTR_ENUM_MAX - 1, 170 }; 171 enum ieee_attrs { 172 DCB_ATTR_IEEE_UNSPEC, 173 DCB_ATTR_IEEE_ETS, 174 DCB_ATTR_IEEE_PFC, 175 DCB_ATTR_IEEE_APP_TABLE, 176 DCB_ATTR_IEEE_PEER_ETS, 177 DCB_ATTR_IEEE_PEER_PFC, 178 DCB_ATTR_IEEE_PEER_APP, 179 DCB_ATTR_IEEE_MAXRATE, 180 DCB_ATTR_IEEE_QCN, 181 DCB_ATTR_IEEE_QCN_STATS, 182 DCB_ATTR_DCB_BUFFER, 183 DCB_ATTR_DCB_APP_TRUST_TABLE, 184 __DCB_ATTR_IEEE_MAX 185 }; 186 #define DCB_ATTR_IEEE_MAX (__DCB_ATTR_IEEE_MAX - 1) 187 enum ieee_attrs_app { 188 DCB_ATTR_IEEE_APP_UNSPEC, 189 DCB_ATTR_IEEE_APP, 190 DCB_ATTR_DCB_APP, 191 __DCB_ATTR_IEEE_APP_MAX 192 }; 193 #define DCB_ATTR_IEEE_APP_MAX (__DCB_ATTR_IEEE_APP_MAX - 1) 194 enum cee_attrs { 195 DCB_ATTR_CEE_UNSPEC, 196 DCB_ATTR_CEE_PEER_PG, 197 DCB_ATTR_CEE_PEER_PFC, 198 DCB_ATTR_CEE_PEER_APP_TABLE, 199 DCB_ATTR_CEE_TX_PG, 200 DCB_ATTR_CEE_RX_PG, 201 DCB_ATTR_CEE_PFC, 202 DCB_ATTR_CEE_APP_TABLE, 203 DCB_ATTR_CEE_FEAT, 204 __DCB_ATTR_CEE_MAX 205 }; 206 #define DCB_ATTR_CEE_MAX (__DCB_ATTR_CEE_MAX - 1) 207 enum peer_app_attr { 208 DCB_ATTR_CEE_PEER_APP_UNSPEC, 209 DCB_ATTR_CEE_PEER_APP_INFO, 210 DCB_ATTR_CEE_PEER_APP, 211 __DCB_ATTR_CEE_PEER_APP_MAX 212 }; 213 #define DCB_ATTR_CEE_PEER_APP_MAX (__DCB_ATTR_CEE_PEER_APP_MAX - 1) 214 enum cee_attrs_app { 215 DCB_ATTR_CEE_APP_UNSPEC, 216 DCB_ATTR_CEE_APP, 217 __DCB_ATTR_CEE_APP_MAX 218 }; 219 #define DCB_ATTR_CEE_APP_MAX (__DCB_ATTR_CEE_APP_MAX - 1) 220 enum dcbnl_pfc_up_attrs { 221 DCB_PFC_UP_ATTR_UNDEFINED, 222 DCB_PFC_UP_ATTR_0, 223 DCB_PFC_UP_ATTR_1, 224 DCB_PFC_UP_ATTR_2, 225 DCB_PFC_UP_ATTR_3, 226 DCB_PFC_UP_ATTR_4, 227 DCB_PFC_UP_ATTR_5, 228 DCB_PFC_UP_ATTR_6, 229 DCB_PFC_UP_ATTR_7, 230 DCB_PFC_UP_ATTR_ALL, 231 __DCB_PFC_UP_ATTR_ENUM_MAX, 232 DCB_PFC_UP_ATTR_MAX = __DCB_PFC_UP_ATTR_ENUM_MAX - 1, 233 }; 234 enum dcbnl_pg_attrs { 235 DCB_PG_ATTR_UNDEFINED, 236 DCB_PG_ATTR_TC_0, 237 DCB_PG_ATTR_TC_1, 238 DCB_PG_ATTR_TC_2, 239 DCB_PG_ATTR_TC_3, 240 DCB_PG_ATTR_TC_4, 241 DCB_PG_ATTR_TC_5, 242 DCB_PG_ATTR_TC_6, 243 DCB_PG_ATTR_TC_7, 244 DCB_PG_ATTR_TC_MAX, 245 DCB_PG_ATTR_TC_ALL, 246 DCB_PG_ATTR_BW_ID_0, 247 DCB_PG_ATTR_BW_ID_1, 248 DCB_PG_ATTR_BW_ID_2, 249 DCB_PG_ATTR_BW_ID_3, 250 DCB_PG_ATTR_BW_ID_4, 251 DCB_PG_ATTR_BW_ID_5, 252 DCB_PG_ATTR_BW_ID_6, 253 DCB_PG_ATTR_BW_ID_7, 254 DCB_PG_ATTR_BW_ID_MAX, 255 DCB_PG_ATTR_BW_ID_ALL, 256 __DCB_PG_ATTR_ENUM_MAX, 257 DCB_PG_ATTR_MAX = __DCB_PG_ATTR_ENUM_MAX - 1, 258 }; 259 enum dcbnl_tc_attrs { 260 DCB_TC_ATTR_PARAM_UNDEFINED, 261 DCB_TC_ATTR_PARAM_PGID, 262 DCB_TC_ATTR_PARAM_UP_MAPPING, 263 DCB_TC_ATTR_PARAM_STRICT_PRIO, 264 DCB_TC_ATTR_PARAM_BW_PCT, 265 DCB_TC_ATTR_PARAM_ALL, 266 __DCB_TC_ATTR_PARAM_ENUM_MAX, 267 DCB_TC_ATTR_PARAM_MAX = __DCB_TC_ATTR_PARAM_ENUM_MAX - 1, 268 }; 269 enum dcbnl_cap_attrs { 270 DCB_CAP_ATTR_UNDEFINED, 271 DCB_CAP_ATTR_ALL, 272 DCB_CAP_ATTR_PG, 273 DCB_CAP_ATTR_PFC, 274 DCB_CAP_ATTR_UP2TC, 275 DCB_CAP_ATTR_PG_TCS, 276 DCB_CAP_ATTR_PFC_TCS, 277 DCB_CAP_ATTR_GSP, 278 DCB_CAP_ATTR_BCN, 279 DCB_CAP_ATTR_DCBX, 280 __DCB_CAP_ATTR_ENUM_MAX, 281 DCB_CAP_ATTR_MAX = __DCB_CAP_ATTR_ENUM_MAX - 1, 282 }; 283 #define DCB_CAP_DCBX_HOST 0x01 284 #define DCB_CAP_DCBX_LLD_MANAGED 0x02 285 #define DCB_CAP_DCBX_VER_CEE 0x04 286 #define DCB_CAP_DCBX_VER_IEEE 0x08 287 #define DCB_CAP_DCBX_STATIC 0x10 288 enum dcbnl_numtcs_attrs { 289 DCB_NUMTCS_ATTR_UNDEFINED, 290 DCB_NUMTCS_ATTR_ALL, 291 DCB_NUMTCS_ATTR_PG, 292 DCB_NUMTCS_ATTR_PFC, 293 __DCB_NUMTCS_ATTR_ENUM_MAX, 294 DCB_NUMTCS_ATTR_MAX = __DCB_NUMTCS_ATTR_ENUM_MAX - 1, 295 }; 296 enum dcbnl_bcn_attrs { 297 DCB_BCN_ATTR_UNDEFINED = 0, 298 DCB_BCN_ATTR_RP_0, 299 DCB_BCN_ATTR_RP_1, 300 DCB_BCN_ATTR_RP_2, 301 DCB_BCN_ATTR_RP_3, 302 DCB_BCN_ATTR_RP_4, 303 DCB_BCN_ATTR_RP_5, 304 DCB_BCN_ATTR_RP_6, 305 DCB_BCN_ATTR_RP_7, 306 DCB_BCN_ATTR_RP_ALL, 307 DCB_BCN_ATTR_BCNA_0, 308 DCB_BCN_ATTR_BCNA_1, 309 DCB_BCN_ATTR_ALPHA, 310 DCB_BCN_ATTR_BETA, 311 DCB_BCN_ATTR_GD, 312 DCB_BCN_ATTR_GI, 313 DCB_BCN_ATTR_TMAX, 314 DCB_BCN_ATTR_TD, 315 DCB_BCN_ATTR_RMIN, 316 DCB_BCN_ATTR_W, 317 DCB_BCN_ATTR_RD, 318 DCB_BCN_ATTR_RU, 319 DCB_BCN_ATTR_WRTT, 320 DCB_BCN_ATTR_RI, 321 DCB_BCN_ATTR_C, 322 DCB_BCN_ATTR_ALL, 323 __DCB_BCN_ATTR_ENUM_MAX, 324 DCB_BCN_ATTR_MAX = __DCB_BCN_ATTR_ENUM_MAX - 1, 325 }; 326 enum dcb_general_attr_values { 327 DCB_ATTR_VALUE_UNDEFINED = 0xff 328 }; 329 #define DCB_APP_IDTYPE_ETHTYPE 0x00 330 #define DCB_APP_IDTYPE_PORTNUM 0x01 331 enum dcbnl_app_attrs { 332 DCB_APP_ATTR_UNDEFINED, 333 DCB_APP_ATTR_IDTYPE, 334 DCB_APP_ATTR_ID, 335 DCB_APP_ATTR_PRIORITY, 336 __DCB_APP_ATTR_ENUM_MAX, 337 DCB_APP_ATTR_MAX = __DCB_APP_ATTR_ENUM_MAX - 1, 338 }; 339 #define DCB_FEATCFG_ERROR 0x01 340 #define DCB_FEATCFG_ENABLE 0x02 341 #define DCB_FEATCFG_WILLING 0x04 342 #define DCB_FEATCFG_ADVERTISE 0x08 343 enum dcbnl_featcfg_attrs { 344 DCB_FEATCFG_ATTR_UNDEFINED, 345 DCB_FEATCFG_ATTR_ALL, 346 DCB_FEATCFG_ATTR_PG, 347 DCB_FEATCFG_ATTR_PFC, 348 DCB_FEATCFG_ATTR_APP, 349 __DCB_FEATCFG_ATTR_ENUM_MAX, 350 DCB_FEATCFG_ATTR_MAX = __DCB_FEATCFG_ATTR_ENUM_MAX - 1, 351 }; 352 #endif 353