OpenWrt: Set VAP configuration for OWE parameters
Signed-off-by: priyadharshini gowthaman <pgowtham@codeaurora.org>
diff --git a/ap.c b/ap.c
index 2fc47bf..2d8bc35 100644
--- a/ap.c
+++ b/ap.c
@@ -2622,6 +2622,8 @@
{
char buf[256], *temp;
int vap_id = 0, vap_count, i, j;
+ const char *ifname;
+ char ifname2[50];
for (vap_count = 0; vap_count < OPENWRT_MAX_NUM_RADIOS; vap_count++) {
snprintf(buf, sizeof(buf), "wifi%d", vap_count);
@@ -2658,6 +2660,25 @@
owrt_ap_set_vap(dut, vap_count + (wlan_tag - 1),
"ssid", buf);
+ if (dut->ap_key_mgmt == AP_WPA2_OWE &&
+ dut->ap_tag_ssid[0][0] &&
+ dut->ap_tag_key_mgmt[0] == AP2_OPEN) {
+ /* OWE transition mode */
+ snprintf(buf, sizeof(buf), "%s", ifname);
+ owrt_ap_set_vap(dut, vap_count + (wlan_tag - 1),
+ "owe_transition_ifname", buf);
+ }
+
+ if (dut->ap_key_mgmt == AP_OPEN &&
+ dut->ap_tag_key_mgmt[0] == AP2_WPA2_OWE) {
+ /* OWE transition mode */
+ snprintf(buf, sizeof(buf), "%s", ifname);
+ owrt_ap_set_vap(dut, vap_count + (wlan_tag - 1),
+ "owe_transition_ifname", buf);
+ owrt_ap_set_vap(dut, vap_count + (wlan_tag - 1),
+ "hidden", "1");
+ }
+
if (dut->ap_ft_oa == 1) {
unsigned char self_mac[ETH_ALEN];
char mac_str[20];
@@ -2735,6 +2756,21 @@
snprintf(buf, sizeof(buf), "%d", dut->ap_pmf);
owrt_ap_set_vap(dut, vap_count + (wlan_tag - 1),
"ieee80211w", buf);
+ } else if (dut->ap_tag_key_mgmt[0] == AP2_WPA2_OWE) {
+ owrt_ap_set_vap(dut, vap_count + (wlan_tag - 1),
+ "owe", "1");
+ snprintf(buf, sizeof(buf), "ccmp");
+ owrt_ap_set_vap(dut, vap_count + (wlan_tag - 1),
+ "encryption", buf);
+ owrt_ap_set_vap(dut, vap_count + (wlan_tag - 1),
+ "ieee80211w", "2");
+ if (dut->ap_sae_groups) {
+ snprintf(buf, sizeof(buf), "\'%s\'",
+ dut->ap_sae_groups);
+ owrt_ap_set_vap(dut, vap_count +
+ (wlan_tag - 1),
+ "owe_groups", buf);
+ }
}
}
@@ -2908,6 +2944,15 @@
owrt_ap_set_vap(dut, vap_count, "encryption",
"none");
}
+ if (dut->ap_key_mgmt == AP_OPEN &&
+ dut->ap_tag_key_mgmt[0] == AP2_WPA2_OWE) {
+ /* OWE transition mode */
+ snprintf(ifname2, sizeof(ifname2), "%s1",
+ ifname);
+ owrt_ap_set_vap(dut, vap_count,
+ "owe_transition_ifname",
+ ifname2);
+ }
break;
case AP_WPA2_PSK:
case AP_WPA2_PSK_MIXED:
@@ -3008,9 +3053,27 @@
buf);
break;
case AP_WPA2_OWE:
- /* TODO */
- sigma_dut_print(dut, DUT_MSG_ERROR,
- "OWE not supported");
+ owrt_ap_set_vap(dut, vap_count, "owe", "1");
+ snprintf(buf, sizeof(buf), "ccmp");
+ owrt_ap_set_vap(dut, vap_count, "encryption", buf);
+ if (dut->ap_sae_groups) {
+ snprintf(buf, sizeof(buf), "\'%s\'",
+ dut->ap_sae_groups);
+ owrt_ap_set_vap(dut, vap_count, "owe_groups",
+ buf);
+ }
+
+ if (dut->ap_key_mgmt == AP_WPA2_OWE &&
+ dut->ap_tag_ssid[0][0] &&
+ dut->ap_tag_key_mgmt[0] == AP2_OPEN) {
+ /* OWE transition mode */
+ snprintf(ifname2, sizeof(ifname2), "%s1",
+ ifname);
+ owrt_ap_set_vap(dut, vap_count,
+ "owe_transition_ifname",
+ ifname2);
+ owrt_ap_set_vap(dut, vap_count, "hidden", "1");
+ }
break;
}