Last active
March 9, 2023 05:38
-
-
Save Anthony96922/71e8a7b01a493f785877453375215088 to your computer and use it in GitHub Desktop.
Add more VHT capabilities reporting
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff -u -r iw-5.19/scan.c iw-5.19.mod/scan.c | |
--- iw-5.19/scan.c 2022-05-27 03:23:45.000000000 -0700 | |
+++ iw-5.19.mod/scan.c 2022-12-12 21:51:35.795381923 -0800 | |
@@ -1508,6 +1508,8 @@ | |
static void print_vht_oper(const uint8_t type, uint8_t len, const uint8_t *data, | |
const struct print_ies_data *ie_buffer) | |
{ | |
+ __u16 tmp; | |
+ int i; | |
const char *chandwidths[] = { | |
[0] = "20 or 40 MHz", | |
[1] = "80 MHz", | |
@@ -1521,6 +1523,16 @@ | |
printf("\t\t * center freq segment 1: %d\n", data[1]); | |
printf("\t\t * center freq segment 2: %d\n", data[2]); | |
printf("\t\t * VHT basic MCS set: 0x%.2x%.2x\n", data[4], data[3]); | |
+ tmp = data[3] | (data[4] << 8); | |
+ for (i = 1; i <= 8; i++) { | |
+ printf("\t\t\t%d streams: ", i); | |
+ switch ((tmp >> ((i-1)*2) ) & 3) { | |
+ case 0: printf("MCS 0-7\n"); break; | |
+ case 1: printf("MCS 0-8\n"); break; | |
+ case 2: printf("MCS 0-9\n"); break; | |
+ case 3: printf("not supported\n"); break; | |
+ } | |
+ } | |
} | |
static void print_supp_op_classes(const uint8_t type, uint8_t len, | |
diff -u -r iw-5.19/util.c iw-5.19.mod/util.c | |
--- iw-5.19/util.c 2022-05-27 03:23:45.000000000 -0700 | |
+++ iw-5.19.mod/util.c 2022-12-13 22:06:27.883522606 -0800 | |
@@ -1125,16 +1125,42 @@ | |
PRINT_VHT_CAPA(6, "short GI (160/80+80 MHz)"); | |
PRINT_VHT_CAPA(7, "TX STBC"); | |
/* RX STBC */ | |
+ switch ((capa & 0x700) >> 8) { | |
+ case 1: printf("\t\t\tRX STBC 1-stream\n"); break; | |
+ case 2: printf("\t\t\tRX STBC 2-streams\n"); break; | |
+ case 3: printf("\t\t\tRX STBC 3-streams\n"); break; | |
+ case 4: printf("\t\t\tRX STBC 4-streams\n"); break; | |
+ case 5: printf("\t\t\tRX STBC 5-streams\n"); break; | |
+ case 6: printf("\t\t\tRX STBC 6-streams\n"); break; | |
+ case 7: printf("\t\t\tRX STBC 7-streams\n"); break; | |
+ default: printf("\t\t\tNo RX STBC\n"); | |
+ } | |
PRINT_VHT_CAPA(11, "SU Beamformer"); | |
PRINT_VHT_CAPA(12, "SU Beamformee"); | |
/* compressed steering */ | |
+ printf("\t\t\tCompressed Steering Number of Beamformer Antennas: %d\n", | |
+ ((capa & 0xe000) >> 13) + 1); | |
/* # of sounding dimensions */ | |
+ printf("\t\t\tNumber of Sounding Dimensions: %d\n", | |
+ ((capa & 0x70000) >> 16) + 1); | |
PRINT_VHT_CAPA(19, "MU Beamformer"); | |
PRINT_VHT_CAPA(20, "MU Beamformee"); | |
PRINT_VHT_CAPA(21, "VHT TXOP PS"); | |
PRINT_VHT_CAPA(22, "+HTC-VHT"); | |
/* max A-MPDU */ | |
+ printf("\t\t\tMax A-MPDU Length: %d (exponent: %d)\n", | |
+ (1 << (((capa & 0x3800000) >> 23) + 13)) - 1, | |
+ ((capa & 0x3800000) >> 23)); | |
/* VHT link adaptation */ | |
+ printf("\t\t\tVHT Link Adaptation: "); | |
+ switch ((capa & 0xc000000) >> 26) { | |
+ case 1: printf("(reserved)\n"); break; | |
+ case 2: printf("Unsolicited\n"); break; | |
+ case 3: printf("Both Solicited and Unsolicited\n"); break; | |
+ default: printf("No Feedback\n"); break; | |
+ } | |
PRINT_VHT_CAPA(28, "RX antenna pattern consistency"); | |
PRINT_VHT_CAPA(29, "TX antenna pattern consistency"); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment