summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--service/java/com/android/server/wifi/hal/WifiRttControllerAidlImpl.java3
-rw-r--r--service/tests/wifitests/src/com/android/server/wifi/hal/WifiRttControllerAidlImplTest.java78
2 files changed, 80 insertions, 1 deletions
diff --git a/service/java/com/android/server/wifi/hal/WifiRttControllerAidlImpl.java b/service/java/com/android/server/wifi/hal/WifiRttControllerAidlImpl.java
index fd76503220..674e1558a3 100644
--- a/service/java/com/android/server/wifi/hal/WifiRttControllerAidlImpl.java
+++ b/service/java/com/android/server/wifi/hal/WifiRttControllerAidlImpl.java
@@ -298,7 +298,8 @@ public class WifiRttControllerAidlImpl implements IWifiRttController {
.set80211mcMeasurement(rttResult.type == RttType.TWO_SIDED_11MC)
.setMeasurementChannelFrequencyMHz(rttResult.channelFreqMHz)
.setMeasurementBandwidth(halToFrameworkChannelBandwidth(rttResult.packetBw))
- .set80211azNtbMeasurement(rttResult.type == RttType.TWO_SIDED_11AZ_NTB)
+ .set80211azNtbMeasurement(rttResult.type == RttType.TWO_SIDED_11AZ_NTB
+ || rttResult.type == RttType.TWO_SIDED_11AZ_NTB_SECURE)
.setMinTimeBetweenNtbMeasurementsMicros(rttResult.ntbMinMeasurementTime
* CONVERSION_MICROS_TO_100_MICROS)
.setMaxTimeBetweenNtbMeasurementsMicros(rttResult.ntbMaxMeasurementTime
diff --git a/service/tests/wifitests/src/com/android/server/wifi/hal/WifiRttControllerAidlImplTest.java b/service/tests/wifitests/src/com/android/server/wifi/hal/WifiRttControllerAidlImplTest.java
index d2be3f163c..16eec8465d 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/hal/WifiRttControllerAidlImplTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/hal/WifiRttControllerAidlImplTest.java
@@ -554,6 +554,84 @@ public class WifiRttControllerAidlImplTest extends WifiBaseTest {
equalTo(ScanResult.CHANNEL_WIDTH_80MHZ));
verifyNoMoreInteractions(mIWifiRttControllerMock);
}
+
+ /**
+ * Validate correct 11az NTB secure result conversion from HAL to framework.
+ */
+ @Test
+ public void test11azNtbSecureRangeResults() throws Exception {
+ int cmdId = 55;
+ RttResult[] results = new RttResult[1];
+ RttResult res = createRttResult();
+ res.type = RttType.TWO_SIDED_11AZ_NTB_SECURE;
+ res.addr = MacAddress.byteAddrFromStringAddr("05:06:07:08:09:0A");
+ res.ntbMaxMeasurementTime = 10; // 10 * 10000 us = 100000 us
+ res.ntbMinMeasurementTime = 100; // 100 * 100 us = 10000 us
+ res.numRxSpatialStreams = 2;
+ res.numTxSpatialStreams = 3;
+ res.i2rTxLtfRepetitionCount = 3;
+ res.r2iTxLtfRepetitionCount = 2;
+ res.status = RttStatus.SUCCESS;
+ res.distanceInMm = 1500;
+ res.timeStampInUs = 6000;
+ res.packetBw = RttBw.BW_80MHZ;
+ // Fill in secure ranging results
+ res.pasnComebackAfterMillis = 1000;
+ res.baseAkm = Akm.PASN | Akm.SAE;
+ res.isRangingFrameProtectionEnabled = true;
+ res.isSecureLtfEnabled = true;
+ res.secureHeLtfProtocolVersion = 1;
+ res.pasnComebackCookie = new byte[] {1, 2, 3};
+ results[0] = res;
+
+ // (1) have the HAL call us with results
+ mEventCallbackCaptor.getValue().onResults(cmdId, results);
+
+ // (2) verify call to framework
+ verify(mRangingResultsCallbackMock).onRangingResults(eq(cmdId), mRttResultCaptor.capture());
+
+ // verify contents of the framework results
+ List<RangingResult> rttR = mRttResultCaptor.getValue();
+
+ collector.checkThat("number of entries", rttR.size(), equalTo(1));
+
+ RangingResult rttResult = rttR.get(0);
+ collector.checkThat("Type", rttResult.is80211azNtbMeasurement(), equalTo(true));
+ collector.checkThat("status", rttResult.getStatus(),
+ equalTo(WifiRttController.FRAMEWORK_RTT_STATUS_SUCCESS));
+ collector.checkThat("mac", rttResult.getMacAddress().toByteArray(),
+ equalTo(MacAddress.fromString("05:06:07:08:09:0A").toByteArray()));
+ collector.checkThat("ntbMaxMeasurementTime",
+ rttResult.getMaxTimeBetweenNtbMeasurementsMicros(), equalTo(100000L));
+ collector.checkThat("ntbMinMeasurementTime",
+ rttResult.getMinTimeBetweenNtbMeasurementsMicros(), equalTo(10000L));
+ collector.checkThat("numRxSpatialStreams", rttResult.get80211azNumberOfRxSpatialStreams(),
+ equalTo(2));
+ collector.checkThat("numTxSpatialStreams", rttResult.get80211azNumberOfTxSpatialStreams(),
+ equalTo(3));
+ collector.checkThat("i2rTxLtfRepetitionCount",
+ rttResult.get80211azInitiatorTxLtfRepetitionsCount(), equalTo(3));
+ collector.checkThat("r2iTxLtfRepetitionCount",
+ rttResult.get80211azResponderTxLtfRepetitionsCount(), equalTo(2));
+ collector.checkThat("distanceCm", rttResult.getDistanceMm(), equalTo(1500));
+ collector.checkThat("timestamp", rttResult.getRangingTimestampMillis(), equalTo(6L));
+ collector.checkThat("channelBw", rttResult.getMeasurementBandwidth(),
+ equalTo(ScanResult.CHANNEL_WIDTH_80MHZ));
+ // check secure ranging parameters
+ collector.checkThat("pasnComebackAfterMillis", rttResult.getPasnComebackAfterMillis(),
+ equalTo(1000L));
+ collector.checkThat("baseAkm", rttResult.isRangingAuthenticated(), equalTo(true));
+ collector.checkThat("isRangingFrameProtectionEnabled", rttResult.isRangingFrameProtected(),
+ equalTo(true));
+ collector.checkThat("isSecureLtfEnabled", rttResult.isSecureHeLtfEnabled(), equalTo(true));
+ collector.checkThat("secureHeLtfProtocolVersion", rttResult.getSecureHeLtfProtocolVersion(),
+ equalTo(1));
+ collector.checkThat("pasnComebackCookie", rttResult.getPasnComebackCookie(),
+ equalTo(new byte[]{1, 2, 3}));
+ verifyNoMoreInteractions(mIWifiRttControllerMock);
+ }
+
+
/**
* Validate correct cleanup when a null array of results is provided by HAL.
*/