1 # ============LICENSE_START=======================================================
2 # Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved.
3 # ================================================================================
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 # ============LICENSE_END=========================================================
17 from schematics.types import BaseType, StringType, IntType, LongType
18 from schematics.types.compound import ModelType, ListType, DictType
19 from schematics.models import Model
22 class PerfReqEmbb(Model):
23 """Reference 3GPP TS 28.541 V16.5.0, Section 6.4.1."""
24 expDataRateDL = IntType()
25 expDataRateUL = IntType()
26 areaTrafficCapDL = IntType()
27 areaTrafficCapUL = IntType()
28 overallUserDensity = IntType()
29 activityFactor = IntType()
32 class PerfReqUrllc(Model):
38 """Reference 3GPP TS 28.541 V16.5.0."""
39 perfReqEmbbList = ListType(ModelType(PerfReqEmbb))
40 # perfReqUrllcList = ListType(ModelType(PerfReqUrllc))
41 perfReqUrllcList = ListType(DictType(BaseType))
44 class SliceProfile(Model):
45 """Reference 3GPP TS 28.541 V16.5.0, Section 6.3.4."""
46 sliceProfileId = StringType(required=True)
47 sNSSAIList = ListType(StringType(required=True))
48 pLMNIdList = ListType(StringType(required=True))
49 perfReq = ModelType(PerfReq, required=True)
50 maxNumberofUEs = LongType()
51 coverageAreaTAList = ListType(IntType())
53 uEMobilityLevel = StringType()
54 resourceSharingLevel = StringType()
57 class AllocateNssi(Model):
58 """Reference 3GPP TS 28.531 V16.6.0."""
59 attributeListIn = ModelType(SliceProfile)
62 class DeAllocateNssi(Model):
63 """Reference 3GPP TS 28.531 V16.6.0."""
64 nSSId = StringType(required=True)