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
|
||||
* no pdu session id was attached to this call.
|
||||
* 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()
|
||||
*
|
||||
|
@ -125,7 +128,7 @@ interface IRadio extends @1.5::IRadio {
|
|||
oneway setupDataCall_1_6(int32_t serial, AccessNetwork accessNetwork,
|
||||
DataProfileInfo dataProfileInfo, bool roamingAllowed,
|
||||
DataRequestReason reason, vec<LinkAddress> addresses, vec<string> dnses,
|
||||
int32_t pduSessionId);
|
||||
int32_t pduSessionId, OptionalSliceInfo sliceInfo);
|
||||
|
||||
/**
|
||||
* Send an SMS message
|
||||
|
|
|
@ -352,6 +352,12 @@ struct SetupDataCallResult {
|
|||
* Reference: 3GPP TS 24.007 section 11.2.3.1b
|
||||
*/
|
||||
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;
|
||||
};
|
||||
|
||||
/**
|
||||
* 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::NORMAL;
|
||||
|
||||
Return<void> res = radio_v1_6->setupDataCall_1_6(serial, accessNetwork, dataProfileInfo,
|
||||
roamingAllowed, reason, addresses, dnses, -1);
|
||||
::android::hardware::radio::V1_6::OptionalSliceInfo optionalSliceInfo;
|
||||
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);
|
||||
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
|
|
Loading…
Reference in a new issue