From 650cac7979f9fb334b5f19af9bd382f655901968 Mon Sep 17 00:00:00 2001 From: James Prestwood Date: Fri, 25 Feb 2022 09:58:00 -0800 Subject: [PATCH] band: add operating clases for 802.11ax Obtained from the IEEE 802.11ax amendment, Table E-4 --- src/band.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 55 insertions(+), 8 deletions(-) diff --git a/src/band.c b/src/band.c index 9024d186..28ba6a62 100644 --- a/src/band.c +++ b/src/band.c @@ -489,8 +489,8 @@ static int band_channel_info_get_bandwidth(const struct band_chandef *info) struct operating_class_info { uint32_t starting_frequency; uint32_t flags; - uint8_t channel_set[20]; - uint8_t center_frequencies[8]; + uint8_t channel_set[60]; + uint8_t center_frequencies[30]; uint16_t channel_spacing; uint8_t operating_class; }; @@ -598,20 +598,20 @@ static const struct operating_class_info e4_operating_classes[] = { { .operating_class = 125, .starting_frequency = 5000, - .channel_set = { 149, 153, 157, 161, 165, 169, 173}, + .channel_set = { 149, 153, 157, 161, 165, 169, 173, 177 }, .channel_spacing = 20, }, { .operating_class = 126, .starting_frequency = 5000, - .channel_set = { 149, 157, 165}, + .channel_set = { 149, 157, 165, 173 }, .channel_spacing = 40, .flags = PRIMARY_CHANNEL_LOWER, }, { .operating_class = 127, .starting_frequency = 5000, - .channel_set = { 153, 161, 169 }, + .channel_set = { 153, 161, 169, 177 }, .channel_spacing = 40, .flags = PRIMARY_CHANNEL_UPPER, }, @@ -619,21 +619,68 @@ static const struct operating_class_info e4_operating_classes[] = { .operating_class = 128, .starting_frequency = 5000, .channel_spacing = 80, - .center_frequencies = { 42, 58, 106, 122, 138, 155 }, + .center_frequencies = { 42, 58, 106, 122, 138, 155, 171 }, }, { .operating_class = 129, .starting_frequency = 5000, .channel_spacing = 160, - .center_frequencies = { 50, 114 }, + .center_frequencies = { 50, 114, 163 }, }, { .operating_class = 130, .starting_frequency = 5000, .channel_spacing = 80, - .center_frequencies = { 42, 58, 106, 122, 138, 155 }, + .center_frequencies = { 42, 58, 106, 122, 138, 155, 171 }, .flags = PLUS80, }, + { + .operating_class = 131, + .starting_frequency = 5950, + .channel_spacing = 20, + .channel_set = { 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, + 49, 53, 57, 61, 65, 69, 73, 77, 81, 85, 89, 93, + 97, 101, 105, 109, 113, 117, 121, 125, 129, 133, + 137, 141, 145, 149, 153, 157, 161, 165, 169, + 173, 177, 181, 185, 189, 193, 197, 201, 205, + 209, 213, 217, 221, 225, 229, 233 }, + }, + { + .operating_class = 132, + .starting_frequency = 5950, + .channel_spacing = 40, + .center_frequencies = { 3, 11, 19, 27, 35, 43, 51, 59, 67, 75, + 83, 91, 99, 107, 115, 123, 131, 139, + 147, 155, 163, 171, 179, 187, 195, 203, + 211, 219, 227 }, + }, + { + .operating_class = 133, + .starting_frequency = 5950, + .channel_spacing = 80, + .center_frequencies = { 7, 23, 39, 55, 71, 87, 103, 119, 135, + 151, 167, 183, 199, 215 }, + }, + { + .operating_class = 134, + .starting_frequency = 5950, + .channel_spacing = 160, + .center_frequencies = { 15, 47, 79, 111, 143, 175, 207 }, + }, + { + .operating_class = 135, + .starting_frequency = 5950, + .channel_spacing = 80, + .center_frequencies = { 7, 23, 39, 55, 71, 87, 102, 119, 135, + 151, 167, 183, 199, 215 }, + .flags = PLUS80, + }, + { + .operating_class = 136, + .starting_frequency = 5950, + .channel_spacing = 20, + .center_frequencies = { 2 }, + } }; static const struct operating_class_info *e4_find_opclass(uint32_t opclass)