Merge "Add QosCharacteristics to the supplicant AIDL interface." into main

This commit is contained in:
Gabriel Biren
2023-12-08 22:59:48 +00:00
committed by Android (Google) Code Review
6 changed files with 312 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
/*
* Copyright (C) 2023 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 MsduDeliveryInfo {
android.hardware.wifi.supplicant.MsduDeliveryInfo.DeliveryRatio deliveryRatio;
byte countExponent;
@Backing(type="byte") @VintfStability
enum DeliveryRatio {
RATIO_95 = 1,
RATIO_96 = 2,
RATIO_97 = 3,
RATIO_98 = 4,
RATIO_99 = 5,
RATIO_99_9 = 6,
RATIO_99_99 = 7,
RATIO_99_999 = 8,
RATIO_99_9999 = 9,
}
}

View File

@@ -0,0 +1,59 @@
/*
* Copyright (C) 2023 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 QosCharacteristics {
int minServiceIntervalUs;
int maxServiceIntervalUs;
int minDataRateKbps;
int delayBoundUs;
int optionalFieldMask;
char maxMsduSizeOctets;
int serviceStartTimeUs;
byte serviceStartTimeLinkId;
int meanDataRateKbps;
int burstSizeOctets;
char msduLifetimeMs;
android.hardware.wifi.supplicant.MsduDeliveryInfo msduDeliveryInfo;
@Backing(type="int") @VintfStability
enum QosCharacteristicsMask {
MAX_MSDU_SIZE = (1 << 0) /* 1 */,
SERVICE_START_TIME = (1 << 1) /* 2 */,
SERVICE_START_TIME_LINK_ID = (1 << 2) /* 4 */,
MEAN_DATA_RATE = (1 << 3) /* 8 */,
BURST_SIZE = (1 << 4) /* 16 */,
MSDU_LIFETIME = (1 << 5) /* 32 */,
MSDU_DELIVERY_INFO = (1 << 6) /* 64 */,
}
}

View File

@@ -22,4 +22,11 @@ parcelable QosPolicyScsData {
byte policyId;
byte userPriority;
android.hardware.wifi.supplicant.QosPolicyClassifierParams classifierParams;
android.hardware.wifi.supplicant.QosPolicyScsData.LinkDirection direction;
@nullable android.hardware.wifi.supplicant.QosCharacteristics QosCharacteristics;
@Backing(type="byte") @VintfStability
enum LinkDirection {
DOWNLINK,
UPLINK,
}
}

View File

@@ -0,0 +1,54 @@
/*
* Copyright (C) 2023 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;
/**
* MSDU delivery information.
* See Section 9.4.2.316 of the IEEE P802.11be/D4.0 Standard.
*/
@VintfStability
parcelable MsduDeliveryInfo {
/**
* Enums for the |deliveryRatio| field.
* See Table 9-404t of the IEEE P802.11be/D4.0 Standard.
*/
@VintfStability
@Backing(type="byte")
enum DeliveryRatio {
RATIO_95 = 1, // 95%
RATIO_96 = 2, // 96%
RATIO_97 = 3, // 97%
RATIO_98 = 4, // 98%
RATIO_99 = 5, // 99%
RATIO_99_9 = 6, // 99.9%
RATIO_99_99 = 7, // 99.99%
RATIO_99_999 = 8, // 99.999%
RATIO_99_9999 = 9, // 99.9999%
}
/**
* Percentage of the MSDUs that are expected to be delivered successfully.
*/
DeliveryRatio deliveryRatio;
/**
* Exponent from which the number of incoming MSDUs is computed. The number of incoming
* MSDUs is 10^countExponent, and is used to determine the MSDU delivery ratio.
* Must be a number between 0 and 15 (inclusive).
*/
byte countExponent;
}

View File

