Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

wifi: ieee80211: split mesh definitions out

The ieee80211.h file has gotten very long, start splitting it
by putting mesh definitions into a separate file.

Link: https://patch.msgid.link/20251105153843.489713ca8b34.I3befb4bf6ace0315758a1794224ddd18c4652e32@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

+232 -209
+230
include/linux/ieee80211-mesh.h
··· 1 + /* SPDX-License-Identifier: GPL-2.0-only */ 2 + /* 3 + * IEEE 802.11 mesh definitions 4 + * 5 + * Copyright (c) 2001-2002, SSH Communications Security Corp and Jouni Malinen 6 + * <jkmaline@cc.hut.fi> 7 + * Copyright (c) 2002-2003, Jouni Malinen <jkmaline@cc.hut.fi> 8 + * Copyright (c) 2005, Devicescape Software, Inc. 9 + * Copyright (c) 2006, Michael Wu <flamingice@sourmilk.net> 10 + * Copyright (c) 2013 - 2014 Intel Mobile Communications GmbH 11 + * Copyright (c) 2016 - 2017 Intel Deutschland GmbH 12 + * Copyright (c) 2018 - 2025 Intel Corporation 13 + */ 14 + 15 + #ifndef LINUX_IEEE80211_MESH_H 16 + #define LINUX_IEEE80211_MESH_H 17 + 18 + #include <linux/types.h> 19 + #include <linux/if_ether.h> 20 + 21 + #define IEEE80211_MAX_MESH_ID_LEN 32 22 + 23 + struct ieee80211s_hdr { 24 + u8 flags; 25 + u8 ttl; 26 + __le32 seqnum; 27 + u8 eaddr1[ETH_ALEN]; 28 + u8 eaddr2[ETH_ALEN]; 29 + } __packed __aligned(2); 30 + 31 + /* Mesh flags */ 32 + #define MESH_FLAGS_AE_A4 0x1 33 + #define MESH_FLAGS_AE_A5_A6 0x2 34 + #define MESH_FLAGS_AE 0x3 35 + #define MESH_FLAGS_PS_DEEP 0x4 36 + 37 + /** 38 + * enum ieee80211_preq_flags - mesh PREQ element flags 39 + * 40 + * @IEEE80211_PREQ_PROACTIVE_PREP_FLAG: proactive PREP subfield 41 + */ 42 + enum ieee80211_preq_flags { 43 + IEEE80211_PREQ_PROACTIVE_PREP_FLAG = 1<<2, 44 + }; 45 + 46 + /** 47 + * enum ieee80211_preq_target_flags - mesh PREQ element per target flags 48 + * 49 + * @IEEE80211_PREQ_TO_FLAG: target only subfield 50 + * @IEEE80211_PREQ_USN_FLAG: unknown target HWMP sequence number subfield 51 + */ 52 + enum ieee80211_preq_target_flags { 53 + IEEE80211_PREQ_TO_FLAG = 1<<0, 54 + IEEE80211_PREQ_USN_FLAG = 1<<2, 55 + }; 56 + 57 + /** 58 + * struct ieee80211_mesh_chansw_params_ie - mesh channel switch parameters IE 59 + * @mesh_ttl: Time To Live 60 + * @mesh_flags: Flags 61 + * @mesh_reason: Reason Code 62 + * @mesh_pre_value: Precedence Value 63 + * 64 + * This structure represents the payload of the "Mesh Channel Switch 65 + * Parameters element" as described in IEEE Std 802.11-2020 section 66 + * 9.4.2.102. 67 + */ 68 + struct ieee80211_mesh_chansw_params_ie { 69 + u8 mesh_ttl; 70 + u8 mesh_flags; 71 + __le16 mesh_reason; 72 + __le16 mesh_pre_value; 73 + } __packed; 74 + 75 + /** 76 + * struct ieee80211_meshconf_ie - Mesh Configuration element 77 + * @meshconf_psel: Active Path Selection Protocol Identifier 78 + * @meshconf_pmetric: Active Path Selection Metric Identifier 79 + * @meshconf_congest: Congestion Control Mode Identifier 80 + * @meshconf_synch: Synchronization Method Identifier 81 + * @meshconf_auth: Authentication Protocol Identifier 82 + * @meshconf_form: Mesh Formation Info 83 + * @meshconf_cap: Mesh Capability (see &enum mesh_config_capab_flags) 84 + * 85 + * This structure represents the payload of the "Mesh Configuration 86 + * element" as described in IEEE Std 802.11-2020 section 9.4.2.97. 87 + */ 88 + struct ieee80211_meshconf_ie { 89 + u8 meshconf_psel; 90 + u8 meshconf_pmetric; 91 + u8 meshconf_congest; 92 + u8 meshconf_synch; 93 + u8 meshconf_auth; 94 + u8 meshconf_form; 95 + u8 meshconf_cap; 96 + } __packed; 97 + 98 + /** 99 + * enum mesh_config_capab_flags - Mesh Configuration IE capability field flags 100 + * 101 + * @IEEE80211_MESHCONF_CAPAB_ACCEPT_PLINKS: STA is willing to establish 102 + * additional mesh peerings with other mesh STAs 103 + * @IEEE80211_MESHCONF_CAPAB_FORWARDING: the STA forwards MSDUs 104 + * @IEEE80211_MESHCONF_CAPAB_TBTT_ADJUSTING: TBTT adjustment procedure 105 + * is ongoing 106 + * @IEEE80211_MESHCONF_CAPAB_POWER_SAVE_LEVEL: STA is in deep sleep mode or has 107 + * neighbors in deep sleep mode 108 + * 109 + * Enumerates the "Mesh Capability" as described in IEEE Std 110 + * 802.11-2020 section 9.4.2.97.7. 111 + */ 112 + enum mesh_config_capab_flags { 113 + IEEE80211_MESHCONF_CAPAB_ACCEPT_PLINKS = 0x01, 114 + IEEE80211_MESHCONF_CAPAB_FORWARDING = 0x08, 115 + IEEE80211_MESHCONF_CAPAB_TBTT_ADJUSTING = 0x20, 116 + IEEE80211_MESHCONF_CAPAB_POWER_SAVE_LEVEL = 0x40, 117 + }; 118 + 119 + #define IEEE80211_MESHCONF_FORM_CONNECTED_TO_GATE 0x1 120 + 121 + /* 122 + * mesh channel switch parameters element's flag indicator 123 + * 124 + */ 125 + #define WLAN_EID_CHAN_SWITCH_PARAM_TX_RESTRICT BIT(0) 126 + #define WLAN_EID_CHAN_SWITCH_PARAM_INITIATOR BIT(1) 127 + #define WLAN_EID_CHAN_SWITCH_PARAM_REASON BIT(2) 128 + 129 + /** 130 + * struct ieee80211_rann_ie - RANN (root announcement) element 131 + * @rann_flags: Flags 132 + * @rann_hopcount: Hop Count 133 + * @rann_ttl: Element TTL 134 + * @rann_addr: Root Mesh STA Address 135 + * @rann_seq: HWMP Sequence Number 136 + * @rann_interval: Interval 137 + * @rann_metric: Metric 138 + * 139 + * This structure represents the payload of the "RANN element" as 140 + * described in IEEE Std 802.11-2020 section 9.4.2.111. 141 + */ 142 + struct ieee80211_rann_ie { 143 + u8 rann_flags; 144 + u8 rann_hopcount; 145 + u8 rann_ttl; 146 + u8 rann_addr[ETH_ALEN]; 147 + __le32 rann_seq; 148 + __le32 rann_interval; 149 + __le32 rann_metric; 150 + } __packed; 151 + 152 + enum ieee80211_rann_flags { 153 + RANN_FLAG_IS_GATE = 1 << 0, 154 + }; 155 + 156 + /* Mesh action codes */ 157 + enum ieee80211_mesh_actioncode { 158 + WLAN_MESH_ACTION_LINK_METRIC_REPORT, 159 + WLAN_MESH_ACTION_HWMP_PATH_SELECTION, 160 + WLAN_MESH_ACTION_GATE_ANNOUNCEMENT, 161 + WLAN_MESH_ACTION_CONGESTION_CONTROL_NOTIFICATION, 162 + WLAN_MESH_ACTION_MCCA_SETUP_REQUEST, 163 + WLAN_MESH_ACTION_MCCA_SETUP_REPLY, 164 + WLAN_MESH_ACTION_MCCA_ADVERTISEMENT_REQUEST, 165 + WLAN_MESH_ACTION_MCCA_ADVERTISEMENT, 166 + WLAN_MESH_ACTION_MCCA_TEARDOWN, 167 + WLAN_MESH_ACTION_TBTT_ADJUSTMENT_REQUEST, 168 + WLAN_MESH_ACTION_TBTT_ADJUSTMENT_RESPONSE, 169 + }; 170 + 171 + /** 172 + * enum ieee80211_mesh_sync_method - mesh synchronization method identifier 173 + * 174 + * @IEEE80211_SYNC_METHOD_NEIGHBOR_OFFSET: the default synchronization method 175 + * @IEEE80211_SYNC_METHOD_VENDOR: a vendor specific synchronization method 176 + * that will be specified in a vendor specific information element 177 + */ 178 + enum ieee80211_mesh_sync_method { 179 + IEEE80211_SYNC_METHOD_NEIGHBOR_OFFSET = 1, 180 + IEEE80211_SYNC_METHOD_VENDOR = 255, 181 + }; 182 + 183 + /** 184 + * enum ieee80211_mesh_path_protocol - mesh path selection protocol identifier 185 + * 186 + * @IEEE80211_PATH_PROTOCOL_HWMP: the default path selection protocol 187 + * @IEEE80211_PATH_PROTOCOL_VENDOR: a vendor specific protocol that will 188 + * be specified in a vendor specific information element 189 + */ 190 + enum ieee80211_mesh_path_protocol { 191 + IEEE80211_PATH_PROTOCOL_HWMP = 1, 192 + IEEE80211_PATH_PROTOCOL_VENDOR = 255, 193 + }; 194 + 195 + /** 196 + * enum ieee80211_mesh_path_metric - mesh path selection metric identifier 197 + * 198 + * @IEEE80211_PATH_METRIC_AIRTIME: the default path selection metric 199 + * @IEEE80211_PATH_METRIC_VENDOR: a vendor specific metric that will be 200 + * specified in a vendor specific information element 201 + */ 202 + enum ieee80211_mesh_path_metric { 203 + IEEE80211_PATH_METRIC_AIRTIME = 1, 204 + IEEE80211_PATH_METRIC_VENDOR = 255, 205 + }; 206 + 207 + /** 208 + * enum ieee80211_root_mode_identifier - root mesh STA mode identifier 209 + * 210 + * These attribute are used by dot11MeshHWMPRootMode to set root mesh STA mode 211 + * 212 + * @IEEE80211_ROOTMODE_NO_ROOT: the mesh STA is not a root mesh STA (default) 213 + * @IEEE80211_ROOTMODE_ROOT: the mesh STA is a root mesh STA if greater than 214 + * this value 215 + * @IEEE80211_PROACTIVE_PREQ_NO_PREP: the mesh STA is a root mesh STA supports 216 + * the proactive PREQ with proactive PREP subfield set to 0 217 + * @IEEE80211_PROACTIVE_PREQ_WITH_PREP: the mesh STA is a root mesh STA 218 + * supports the proactive PREQ with proactive PREP subfield set to 1 219 + * @IEEE80211_PROACTIVE_RANN: the mesh STA is a root mesh STA supports 220 + * the proactive RANN 221 + */ 222 + enum ieee80211_root_mode_identifier { 223 + IEEE80211_ROOTMODE_NO_ROOT = 0, 224 + IEEE80211_ROOTMODE_ROOT = 1, 225 + IEEE80211_PROACTIVE_PREQ_NO_PREP = 2, 226 + IEEE80211_PROACTIVE_PREQ_WITH_PREP = 3, 227 + IEEE80211_PROACTIVE_RANN = 4, 228 + }; 229 + 230 + #endif /* LINUX_IEEE80211_MESH_H */
+2 -209
include/linux/ieee80211.h
··· 252 252 253 253 #define IEEE80211_MAX_SSID_LEN 32 254 254 255 - #define IEEE80211_MAX_MESH_ID_LEN 32 256 - 257 255 #define IEEE80211_FIRST_TSPEC_TSID 8 258 256 #define IEEE80211_NUM_TIDS 16 259 257 ··· 879 881 return le16_get_bits(hdr->seq_ctrl, IEEE80211_SCTL_SEQ); 880 882 } 881 883 882 - struct ieee80211s_hdr { 883 - u8 flags; 884 - u8 ttl; 885 - __le32 seqnum; 886 - u8 eaddr1[ETH_ALEN]; 887 - u8 eaddr2[ETH_ALEN]; 888 - } __packed __aligned(2); 889 - 890 - /* Mesh flags */ 891 - #define MESH_FLAGS_AE_A4 0x1 892 - #define MESH_FLAGS_AE_A5_A6 0x2 893 - #define MESH_FLAGS_AE 0x3 894 - #define MESH_FLAGS_PS_DEEP 0x4 895 - 896 - /** 897 - * enum ieee80211_preq_flags - mesh PREQ element flags 898 - * 899 - * @IEEE80211_PREQ_PROACTIVE_PREP_FLAG: proactive PREP subfield 900 - */ 901 - enum ieee80211_preq_flags { 902 - IEEE80211_PREQ_PROACTIVE_PREP_FLAG = 1<<2, 903 - }; 904 - 905 - /** 906 - * enum ieee80211_preq_target_flags - mesh PREQ element per target flags 907 - * 908 - * @IEEE80211_PREQ_TO_FLAG: target only subfield 909 - * @IEEE80211_PREQ_USN_FLAG: unknown target HWMP sequence number subfield 910 - */ 911 - enum ieee80211_preq_target_flags { 912 - IEEE80211_PREQ_TO_FLAG = 1<<0, 913 - IEEE80211_PREQ_USN_FLAG = 1<<2, 914 - }; 915 - 916 884 /** 917 885 * struct ieee80211_quiet_ie - Quiet element 918 886 * @count: Quiet Count ··· 958 994 } __packed; 959 995 960 996 /** 961 - * struct ieee80211_mesh_chansw_params_ie - mesh channel switch parameters IE 962 - * @mesh_ttl: Time To Live 963 - * @mesh_flags: Flags 964 - * @mesh_reason: Reason Code 965 - * @mesh_pre_value: Precedence Value 966 - * 967 - * This structure represents the payload of the "Mesh Channel Switch 968 - * Parameters element" as described in IEEE Std 802.11-2020 section 969 - * 9.4.2.102. 970 - */ 971 - struct ieee80211_mesh_chansw_params_ie { 972 - u8 mesh_ttl; 973 - u8 mesh_flags; 974 - __le16 mesh_reason; 975 - __le16 mesh_pre_value; 976 - } __packed; 977 - 978 - /** 979 997 * struct ieee80211_wide_bw_chansw_ie - wide bandwidth channel switch IE 980 998 * @new_channel_width: New Channel Width 981 999 * @new_center_freq_seg0: New Channel Center Frequency Segment 0 ··· 996 1050 DECLARE_FLEX_ARRAY(u8, virtual_map); 997 1051 }; 998 1052 } __packed; 999 - 1000 - /** 1001 - * struct ieee80211_meshconf_ie - Mesh Configuration element 1002 - * @meshconf_psel: Active Path Selection Protocol Identifier 1003 - * @meshconf_pmetric: Active Path Selection Metric Identifier 1004 - * @meshconf_congest: Congestion Control Mode Identifier 1005 - * @meshconf_synch: Synchronization Method Identifier 1006 - * @meshconf_auth: Authentication Protocol Identifier 1007 - * @meshconf_form: Mesh Formation Info 1008 - * @meshconf_cap: Mesh Capability (see &enum mesh_config_capab_flags) 1009 - * 1010 - * This structure represents the payload of the "Mesh Configuration 1011 - * element" as described in IEEE Std 802.11-2020 section 9.4.2.97. 1012 - */ 1013 - struct ieee80211_meshconf_ie { 1014 - u8 meshconf_psel; 1015 - u8 meshconf_pmetric; 1016 - u8 meshconf_congest; 1017 - u8 meshconf_synch; 1018 - u8 meshconf_auth; 1019 - u8 meshconf_form; 1020 - u8 meshconf_cap; 1021 - } __packed; 1022 - 1023 - /** 1024 - * enum mesh_config_capab_flags - Mesh Configuration IE capability field flags 1025 - * 1026 - * @IEEE80211_MESHCONF_CAPAB_ACCEPT_PLINKS: STA is willing to establish 1027 - * additional mesh peerings with other mesh STAs 1028 - * @IEEE80211_MESHCONF_CAPAB_FORWARDING: the STA forwards MSDUs 1029 - * @IEEE80211_MESHCONF_CAPAB_TBTT_ADJUSTING: TBTT adjustment procedure 1030 - * is ongoing 1031 - * @IEEE80211_MESHCONF_CAPAB_POWER_SAVE_LEVEL: STA is in deep sleep mode or has 1032 - * neighbors in deep sleep mode 1033 - * 1034 - * Enumerates the "Mesh Capability" as described in IEEE Std 1035 - * 802.11-2020 section 9.4.2.97.7. 1036 - */ 1037 - enum mesh_config_capab_flags { 1038 - IEEE80211_MESHCONF_CAPAB_ACCEPT_PLINKS = 0x01, 1039 - IEEE80211_MESHCONF_CAPAB_FORWARDING = 0x08, 1040 - IEEE80211_MESHCONF_CAPAB_TBTT_ADJUSTING = 0x20, 1041 - IEEE80211_MESHCONF_CAPAB_POWER_SAVE_LEVEL = 0x40, 1042 - }; 1043 - 1044 - #define IEEE80211_MESHCONF_FORM_CONNECTED_TO_GATE 0x1 1045 - 1046 - /* 1047 - * mesh channel switch parameters element's flag indicator 1048 - * 1049 - */ 1050 - #define WLAN_EID_CHAN_SWITCH_PARAM_TX_RESTRICT BIT(0) 1051 - #define WLAN_EID_CHAN_SWITCH_PARAM_INITIATOR BIT(1) 1052 - #define WLAN_EID_CHAN_SWITCH_PARAM_REASON BIT(2) 1053 - 1054 - /** 1055 - * struct ieee80211_rann_ie - RANN (root announcement) element 1056 - * @rann_flags: Flags 1057 - * @rann_hopcount: Hop Count 1058 - * @rann_ttl: Element TTL 1059 - * @rann_addr: Root Mesh STA Address 1060 - * @rann_seq: HWMP Sequence Number 1061 - * @rann_interval: Interval 1062 - * @rann_metric: Metric 1063 - * 1064 - * This structure represents the payload of the "RANN element" as 1065 - * described in IEEE Std 802.11-2020 section 9.4.2.111. 1066 - */ 1067 - struct ieee80211_rann_ie { 1068 - u8 rann_flags; 1069 - u8 rann_hopcount; 1070 - u8 rann_ttl; 1071 - u8 rann_addr[ETH_ALEN]; 1072 - __le32 rann_seq; 1073 - __le32 rann_interval; 1074 - __le32 rann_metric; 1075 - } __packed; 1076 - 1077 - enum ieee80211_rann_flags { 1078 - RANN_FLAG_IS_GATE = 1 << 0, 1079 - }; 1080 1053 1081 1054 enum ieee80211_ht_chanwidth_values { 1082 1055 IEEE80211_HT_CHANWIDTH_20MHZ = 0, ··· 3836 3971 WLAN_SP_MGK_ACK = 5, 3837 3972 }; 3838 3973 3839 - /* Mesh action codes */ 3840 - enum ieee80211_mesh_actioncode { 3841 - WLAN_MESH_ACTION_LINK_METRIC_REPORT, 3842 - WLAN_MESH_ACTION_HWMP_PATH_SELECTION, 3843 - WLAN_MESH_ACTION_GATE_ANNOUNCEMENT, 3844 - WLAN_MESH_ACTION_CONGESTION_CONTROL_NOTIFICATION, 3845 - WLAN_MESH_ACTION_MCCA_SETUP_REQUEST, 3846 - WLAN_MESH_ACTION_MCCA_SETUP_REPLY, 3847 - WLAN_MESH_ACTION_MCCA_ADVERTISEMENT_REQUEST, 3848 - WLAN_MESH_ACTION_MCCA_ADVERTISEMENT, 3849 - WLAN_MESH_ACTION_MCCA_TEARDOWN, 3850 - WLAN_MESH_ACTION_TBTT_ADJUSTMENT_REQUEST, 3851 - WLAN_MESH_ACTION_TBTT_ADJUSTMENT_RESPONSE, 3852 - }; 3853 - 3854 3974 /* Unprotected WNM action codes */ 3855 3975 enum ieee80211_unprotected_wnm_actioncode { 3856 3976 WLAN_UNPROTECTED_WNM_ACTION_TIM = 0, ··· 4047 4197 4048 4198 /* BSS Coex IE information field bits */ 4049 4199 #define WLAN_BSS_COEX_INFORMATION_REQUEST BIT(0) 4050 - 4051 - /** 4052 - * enum ieee80211_mesh_sync_method - mesh synchronization method identifier 4053 - * 4054 - * @IEEE80211_SYNC_METHOD_NEIGHBOR_OFFSET: the default synchronization method 4055 - * @IEEE80211_SYNC_METHOD_VENDOR: a vendor specific synchronization method 4056 - * that will be specified in a vendor specific information element 4057 - */ 4058 - enum ieee80211_mesh_sync_method { 4059 - IEEE80211_SYNC_METHOD_NEIGHBOR_OFFSET = 1, 4060 - IEEE80211_SYNC_METHOD_VENDOR = 255, 4061 - }; 4062 - 4063 - /** 4064 - * enum ieee80211_mesh_path_protocol - mesh path selection protocol identifier 4065 - * 4066 - * @IEEE80211_PATH_PROTOCOL_HWMP: the default path selection protocol 4067 - * @IEEE80211_PATH_PROTOCOL_VENDOR: a vendor specific protocol that will 4068 - * be specified in a vendor specific information element 4069 - */ 4070 - enum ieee80211_mesh_path_protocol { 4071 - IEEE80211_PATH_PROTOCOL_HWMP = 1, 4072 - IEEE80211_PATH_PROTOCOL_VENDOR = 255, 4073 - }; 4074 - 4075 - /** 4076 - * enum ieee80211_mesh_path_metric - mesh path selection metric identifier 4077 - * 4078 - * @IEEE80211_PATH_METRIC_AIRTIME: the default path selection metric 4079 - * @IEEE80211_PATH_METRIC_VENDOR: a vendor specific metric that will be 4080 - * specified in a vendor specific information element 4081 - */ 4082 - enum ieee80211_mesh_path_metric { 4083 - IEEE80211_PATH_METRIC_AIRTIME = 1, 4084 - IEEE80211_PATH_METRIC_VENDOR = 255, 4085 - }; 4086 - 4087 - /** 4088 - * enum ieee80211_root_mode_identifier - root mesh STA mode identifier 4089 - * 4090 - * These attribute are used by dot11MeshHWMPRootMode to set root mesh STA mode 4091 - * 4092 - * @IEEE80211_ROOTMODE_NO_ROOT: the mesh STA is not a root mesh STA (default) 4093 - * @IEEE80211_ROOTMODE_ROOT: the mesh STA is a root mesh STA if greater than 4094 - * this value 4095 - * @IEEE80211_PROACTIVE_PREQ_NO_PREP: the mesh STA is a root mesh STA supports 4096 - * the proactive PREQ with proactive PREP subfield set to 0 4097 - * @IEEE80211_PROACTIVE_PREQ_WITH_PREP: the mesh STA is a root mesh STA 4098 - * supports the proactive PREQ with proactive PREP subfield set to 1 4099 - * @IEEE80211_PROACTIVE_RANN: the mesh STA is a root mesh STA supports 4100 - * the proactive RANN 4101 - */ 4102 - enum ieee80211_root_mode_identifier { 4103 - IEEE80211_ROOTMODE_NO_ROOT = 0, 4104 - IEEE80211_ROOTMODE_ROOT = 1, 4105 - IEEE80211_PROACTIVE_PREQ_NO_PREP = 2, 4106 - IEEE80211_PROACTIVE_PREQ_WITH_PREP = 3, 4107 - IEEE80211_PROACTIVE_RANN = 4, 4108 - }; 4109 4200 4110 4201 /* 4111 4202 * IEEE 802.11-2007 7.3.2.9 Country information element ··· 5888 6097 #define NAN_DEV_CAPA_SIM_NDP_RX_SUPPORTED 0x04 5889 6098 #define NAN_DEV_CAPA_NDPE_SUPPORTED 0x08 5890 6099 #define NAN_DEV_CAPA_S3_SUPPORTED 0x10 6100 + 6101 + #include "ieee80211-mesh.h" 5891 6102 5892 6103 #endif /* LINUX_IEEE80211_H */