Merge "[AWARE] Add support for SDEA.ServiceInfo field"

am: 97c3540042

Change-Id: Ic47df91fd4e2a8dc72d9a825079a8cfa3f633444
This commit is contained in:
Etan Cohen
2017-02-10 23:19:14 +00:00
committed by android-build-merger
2 changed files with 37 additions and 0 deletions

View File

@@ -917,6 +917,7 @@ bool convertHidlNanPublishRequestToLegacy(
memcpy(legacy_request->service_specific_info,
hidl_request.baseConfigs.serviceSpecificInfo.data(),
legacy_request->service_specific_info_len);
// TODO: b/35193423 add support for extended service specific info
legacy_request->rx_match_filter_len = hidl_request.baseConfigs.rxMatchFilter.size();
if (legacy_request->rx_match_filter_len > NAN_MAX_MATCH_FILTER_LEN) {
LOG(ERROR) << "convertHidlNanPublishRequestToLegacy: rx_match_filter_len too large";
@@ -995,6 +996,7 @@ bool convertHidlNanSubscribeRequestToLegacy(
memcpy(legacy_request->service_specific_info,
hidl_request.baseConfigs.serviceSpecificInfo.data(),
legacy_request->service_specific_info_len);
// TODO: b/35193423 add support for extended service specific info
legacy_request->rx_match_filter_len = hidl_request.baseConfigs.rxMatchFilter.size();
if (legacy_request->rx_match_filter_len > NAN_MAX_MATCH_FILTER_LEN) {
LOG(ERROR) << "convertHidlNanSubscribeRequestToLegacy: rx_match_filter_len too large";
@@ -1081,6 +1083,7 @@ bool convertHidlNanTransmitFollowupRequestToLegacy(
memcpy(legacy_request->service_specific_info,
hidl_request.serviceSpecificInfo.data(),
legacy_request->service_specific_info_len);
// TODO: b/35193423 add support for extended service specific info
legacy_request->recv_indication_cfg = hidl_request.disableFollowupResultIndication ? 0x1 : 0x0;
return true;
@@ -1272,6 +1275,7 @@ bool convertLegacyNanCapabilitiesResponseToHidl(
hidl_response->maxMatchFilterLen = legacy_response.max_match_filter_len;
hidl_response->maxTotalMatchFilterLen = legacy_response.max_total_match_filter_len;
hidl_response->maxServiceSpecificInfoLen = legacy_response.max_service_specific_info_len;
// TODO: b/35193423 add support for extended service specific info
hidl_response->maxVsaDataLen = legacy_response.max_vsa_data_len;
hidl_response->maxNdiInterfaces = legacy_response.max_ndi_interfaces;
hidl_response->maxNdpSessions = legacy_response.max_ndp_sessions;
@@ -1296,6 +1300,7 @@ bool convertLegacyNanMatchIndToHidl(
hidl_ind->addr = hidl_array<uint8_t, 6>(legacy_ind.addr);
hidl_ind->serviceSpecificInfo = std::vector<uint8_t>(legacy_ind.service_specific_info,
legacy_ind.service_specific_info + legacy_ind.service_specific_info_len);
// TODO: b/35193423 add support for extended service specific info
hidl_ind->matchFilter = std::vector<uint8_t>(legacy_ind.sdf_match_filter,
legacy_ind.sdf_match_filter + legacy_ind.sdf_match_filter_len);
hidl_ind->matchOccuredInBeaconFlag = legacy_ind.match_occured_flag == 1;

View File

@@ -933,6 +933,13 @@ struct NanDiscoveryCommonConfig {
* NAN Spec: Service Descriptor Attribute (SDA) / Service Info
*/
vec<uint8_t> serviceSpecificInfo;
/**
* Arbitrary information communicated in discovery packets - there is no semantic meaning to these
* bytes. They are passed-through from publisher to subscriber as-is with no parsing.
* Max length: |NanCapabilities.maxExtendedServiceSpecificInfoLen|.
* Spec: Service Descriptor Extension Attribute (SDEA) / Service Info
*/
vec<uint8_t> extendedServiceSpecificInfo;
/**
* Ordered sequence of <length, value> pairs (|length| uses 1 byte and contains the number of
* bytes in the |value| field) which specify further match criteria (beyond the service name).
@@ -1123,6 +1130,13 @@ struct NanTransmitFollowupRequest {
* NAN Spec: Service Descriptor Attribute (SDA) / Service Info
*/
vec<uint8_t> serviceSpecificInfo;
/**
* Arbitrary information communicated in discovery packets - there is no semantic meaning to these
* bytes. They are passed-through from publisher to subscriber as-is with no parsing.
* Max length: |NanCapabilities.maxExtendedServiceSpecificInfoLen|.
* Spec: Service Descriptor Extension Attribute (SDEA) / Service Info
*/
vec<uint8_t> extendedServiceSpecificInfo;
/**
* Disable |IWifiNanIfaceEventCallback.eventTransmitFollowup| - i.e. do not get indication on
* whether the follow-up was transmitted and received successfully.
@@ -1258,6 +1272,10 @@ struct NanCapabilities {
* Maximum length (in bytes) of the service specific info field.
*/
uint32_t maxServiceSpecificInfoLen;
/**
* Maximum length (in bytes) of the extended service specific info field.
*/
uint32_t maxExtendedServiceSpecificInfoLen;
/**
* Maximum length (in bytes) of vendor-specific (VSA) data.
*/
@@ -1314,6 +1332,13 @@ struct NanMatchInd {
* NAN Spec: Service Descriptor Attribute (SDA) / Service Info
*/
vec<uint8_t> serviceSpecificInfo;
/**
* Arbitrary information communicated in discovery packets - there is no semantic meaning to these
* bytes. They are passed-through from publisher to subscriber as-is with no parsing.
* Max length: |NanCapabilities.maxExtendedServiceSpecificInfoLen|.
* Spec: Service Descriptor Extension Attribute (SDEA) / Service Info
*/
vec<uint8_t> extendedServiceSpecificInfo;
/**
* The match filter from the discovery packet (publish or subscribe) which caused service
* discovery. Matches the peer's |NanDiscoveryCommonConfig.txMatchFilter|.
@@ -1412,6 +1437,13 @@ struct NanFollowupReceivedInd {
* NAN Spec: Service Descriptor Attribute (SDA) / Service Info
*/
vec<uint8_t> serviceSpecificInfo;
/**
* Arbitrary information communicated in discovery packets - there is no semantic meaning to these
* bytes. They are passed-through from publisher to subscriber as-is with no parsing.
* Max length: |NanCapabilities.maxExtendedServiceSpecificInfoLen|.
* Spec: Service Descriptor Extension Attribute (SDEA) / Service Info
*/
vec<uint8_t> extendedServiceSpecificInfo;
};
/**