Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f521450b authored by Sunil Ravi's avatar Sunil Ravi
Browse files

wifi: Send DPP connection status result

This change is for Enrollee to send the DPP connection status
result frame to configurator. The changes includes,
1. Modified the existing onDppSuccessConfigReceived callback function
to indicate that configurator has requested for the connection status
result frame.
2. New callback function to indicate that the connection status result
frame is sent.
3. Defined connection status code.

Bug: 235844564
Test: m android.hardware.wifi.supplicant-update-api
Test: Manual - Ran DPP tests and confirmed that
      connection status frame is processed correctly
Change-Id: I45866707971c874c9270e7316a7b86fe0953d95a
parent a1de8499
Loading
Loading
Loading
Loading
+43 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2022 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
///////////////////////////////////////////////////////////////////////////////

// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
//     the interface (from the latest frozen version), the build system will
//     prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.

package android.hardware.wifi.supplicant;
@VintfStability
parcelable DppConfigurationData {
  byte[] ssid;
  String password;
  byte[] psk;
  android.hardware.wifi.supplicant.DppAkm securityAkm;
  android.hardware.wifi.supplicant.DppConnectionKeys dppConnectionKeys;
  boolean connStatusRequested;
}
+53 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2022 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
///////////////////////////////////////////////////////////////////////////////

// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
//     the interface (from the latest frozen version), the build system will
//     prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.

package android.hardware.wifi.supplicant;
@Backing(type="int") @VintfStability
enum DppStatusErrorCode {
  UNKNOWN = -1,
  SUCCESS = 0,
  NOT_COMPATIBLE = 1,
  AUTH_FAILURE = 2,
  UNWRAP_FAILURE = 3,
  BAD_GROUP = 4,
  CONFIGURE_FAILURE = 5,
  RESPONSE_PENDING = 6,
  INVALID_CONNECTOR = 7,
  NO_MATCH = 8,
  CONFIG_REJECTED = 9,
  NO_AP = 10,
  CONFIGURE_PENDING = 11,
  CSR_NEEDED = 12,
  CSR_BAD = 13,
  NEW_KEY_NEEDED = 14,
}
+5 −0
Original line number Diff line number Diff line
@@ -44,6 +44,9 @@ interface ISupplicantStaIfaceCallback {
  oneway void onDppFailure(in android.hardware.wifi.supplicant.DppFailureCode code, in String ssid, in String channelList, in char[] bandList);
  oneway void onDppProgress(in android.hardware.wifi.supplicant.DppProgressCode code);
  oneway void onDppSuccess(in android.hardware.wifi.supplicant.DppEventType event);
  /**
   * @deprecated This callback is deprecated from AIDL v2, newer HAL should call onDppConfigReceived.
   */
  oneway void onDppSuccessConfigReceived(in byte[] ssid, in String password, in byte[] psk, in android.hardware.wifi.supplicant.DppAkm securityAkm, in android.hardware.wifi.supplicant.DppConnectionKeys dppConnectionKeys);
  oneway void onDppSuccessConfigSent();
  oneway void onEapFailure(in byte[] bssid, in int errorCode);
@@ -65,6 +68,8 @@ interface ISupplicantStaIfaceCallback {
  oneway void onQosPolicyRequest(in int qosPolicyRequestId, in android.hardware.wifi.supplicant.QosPolicyData[] qosPolicyData);
  oneway void onStateChangedWithAkm(in android.hardware.wifi.supplicant.StaIfaceCallbackState newState, in byte[] bssid, in int id, in byte[] ssid, in boolean filsHlpSent, in android.hardware.wifi.supplicant.KeyMgmtMask keyMgmtMask);
  oneway void onMloLinksInfoChanged(in android.hardware.wifi.supplicant.ISupplicantStaIfaceCallback.MloLinkInfoChangeReason reason);
  oneway void onDppConfigReceived(in android.hardware.wifi.supplicant.DppConfigurationData configData);
  oneway void onDppConnectionStatusResultSent(in android.hardware.wifi.supplicant.DppStatusErrorCode code);
  @Backing(type="int") @VintfStability
  enum MloLinkInfoChangeReason {
    TID_TO_LINK_MAP = 0,
+53 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2022 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package android.hardware.wifi.supplicant;

import android.hardware.wifi.supplicant.DppAkm;
import android.hardware.wifi.supplicant.DppConnectionKeys;

/**
 * DPP configuration related information.
 */
@VintfStability
parcelable DppConfigurationData {
    /*
     * SSID of the network.
     */
    byte[] ssid;
    /*
     * WPA2 or SAE passphrase.
     */
    String password;
    /*
     * Pre-shared key encoded in hex.
     */
    byte[] psk;
    /*
     * AKM that can be provisioned using DPP.
     */
    DppAkm securityAkm;
    /*
     * Connection keys that are used for DPP network connection.
     */
    DppConnectionKeys dppConnectionKeys;
    /*
     * Optional flag to indicate that the configurator requested connection status
     * result.
     * This flag is set to true if the enrollee receives the configuration response
     * frame with sendConnStatus attribute.
     */
    boolean connStatusRequested;
}
+43 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2022 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.hardware.wifi.supplicant;

/**
 * DppStatusErrorCode: The possible values for the DPP status and error codes
 * in the DPP protocol.
 * See Easy Connect specification V2.0 section 8.3.4 for details.
 */
@VintfStability
@Backing(type="int")
enum DppStatusErrorCode {
    UNKNOWN = -1,
    SUCCESS = 0,
    NOT_COMPATIBLE = 1,
    AUTH_FAILURE = 2,
    UNWRAP_FAILURE = 3,
    BAD_GROUP = 4,
    CONFIGURE_FAILURE = 5,
    RESPONSE_PENDING = 6,
    INVALID_CONNECTOR = 7,
    NO_MATCH = 8,
    CONFIG_REJECTED = 9,
    NO_AP = 10,
    CONFIGURE_PENDING = 11,
    CSR_NEEDED = 12,
    CSR_BAD = 13,
    NEW_KEY_NEEDED = 14,
}
Loading