Merge "Simplify slicing related structs." am: df3a0dcaeb

Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1626964

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ib543fc108c30dbcd36eeb803c3df0cf3f411a15a
This commit is contained in:
Treehugger Robot 2021-03-12 00:26:09 +00:00 committed by Automerger Merge Worker
commit d05c09e504

View file

@ -878,6 +878,11 @@ struct SliceInfo {
* see: 3GPP TS 24.501 Section 9.11.2.8.
*/
int32_t mappedHplmnSD;
/**
* Field to indicate the current status of the slice.
*/
SliceStatus status;
};
/**
@ -984,9 +989,9 @@ struct SlicingConfig {
*/
vec<UrspRule> urspRules;
/**
* Struct containing all NSSAIs (list of slice info).
* List of all slices.
*/
Nssais nssais;
vec<SliceInfo> sliceInfo;
};
/**
@ -1009,7 +1014,6 @@ struct UrspRule {
vec<RouteSelectionDescriptor> routeSelectionDescriptor;
};
/**
* This struct represents a single route selection descriptor as defined in
* 3GPP TS 24.526.
@ -1065,47 +1069,13 @@ safe_union OptionalSscMode {
SscMode value;
};
/**
* This struct contains all NSSAIs (lists of slices).
*/
struct Nssais {
/**
* These are all the slices configured by the network. This includes allowed
* and rejected slices, as well as slices that are neither allowed nor rejected
* yet. Empty vector indicates that no slices are configured, and in that case
* allowed and rejected vectors must be empty as well.
*/
vec<SliceInfo> configured;
/**
* These are all the slices that the UE is allowed to use. All these slices
* must be configured as well. Empty vector indicates that no slices are
* allowed yet.
*/
vec<SliceInfo> allowed;
/**
* These are all the slices that the UE is not allowed to use. All these slices
* must be configured as well. Empty vector indicates that no slices are
* rejected yet.
*/
vec<RejectedSliceInfo> rejected;
/**
* Default configured NSSAI
*/
vec<SliceInfo> defaultConfigured;
};
/**
* This struct represents a network slice rejected by the network. It contains a
* rejectionCause corresponding to a rejected network slice.
*/
struct RejectedSliceInfo {
SliceInfo sliceInfo;
SliceRejectionCause rejectionCause;
};
enum SliceRejectionCause : int32_t {
NOT_AVAILABLE_IN_PLMN,
NOT_AVAILABLE_IN_REG_AREA,
enum SliceStatus : int32_t {
UNKNOWN,
CONFIGURED, // Configured but not allowed or rejected yet
ALLOWED, // Allowed to be used
REJECTED_NOT_AVAILABLE_IN_PLMN, // Rejected because not available in PLMN
REJECTED_NOT_AVAILABLE_IN_REG_AREA, // Rejected because not available in reg area
DEFAULT_CONFIGURED, // Considered valid when configured/allowed slices are not available
};
/**