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