]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
OCV: Report OCI validation failures with OCV-FAILURE messages (STA)
authorJouni Malinen <jouni@codeaurora.org>
Fri, 29 May 2020 21:24:15 +0000 (00:24 +0300)
committerJouni Malinen <j@w1.fi>
Fri, 29 May 2020 21:24:15 +0000 (00:24 +0300)
Convert the previously used text log entries to use the more formal
OCV-FAILURE prefix and always send these as control interface events to
allow upper layers to get information about unexpected operating channel
mismatches.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
src/rsn_supp/wpa.c
src/rsn_supp/wpa_ft.c
wpa_supplicant/sme.c

index 482cc06233747f91b401379a199fe2de65a3bfb8..0ae73e8f39469b2099ca8f680e5d4925c311eaa0 100644 (file)
@@ -22,6 +22,7 @@
 #include "common/ieee802_11_common.h"
 #include "common/ocv.h"
 #include "common/dpp.h"
+#include "common/wpa_ctrl.h"
 #include "eap_common/eap_defs.h"
 #include "eapol_supp/eapol_supp_sm.h"
 #include "drivers/driver.h"
@@ -1717,8 +1718,9 @@ static void wpa_supplicant_process_3_of_4(struct wpa_sm *sm,
                if (ocv_verify_tx_params(ie.oci, ie.oci_len, &ci,
                                         channel_width_to_int(ci.chanwidth),
                                         ci.seg1_idx) != 0) {
-                       wpa_msg(sm->ctx->msg_ctx, MSG_WARNING, "OCV failed: %s",
-                               ocv_errorstr);
+                       wpa_msg(sm->ctx->msg_ctx, MSG_INFO, OCV_FAILURE
+                               "addr=" MACSTR " frame=eapol-key-m3 error=%s",
+                               MAC2STR(sm->bssid), ocv_errorstr);
                        return;
                }
        }
@@ -1864,8 +1866,9 @@ static int wpa_supplicant_process_1_of_2_rsn(struct wpa_sm *sm,
                if (ocv_verify_tx_params(ie.oci, ie.oci_len, &ci,
                                         channel_width_to_int(ci.chanwidth),
                                         ci.seg1_idx) != 0) {
-                       wpa_msg(sm->ctx->msg_ctx, MSG_WARNING, "OCV failed: %s",
-                               ocv_errorstr);
+                       wpa_msg(sm->ctx->msg_ctx, MSG_INFO, OCV_FAILURE
+                               "addr=" MACSTR " frame=eapol-key-g1 error=%s",
+                               MAC2STR(sm->bssid), ocv_errorstr);
                        return -1;
                }
        }
@@ -4764,8 +4767,9 @@ int fils_process_assoc_resp(struct wpa_sm *sm, const u8 *resp, size_t len)
                if (ocv_verify_tx_params(elems.oci, elems.oci_len, &ci,
                                         channel_width_to_int(ci.chanwidth),
                                         ci.seg1_idx) != 0) {
-                       wpa_printf(MSG_WARNING, "FILS: OCV failed: %s",
-                                  ocv_errorstr);
+                       wpa_msg(sm->ctx->msg_ctx, MSG_INFO, OCV_FAILURE
+                               "addr=" MACSTR " frame=fils-assoc error=%s",
+                               MAC2STR(sm->bssid), ocv_errorstr);
                        goto fail;
                }
        }
index 0cb327d7ed7734b04a477ff3d6f371dca0a2d978..00151df59c8ef7f4fabbc1288a1693e13dac2303 100644 (file)
@@ -15,6 +15,7 @@
 #include "common/ieee802_11_defs.h"
 #include "common/ieee802_11_common.h"
 #include "common/ocv.h"
+#include "common/wpa_ctrl.h"
 #include "drivers/driver.h"
 #include "wpa.h"
 #include "wpa_i.h"
@@ -1159,7 +1160,9 @@ int wpa_ft_validate_reassoc_resp(struct wpa_sm *sm, const u8 *ies,
                if (ocv_verify_tx_params(parse.oci, parse.oci_len, &ci,
                                         channel_width_to_int(ci.chanwidth),
                                         ci.seg1_idx) != 0) {
-                       wpa_printf(MSG_WARNING, "OCV failed: %s", ocv_errorstr);
+                       wpa_msg(sm->ctx->msg_ctx, MSG_INFO, OCV_FAILURE
+                               "addr=" MACSTR " frame=ft-assoc error=%s",
+                               MAC2STR(sm->bssid), ocv_errorstr);
                        return -1;
                }
        }
index 7e8de4eb7d9e5152570c02d77b10012cd2b30aa9..753e40965159859ce58ec9e82ed71fa4cc196a25 100644 (file)
@@ -2827,7 +2827,10 @@ void sme_sa_query_rx(struct wpa_supplicant *wpa_s, const u8 *sa,
                if (ocv_verify_tx_params(elems.oci, elems.oci_len, &ci,
                                         channel_width_to_int(ci.chanwidth),
                                         ci.seg1_idx) != 0) {
-                       wpa_printf(MSG_WARNING, "OCV failed: %s", ocv_errorstr);
+                       wpa_msg(wpa_s, MSG_INFO, OCV_FAILURE "addr=" MACSTR
+                               " frame=saquery%s error=%s",
+                               MAC2STR(sa), data[0] == WLAN_SA_QUERY_REQUEST ?
+                               "req" : "resp", ocv_errorstr);
                        return;
                }
        }