@@ -0,0 +1,120 @@
/*
* Copyright (C) 2023 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.MsduDeliveryInfo;
/**
* Additional QoS parameters as defined in Section 9.4.2.316
* of the IEEE P802.11be/D4.0 Standard.
*/
@VintfStability
parcelable QosCharacteristics {
/**
* Unsigned integer specifying the minimum interval (in microseconds) between the start of
* two consecutive service periods (SPs) that are allocated for frame exchanges.
* The value must be non-zero.
*/
int minServiceIntervalUs;
/**
* Unsigned integer specifying the maximum interval (in microseconds) between the start of two
* consecutive SPs that are allocated for frame exchanges. The value must be non-zero.
*/
int maxServiceIntervalUs;
/**
* Unsigned integer specifying the lowest data rate (in kilobits/sec)
* for the transport of MSDUs or A-MSDUs belonging to the traffic flow.
* The value must be non-zero.
*/
int minDataRateKbps;
/**
* Unsigned integer specifying the maximum amount of time (in microseconds)
* targeted to transport an MSDU or A-MSDU belonging to the traffic flow.
* The value must be non-zero.
*/
int delayBoundUs;
/**
* Enum values indicating which optional fields are provided.
* See Figure 9-1001au of the IEEE P802.11be/D4.0 Standard.
*/
@VintfStability
@Backing(type="int")
enum QosCharacteristicsMask {
MAX_MSDU_SIZE = 1 << 0,
SERVICE_START_TIME = 1 << 1,
SERVICE_START_TIME_LINK_ID = 1 << 2,
MEAN_DATA_RATE = 1 << 3,
BURST_SIZE = 1 << 4,
MSDU_LIFETIME = 1 << 5,
MSDU_DELIVERY_INFO = 1 << 6,
}
/**
* Mask of |QosCharacteristicsMask| indicating which optional fields are provided.
*/
int optionalFieldMask;
/**
* Unsigned 16-bit value specifying the maximum size (in octets) of an MSDU
* belonging to the traffic flow. The value must be non-zero if provided.
*/
char maxMsduSizeOctets;
/**
* Unsigned integer specifying the anticipated time (in microseconds) when
* the traffic starts for the associated TID.
*/
int serviceStartTimeUs;
/**
* The four LSBs indicate the link identifier that corresponds to the link for which the
* TSF timer is used to indicate the Service Start Time. The four MSBs should not be used.
* This field is present if |serviceStartTimeUs| is included and is not present otherwise.
*/
byte serviceStartTimeLinkId;
/**
* Unsigned integer indicating the data rate specified (in kilobits/sec) for transport of MSDUs
* or A-MSDUs belonging to the traffic flow. The value must be non-zero if provided.
*/
int meanDataRateKbps;
/**
* Unsigned integer specififying the maximum burst (in octets) of the MSDUs or A-MSDUs
* belonging to the traffic flow that arrive at the MAC SAP within any time duration equal
* to the value specified in the |delayBound| field. The value must be non-zero if provided.
*/
int burstSizeOctets;
/**
* Unsigned 16-bit integer specifying the maximum amount of time (in milliseconds) since the
* arrival of the MSDU at the MAC data service interface beyond which the MSDU is not useful
* even if received by the receiver. The amount of time specified in this field is larger than
* or equal to the amount of time specified in the |delayBound| field, if present. The value
* must be non-zero if provided.
*/
char msduLifetimeMs;
/**
* MSDU delivery information. See |MsduDeliveryInfo| for more details.
*/
MsduDeliveryInfo msduDeliveryInfo;
}

View File

@@ -1,5 +1,6 @@
package android.hardware.wifi.supplicant;
import android.hardware.wifi.supplicant.QosCharacteristics;
import android.hardware.wifi.supplicant.QosPolicyClassifierParams;
/**
@@ -21,4 +22,24 @@ parcelable QosPolicyScsData {
* QoS policy SCS classifier type information.
*/
QosPolicyClassifierParams classifierParams;
/**
* Enum values for the |direction| field.
*/
@VintfStability
@Backing(type="byte")
enum LinkDirection {
DOWNLINK,
UPLINK, // Only applies to trigger-based traffic (Wi-Fi 6+)
}
/**
* Direction of data described by this element.
*/
LinkDirection direction;
/**
* Additional parameters available in QoS R3.
*/
@nullable QosCharacteristics QosCharacteristics;
}