Merge "Add S-NSSAI"

This commit is contained in:
Daniel Bright 2020-12-23 00:52:26 +00:00 committed by Android (Google) Code Review
commit 7c07a5a96a
3 changed files with 93 additions and 3 deletions

View file

@ -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

View file

@ -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,
};

View file

@ -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());