Merge "Add S-NSSAI"
This commit is contained in:
commit
7c07a5a96a
3 changed files with 93 additions and 3 deletions
|
@ -117,6 +117,9 @@ interface IRadio extends @1.5::IRadio {
|
||||||
* @param pduSessionId The pdu session id to be used for this data call. A value of 0 means
|
* @param pduSessionId The pdu session id to be used for this data call. A value of 0 means
|
||||||
* no pdu session id was attached to this call.
|
* no pdu session id was attached to this call.
|
||||||
* Reference: 3GPP TS 24.007 section 11.2.3.1b
|
* Reference: 3GPP TS 24.007 section 11.2.3.1b
|
||||||
|
* @param sliceInfo SliceInfo to be used for the data connection when a handover occurs from
|
||||||
|
* EPDG to 5G. It is valid only when accessNetwork is AccessNetwork:NGRAN. If the slice
|
||||||
|
* passed from EPDG is rejected, then the data failure cause must be DataCallFailCause:SLICE_REJECTED.
|
||||||
*
|
*
|
||||||
* Response function is IRadioResponse.setupDataCallResponse_1_6()
|
* Response function is IRadioResponse.setupDataCallResponse_1_6()
|
||||||
*
|
*
|
||||||
|
@ -125,7 +128,7 @@ interface IRadio extends @1.5::IRadio {
|
||||||
oneway setupDataCall_1_6(int32_t serial, AccessNetwork accessNetwork,
|
oneway setupDataCall_1_6(int32_t serial, AccessNetwork accessNetwork,
|
||||||
DataProfileInfo dataProfileInfo, bool roamingAllowed,
|
DataProfileInfo dataProfileInfo, bool roamingAllowed,
|
||||||
DataRequestReason reason, vec<LinkAddress> addresses, vec<string> dnses,
|
DataRequestReason reason, vec<LinkAddress> addresses, vec<string> dnses,
|
||||||
int32_t pduSessionId);
|
int32_t pduSessionId, OptionalSliceInfo sliceInfo);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Send an SMS message
|
* Send an SMS message
|
||||||
|
|
|
@ -352,6 +352,12 @@ struct SetupDataCallResult {
|
||||||
* Reference: 3GPP TS 24.007 section 11.2.3.1b
|
* Reference: 3GPP TS 24.007 section 11.2.3.1b
|
||||||
*/
|
*/
|
||||||
int32_t pduSessionId;
|
int32_t pduSessionId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Slice used for this data call. It is valid only when this data call is on
|
||||||
|
* AccessNetwork:NGRAN.
|
||||||
|
*/
|
||||||
|
OptionalSliceInfo sliceInfo;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -733,3 +739,80 @@ struct Call {
|
||||||
*/
|
*/
|
||||||
string forwardedNumber;
|
string forwardedNumber;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This safe_union represents an optional slice info
|
||||||
|
*/
|
||||||
|
safe_union OptionalSliceInfo {
|
||||||
|
Monostate noinit;
|
||||||
|
SliceInfo value;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This struct represents a S-NSSAI as defined in 3GPP TS 24.501.
|
||||||
|
*/
|
||||||
|
struct SliceInfo {
|
||||||
|
/**
|
||||||
|
* The type of service provided by the slice.
|
||||||
|
*
|
||||||
|
* see: 3GPP TS 24.501 Section 9.11.2.8.
|
||||||
|
*/
|
||||||
|
SliceServiceType sst;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Slice differentiator is the identifier of a slice that has
|
||||||
|
* SliceServiceType as SST. A value of -1 indicates that there is
|
||||||
|
* no corresponding SliceInfo of the HPLMN.
|
||||||
|
*
|
||||||
|
* see: 3GPP TS 24.501 Section 9.11.2.8.
|
||||||
|
*/
|
||||||
|
int32_t sliceDifferentiator;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This SST corresponds to a SliceInfo (S-NSSAI) of the HPLMN; the SST is
|
||||||
|
* mapped to this value.
|
||||||
|
*
|
||||||
|
* see: 3GPP TS 24.501 Section 9.11.2.8.
|
||||||
|
*/
|
||||||
|
SliceServiceType mappedHplmnSst;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Present only if both sliceDifferentiator and mappedHplmnSst are also
|
||||||
|
* present. This SD corresponds to a SliceInfo (S-NSSAI) of the HPLMN;
|
||||||
|
* sliceDifferentiator is mapped to this value. A value of -1 indicates that
|
||||||
|
* there is no corresponding SliceInfo of the HPLMN.
|
||||||
|
*
|
||||||
|
* see: 3GPP TS 24.501 Section 9.11.2.8.
|
||||||
|
*/
|
||||||
|
int32_t mappedHplmnSD;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Slice/Service Type as defined in 3GPP TS 23.501.
|
||||||
|
*/
|
||||||
|
enum SliceServiceType : uint8_t {
|
||||||
|
/* Not specified */
|
||||||
|
NONE = 0,
|
||||||
|
|
||||||
|
/* Slice suitable for the handling of 5G enhanced Mobile Broadband */
|
||||||
|
EMBB = 1,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Slice suitable for the handling of ultra-reliable low latency
|
||||||
|
* communications
|
||||||
|
*/
|
||||||
|
URLLC = 2,
|
||||||
|
|
||||||
|
/* Slice suitable for the handling of massive IoT */
|
||||||
|
MIOT = 3,
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Expose more setup data call failures.
|
||||||
|
*/
|
||||||
|
enum DataCallFailCause : @1.4::DataCallFailCause {
|
||||||
|
/**
|
||||||
|
* Data call fail due to the slice not being allowed for the data call.
|
||||||
|
*/
|
||||||
|
SLICE_REJECTED = 0x8CC,
|
||||||
|
};
|
||||||
|
|
|
@ -56,8 +56,12 @@ TEST_P(RadioHidlTest_v1_6, setupDataCall_1_6) {
|
||||||
::android::hardware::radio::V1_2::DataRequestReason reason =
|
::android::hardware::radio::V1_2::DataRequestReason reason =
|
||||||
::android::hardware::radio::V1_2::DataRequestReason::NORMAL;
|
::android::hardware::radio::V1_2::DataRequestReason::NORMAL;
|
||||||
|
|
||||||
Return<void> res = radio_v1_6->setupDataCall_1_6(serial, accessNetwork, dataProfileInfo,
|
::android::hardware::radio::V1_6::OptionalSliceInfo optionalSliceInfo;
|
||||||
roamingAllowed, reason, addresses, dnses, -1);
|
memset(&optionalSliceInfo, 0, sizeof(optionalSliceInfo));
|
||||||
|
|
||||||
|
Return<void> res =
|
||||||
|
radio_v1_6->setupDataCall_1_6(serial, accessNetwork, dataProfileInfo, roamingAllowed,
|
||||||
|
reason, addresses, dnses, -1, optionalSliceInfo);
|
||||||
ASSERT_OK(res);
|
ASSERT_OK(res);
|
||||||
|
|
||||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||||
|
|
Loading…
Reference in a new issue