blob: 575b6c8029e8807313e16d14c4d0fa5a37482aa5 [file] [log] [blame]
ajayd19711c2021-12-07 12:07:04 -08001..
Ankur Upadhyaya71795a32023-04-17 10:05:47 +05302 SPDX-FileCopyrightText: 2023-present Intel Corporation
ajayd19711c2021-12-07 12:07:04 -08003 SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
4 SPDX-License-Identifier: Apache-2.0
5
ajay07514982021-12-07 22:24:32 -08006.. _deployment_5G_guide:
ajayd19711c2021-12-07 12:07:04 -08007
ajay07514982021-12-07 22:24:32 -080085G Deployment Guide
9===================
ajayd19711c2021-12-07 12:07:04 -080010
11Deployment Overview
12-------------------
13SD-Core is released with Helm chart and container images.
14We recommend using **Kubernetes** and **Helm** to deploy SD-Core.
Ajay Lotan Thakurd0573072022-05-04 19:16:52 -070015SD-Core images are hosted on docker hub.
ajayd19711c2021-12-07 12:07:04 -080016
17Hardware resource requirement
18-----------------------------
19
ajayce0380c2021-12-14 21:51:00 -080020.. list-table:: CPU & Memory Requirements for 5G components
21 :widths: 5 5 5
22 :header-rows: 1
ajayd19711c2021-12-07 12:07:04 -080023
ajayce0380c2021-12-14 21:51:00 -080024 * - SD-Core Component
25 - Required CPU
26 - Required Memory in Gi
27 * - AMF
28 - 2 CPU Cores
29 - 4Gi
30 * - SMF
31 - 2 CPU Cores
32 - 4Gi
33 * - NRF
34 - 2 CPU Cores
35 - 1Gi
36 * - NSSF
37 - 2 CPU Cores
38 - 1Gi
39 * - AUSF
40 - 1 CPU Cores
41 - 1Gi
42 * - PCF
43 - 1 CPU Cores
44 - 1Gi
45 * - UDR
46 - 2 CPU Cores
47 - 1Gi
48 * - UDM
49 - 2 CPU Cores
50 - 1Gi
51 * - Config5G(webconsole)
52 - 1 CPU Cores
53 - 1Gi
54 * - SimApp
55 - 1 CPU Cores
56 - 1Gi
57 * - MongoDB
58 - 2 CPU Cores
59 - 4Gi
Ankur Upadhyaya4f0e3b02022-10-06 11:15:39 -060060 * - UPF-Adapter
61 - 1 CPU Cores
62 - 1Gi
63 * - SCTP Load Balancer
64 - 1 CPU Cores
65 - 1Gi
ajayd19711c2021-12-07 12:07:04 -080066
Ajay Lotan Thakur05ce5ce2022-09-25 20:36:16 -070067.. note::
68 SD-Core deployment is tested on Intel/AMD hardware. There is WIP to run SD-Core
69 on ARM architecture.
70
ajayd19711c2021-12-07 12:07:04 -080071Deployment Options
72------------------
73
74Development Environments
75""""""""""""""""""""""""
76
ajayce0380c2021-12-14 21:51:00 -080077Please refer (see :ref:`aiab-guide`) to setup 5G development environment.
ajayd19711c2021-12-07 12:07:04 -080078
ajayd19711c2021-12-07 12:07:04 -080079Production Environments - 5G
80""""""""""""""""""""""""""""
81
82To install SD-Core into your Kubernetes cluster, follow instructions
83
84Step1 - Clone SD-Core 5G Helm chart
85'''''''''''''''''''''''''''''''''''
86.. code-block::
87
ajaycbd17062022-03-06 11:12:58 -080088 git clone "https://gerrit.opencord.org/sdcore-helm-charts"
ajayd19711c2021-12-07 12:07:04 -080089 cd sdcore-helm-charts/sdcore-helm-charts/
90 helm dep update #Update Helm dependencies
91
92Step2 - Prepare your Helm value for 5G
93''''''''''''''''''''''''''''''''''''''
94
95You can modify existing values.yaml directly, but we recommend composing another value
96file myvalues.yaml using values.yaml as an example. We are highlighting a few things we
97need to modify here. More explanation of the supported Helm values can be found in the
98Configuration section below.
99
100Step3 - Install 5G using SD-Core umbrella helm chart
101''''''''''''''''''''''''''''''''''''''''''''''''''''
102
ajaycbd17062022-03-06 11:12:58 -0800103The following command will deploy the SD-Core helm chart with release name sdcore-5g in the sdcore-5g namespace.
ajayd19711c2021-12-07 12:07:04 -0800104
105.. code-block::
106
ajaycbd17062022-03-06 11:12:58 -0800107 helm install -n sdcore-5g --create-namespace -f myvalues.yaml sdcore-5g ~/cord/sdcore-helm-charts/sdcore-helm-charts
ajayd19711c2021-12-07 12:07:04 -0800108
109To verify the installation:
110
111.. code-block::
112
113 helm -n sdcore-5g ls
Ankur Upadhyaya4f0e3b02022-10-06 11:15:39 -0600114 xxxx@node:~$ helm -n sdcore-5g ls
ajaycbd17062022-03-06 11:12:58 -0800115 NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
116 sdcore-5g sdcore-5g 1 2022-03-05 16:25:32.338495035 -0700 MST deployed sd-core-0.10.9
Ankur Upadhyaya4f0e3b02022-10-06 11:15:39 -0600117 xxxx@node:~$
ajaycbd17062022-03-06 11:12:58 -0800118
Ankur Upadhyaya4f0e3b02022-10-06 11:15:39 -0600119 xxxx@node:~$ kubectl get pods -n sdcore-5g
120 NAME READY STATUS RESTARTS AGE
121 amf-6cddb6ff5-g5kwp 1/1 Running 0 8d
122 ausf-64fb5c5df5-g9xps 1/1 Running 0 8d
123 gnbsim-0 1/1 Running 0 8d
124 mongodb-0 1/1 Running 0 8d
125 mongodb-1 1/1 Running 0 8d
126 mongodb-arbiter-0 1/1 Running 0 8d
127 nrf-69794885b-pgl8f 1/1 Running 0 8d
128 nssf-fc9c48c89-dxqn7 1/1 Running 0 8d
129 pcf-5c7d7767c9-wv6dl 1/1 Running 0 8d
130 simapp-669b99db9d-lbbm4 1/1 Running 0 8d
131 smf-b87fc6f8f-4jdqr 1/1 Running 0 8d
132 smf-b87fc6f8f-xt2n2 1/1 Running 0 8d
133 udm-f948b57dc-n5b4h 1/1 Running 0 8d
134 udr-698445bd87-8ptpm 1/1 Running 0 8d
135 upf-0 5/5 Running 0 8d
136 upf-adapter-c4844b7fb-wqbvw 1/1 Running 0 8d
137 webui-8cfb9659c-hqfp9 1/1 Running 0 8d
138 xxxx@node:~$
ajayd19711c2021-12-07 12:07:04 -0800139
140To uninstall:
141
142.. code-block::
143
144 helm -n sdcore-5g uninstall sdcore-5g
145 kubectl delete namespace sdcore-5g # also remove the sdcore-5g if needed
146
Ankur Upadhyaya4f0e3b02022-10-06 11:15:39 -0600147Cloud Native Configuration - 5G
148""""""""""""""""""""""""""""""""
ajayd19711c2021-12-07 12:07:04 -0800149
Ankur Upadhyaya4efce0a2022-10-07 11:12:08 -0600150Following configuration need to be enabled in 5G helm values override file.
151It is important to understand usage of following flags
152
153- **SCTP Load Balancer** :
154 Enable this flag to introduce SCTP Load Balancer between gNBs and multiple AMF instances
155 to load balance sctp connections across multiple AMF instances.
156
157- **DB Store** :
158 Enable this flag to preserve AMF context or SMF PDU session into Database.
159 This is required for any AMF/SMF instance to load session/context of any
160 other instance which being fault recovered.
161
162- **UPF-Adapter** :
163 Enable this flag to introduce UPF-Adapter between multiple SMF instances
Ankur Upadhyaya71795a32023-04-17 10:05:47 +0530164 and UPF. This required for the case where UPF does not support multiple
Ankur Upadhyaya4efce0a2022-10-07 11:12:08 -0600165 SMF association with same pfcp node-id.
166
167- **NRF Keep-Alive** :
168 Enable this flag for NRF to maintain multiple NF profiles and trigger periodic
169 profile updates from the registered NFs.
170
171- **UE IP-Address alloc via UPF** :
Ankur Upadhyaya71795a32023-04-17 10:05:47 +0530172 Enable this config to get UE IP-Address allocated via UPF rather than locally by SMF.
173
174- **Static UE IP-Address alloc** :
175 Enable this config to reserve static UE IP-Address for any specific UE.
176
177- **Custom IMSI support** :
178 Employ this config to have custom IMSI(starts with leading zeroes) for development environment with real UE.
Ankur Upadhyaya4f0e3b02022-10-06 11:15:39 -0600179
180Enable AMF Sctp Load Balancer
181'''''''''''''''''''''''''''''
182Edit sd-core-5g-values.yaml as following
183
184.. code-block::
185
186 sctplb:
187 deploy: true
188
Ankur Upadhyaya4efce0a2022-10-07 11:12:08 -0600189Enable AMF DB Store
190'''''''''''''''''''
191Edit sd-core-5g-values.yaml as following
192
193.. code-block::
194
195 amf:
196 cfgFiles:
197 amfcfg.conf:
198 configuration:
199 enableDBStore: true
200
Ankur Upadhyaya4f0e3b02022-10-06 11:15:39 -0600201Enable SMF DB Store
202'''''''''''''''''''
203Edit sd-core-5g-values.yaml as following
204
205.. code-block::
206
207 smf:
208 cfgFiles:
209 smfcfg.conf:
210 configuration:
211 enableDBStore: true
212
213Enable UPF-Adapter
214''''''''''''''''''
215Edit sd-core-5g-values.yaml as following
216
217.. code-block::
218
219 upfadapter:
220 deploy: true
221
222Enable NRF Keep-Alive
223''''''''''''''''''''''
224Edit sd-core-5g-values.yaml as following
225
226.. code-block::
227
228 nrf:
229 cfgFiles:
230 nrfcfg.conf:
231 configuration:
232 mongoDBStreamEnable: false
233 nfProfileExpiryEnable: true
234 nfKeepAliveTime: 60
235
236Enable UE IP-Address allocation by UPF
237''''''''''''''''''''''''''''''''''''''
238This is optional feature to allocate UE IP-Address via UPF rather than locally via SMF.
239Edit sd-core-5g-values.yaml as following
240
241.. code-block::
242
243 cpiface:
244 dnn: "internet"
245 hostname: "upf"
246 enable_ue_ip_alloc: true
247 ue_ip_pool: "172.250.0.0/16"
Ankur Upadhyaya71795a32023-04-17 10:05:47 +0530248
249
250Enable Static UE IP-Address allocation
251''''''''''''''''''''''''''''''''''''''
252This config shall help in reserving Static UE IP-Address for any given UE.
253The config should mention details about DNN, UE's IMSI and preferred IP-Address from that DNN pool.
254
255.. code-block::
256
257 smf:
258 cfgFiles:
259 smfcfg.conf:
260 configuration:
261 staticIpInfo:
262 - dnn: internet
263 imsiIpInfo:
264 supi-123456789012341: "172.250.237.10"
265 supi-123456789012342: "172.250.237.11"
266
267Enable Custom IMSI with real UE 5G deployment
268'''''''''''''''''''''''''''''''''''''''''''''
269
270Following configuration is required to have custom test IMSI with real UE 5G deployment.
271
272Existing MCC/MNC = 208/93
273New MCC/MNC = 001/22
274
275Patch following files
276
277* Mandatory
278
279Patch aether-in-a-box/sd-core-5g-values.yaml as following
280
281.. code-block::
282
283 # below block configures the subscribers and their security details.
284 # you can have any number of subscriber ranges
285 subscribers:
286 - - ueId-start: "208930100007487"
287 - ueId-end: "208930100007500"
288 - plmnId: "20893"
289 + - ueId-start: "001220100007487"
290 + ueId-end: "001220100007500"
291 + plmnId: "00122"
292 opc: "981d464c7c52eb6e5036234984ad0bcf"
293 op: ""
294 key: "5122250214c33e723a5dd523fc145fc0"
295 sequenceNumber: "16f3b3f70fc2"
296 - - ueId-start: "208930100007501"
297 - ueId-end: "208930100007599"
298 - plmnId: "20893"
299 + - ueId-start: "001220100007501"
300 + ueId-end: "001220100007599"
301 + plmnId: "00122"
302 opc: "981d464c7c52eb6e5036234984ad0bcf"
303 op: ""
304 key: "5122250214c33e723a5dd523fc145fc0"
305
306* only if ROC is employed
307
308Patch aether-in-a-box/roc-5g-models.json as following
309
310.. code-block::
311
312 "imsi-definition": {
313 - "mcc": "208",
314 - "mnc": "93",
315 + "mcc": "001",
316 + "mnc": "22",
317 {
318 "sim-id": "aiab-sim-1",
319 "display-name": "UE 1 Sim",
320 - "imsi": "208930100007487"
321 + "imsi": "001220100007487"
322 },