diff --git a/src/utils/opclass.c b/src/utils/opclass.c index 59b75dd4b3fc77a14a4e6126c49feec0e4c0661b..a56d7979484447e816255b7909baf2ec76147ccf 100644 --- a/src/utils/opclass.c +++ b/src/utils/opclass.c @@ -9,6 +9,257 @@ #include "debug.h" #include "opclass.h" +static const struct wifi_opclass e4 = { + .entry_num = 1, + .entry = { + { + .id = 81, + .bandwidth = 20, + .channel_num = 13, + .channel = { + { .channel = 1, .preference = 15 << 4 }, + { .channel = 2, .preference = 15 << 4 }, + { .channel = 3, .preference = 15 << 4 }, + { .channel = 4, .preference = 15 << 4 }, + { .channel = 5, .preference = 15 << 4 }, + { .channel = 6, .preference = 15 << 4 }, + { .channel = 7, .preference = 15 << 4 }, + { .channel = 8, .preference = 15 << 4 }, + { .channel = 9, .preference = 15 << 4 }, + { .channel = 10, .preference = 15 << 4 }, + { .channel = 11, .preference = 15 << 4 }, + { .channel = 12, .preference = 15 << 4 }, + { .channel = 13, .preference = 15 << 4 }, + } + }, + { + .id = 82, + .bandwidth = 20, + .channel_num = 1, + .channel = { + { .channel = 14, .preference = 15 << 4 }, + } + }, + { + .id = 83, + .bandwidth = 40, + .channel_num = 9, + .channel = { + { .channel = 1, .preference = 15 << 4 }, + { .channel = 2, .preference = 15 << 4 }, + { .channel = 3, .preference = 15 << 4 }, + { .channel = 4, .preference = 15 << 4 }, + { .channel = 5, .preference = 15 << 4 }, + { .channel = 6, .preference = 15 << 4 }, + { .channel = 7, .preference = 15 << 4 }, + { .channel = 8, .preference = 15 << 4 }, + { .channel = 9, .preference = 15 << 4 }, + } + }, + { + .id = 84, + .bandwidth = 40, + .channel_num = 9, + .channel = { + { .channel = 5, .preference = 15 << 4 }, + { .channel = 6, .preference = 15 << 4 }, + { .channel = 7, .preference = 15 << 4 }, + { .channel = 8, .preference = 15 << 4 }, + { .channel = 9, .preference = 15 << 4 }, + { .channel = 10, .preference = 15 << 4 }, + { .channel = 11, .preference = 15 << 4 }, + { .channel = 12, .preference = 15 << 4 }, + { .channel = 13, .preference = 15 << 4 }, + } + }, + { + .id = 115, + .bandwidth = 20, + .channel_num = 4, + .channel = { + { .channel = 36, .preference = 15 << 4 }, + { .channel = 40, .preference = 15 << 4 }, + { .channel = 44, .preference = 15 << 4 }, + { .channel = 48, .preference = 15 << 4 }, + } + }, + { + .id = 116, + .bandwidth = 40, + .channel_num = 2, + .channel = { + { .channel = 36, .preference = 15 << 4 }, + { .channel = 44, .preference = 15 << 4 }, + } + }, + { + .id = 117, + .bandwidth = 40, + .channel_num = 2, + .channel = { + { .channel = 40, .preference = 15 << 4 }, + { .channel = 48, .preference = 15 << 4 }, + } + }, + { + .id = 118, + .bandwidth = 20, + .channel_num = 4, + .channel = { + { .channel = 52, .preference = 15 << 4 }, + { .channel = 56, .preference = 15 << 4 }, + { .channel = 60, .preference = 15 << 4 }, + { .channel = 64, .preference = 15 << 4 }, + } + }, + { + .id = 119, + .bandwidth = 40, + .channel_num = 2, + .channel = { + { .channel = 52, .preference = 15 << 4 }, + { .channel = 60, .preference = 15 << 4 }, + } + }, + { + .id = 120, + .bandwidth = 40, + .channel_num = 2, + .channel = { + { .channel = 56, .preference = 15 << 4 }, + { .channel = 64, .preference = 15 << 4 }, + } + }, + { + .id = 121, + .bandwidth = 20, + .channel_num = 12, + .channel = { + { .channel = 100, .preference = 15 << 4 }, + { .channel = 104, .preference = 15 << 4 }, + { .channel = 108, .preference = 15 << 4 }, + { .channel = 112, .preference = 15 << 4 }, + { .channel = 116, .preference = 15 << 4 }, + { .channel = 120, .preference = 15 << 4 }, + { .channel = 124, .preference = 15 << 4 }, + { .channel = 128, .preference = 15 << 4 }, + { .channel = 132, .preference = 15 << 4 }, + { .channel = 136, .preference = 15 << 4 }, + { .channel = 140, .preference = 15 << 4 }, + { .channel = 144, .preference = 15 << 4 }, + } + }, + { + .id = 122, + .bandwidth = 40, + .channel_num = 6, + .channel = { + { .channel = 100, .preference = 15 << 4 }, + { .channel = 108, .preference = 15 << 4 }, + { .channel = 116, .preference = 15 << 4 }, + { .channel = 124, .preference = 15 << 4 }, + { .channel = 132, .preference = 15 << 4 }, + { .channel = 140, .preference = 15 << 4 }, + } + }, + { + .id = 123, + .bandwidth = 40, + .channel_num = 6, + .channel = { + { .channel = 104, .preference = 15 << 4 }, + { .channel = 112, .preference = 15 << 4 }, + { .channel = 120, .preference = 15 << 4 }, + { .channel = 128, .preference = 15 << 4 }, + { .channel = 136, .preference = 15 << 4 }, + { .channel = 144, .preference = 15 << 4 }, + } + }, + { + .id = 124, + .bandwidth = 40, + .channel_num = 4, + .channel = { + { .channel = 149, .preference = 15 << 4 }, + { .channel = 153, .preference = 15 << 4 }, + { .channel = 157, .preference = 15 << 4 }, + { .channel = 161, .preference = 15 << 4 }, + } + }, + { + .id = 125, + .bandwidth = 20, + .channel_num = 6, + .channel = { + { .channel = 149, .preference = 15 << 4 }, + { .channel = 153, .preference = 15 << 4 }, + { .channel = 157, .preference = 15 << 4 }, + { .channel = 161, .preference = 15 << 4 }, + { .channel = 164, .preference = 15 << 4 }, + { .channel = 169, .preference = 15 << 4 }, + } + }, + { + .id = 126, + .bandwidth = 40, + .channel_num = 2, + .channel = { + { .channel = 149, .preference = 15 << 4 }, + { .channel = 157, .preference = 15 << 4 }, + } + }, + { + .id = 127, + .bandwidth = 40, + .channel_num = 2, + .channel = { + { .channel = 153, .preference = 15 << 4 }, + { .channel = 161, .preference = 15 << 4 }, + } + }, + { + .id = 128, + .bandwidth = 80, + .channel_num = 6, + .channel = { + { .channel = 42, .preference = 15 << 4 }, + { .channel = 58, .preference = 15 << 4 }, + { .channel = 106, .preference = 15 << 4 }, + { .channel = 122, .preference = 15 << 4 }, + { .channel = 138, .preference = 15 << 4 }, + { .channel = 155, .preference = 15 << 4 }, + } + }, + { + .id = 129, + .bandwidth = 160, + .channel_num = 2, + .channel = { + { .channel = 50, .preference = 15 << 4 }, + { .channel = 114, .preference = 15 << 4 }, + } + }, + { + .id = 130, + .bandwidth = 80, + .channel_num = 6, + .channel = { + { .channel = 42, .preference = 15 << 4 }, + { .channel = 58, .preference = 15 << 4 }, + { .channel = 106, .preference = 15 << 4 }, + { .channel = 122, .preference = 15 << 4 }, + { .channel = 138, .preference = 15 << 4 }, + { .channel = 155, .preference = 15 << 4 }, + } + }, + }, +}; + +const struct wifi_opclass *wifi_opclass_e4(void) +{ + return &e4; +} + struct wifi_opclass_entry *wifi_opclass_find_entry(struct wifi_opclass *opclass, uint8_t id) { struct wifi_opclass_entry *entry; diff --git a/src/utils/opclass.h b/src/utils/opclass.h index 25b8e484fc80f905f2a5490f77451ff0637c32a3..90849fea0aca91396ab9cd993eebd8c0a33d27be 100644 --- a/src/utils/opclass.h +++ b/src/utils/opclass.h @@ -35,6 +35,8 @@ struct wifi_opclass { struct wifi_opclass_entry entry[64]; }; +const struct wifi_opclass *wifi_opclass_e4(void); + struct wifi_opclass_entry *wifi_opclass_find_entry(struct wifi_opclass *opclass, uint8_t id); struct wifi_opclass_entry *wifi_opclass_new_entry(struct wifi_opclass *opclass); @@ -50,5 +52,4 @@ void wifi_opclass_dump(struct wifi_opclass *opclass); uint8_t wifi_opclass_get_id(struct wifi_opclass *opclass, uint8_t channel, int bandwidth); bool wifi_opclass_channel_supported(struct wifi_opclass *opclass, uint8_t id, uint8_t channel, int bandwidth); - #endif /* _OPCLASS_H_ */