diff --git a/charts/oai-5g-core/oai-amf/templates/deployment.yaml b/charts/oai-5g-core/oai-amf/templates/deployment.yaml index 454c3b2529103bfbe7cf0adc0c4311578d81a6f3..951fa583d1119ace17987279e1b1f823842bf6db 100644 --- a/charts/oai-5g-core/oai-amf/templates/deployment.yaml +++ b/charts/oai-5g-core/oai-amf/templates/deployment.yaml @@ -31,11 +31,12 @@ spec: {{ toYaml .Values.imagePullSecrets | indent 8 }} {{- end }} containers: + {{- if .Values.keepTcpContainer }} - name: tcpdump - image: "{{ .Values.tcpdumpimage.repository }}:{{ .Values.tcpdumpimage.version }}" + image: "{{ .Values.tcpdumpimage.imageOS.tag }}:{{ .Values.tcpdumpimage.imageOS.tag }}" imagePullPolicy: {{ .Values.tcpdumpimage.pullPolicy }} securityContext: - {{- toYaml .Values.securityContext | nindent 12 }} + {{- toYaml .Values.securityContext.tcpdump | nindent 12 }} {{- if .Values.start.tcpdump}} command: - /bin/sh @@ -49,11 +50,12 @@ spec: {{- if .Values.persistent.sharedvolume}} volumeMounts: - mountPath: "/pcap" - name: cn5g-pv + name: {{ .Values.persistent.volumeName}} {{- end}} + {{- end }} - name: amf - image: "{{ .Values.nfimage.repository }}:{{ .Values.nfimage.version }}" - imagePullPolicy: {{ .Values.nfimage.pullPolicy }} + image: "{{ .Values.nfimage.imageOS.tag }}:{{ .Values.nfimage.imageOS.tag }}" + imagePullPolicy: {{ .Values.nfimage.imageOS.pullPolicy }} {{- if .Values.resources.define}} resources: requests: @@ -96,7 +98,7 @@ spec: - containerPort: {{ .Values.servicehttp.http2Port }} name: http2 protocol: TCP - {{- if .Values.start.amf}} + {{- if .Values.start.nf}} {{- else}} command: - /bin/sleep @@ -385,9 +387,9 @@ spec: key: operatorKey volumes: {{- if .Values.persistent.sharedvolume}} - - name: cn5g-pv + - name: {{ .Values.persistent.volumeName}} persistentVolumeClaim: - claimName: cn5g-pvc + claimName: {{ .Values.persistent.volumeName}} {{- end }} - name: scripts configMap: diff --git a/charts/oai-5g-core/oai-amf/templates/rbac.yaml b/charts/oai-5g-core/oai-amf/templates/rbac.yaml index 8714cbf1bc5eadae111fe9cce7dbdbfcc9d0404a..0a1225ebbe3dff60de041a367d657257a8a20a5a 100644 --- a/charts/oai-5g-core/oai-amf/templates/rbac.yaml +++ b/charts/oai-5g-core/oai-amf/templates/rbac.yaml @@ -1,4 +1,5 @@ --- +{{- if or (eq .Values.securityContext.nf.privileged true) (eq .Values.keepTcpContainer true) }} apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: @@ -25,3 +26,32 @@ roleRef: kind: Role name: {{ .Chart.Name }}-{{ .Release.Namespace }}-role apiGroup: rbac.authorization.k8s.io +{{ else }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: {{ .Chart.Name }}-{{ .Release.Namespace }}-role +rules: +- apiGroups: + - security.openshift.io + resourceNames: + - anyuid + resources: + - securitycontextconstraints + verbs: + - use +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: {{ .Chart.Name }}-{{ .Release.Namespace }}-binding +subjects: +- kind: ServiceAccount + name: {{ .Values.serviceAccount.name }} + namespace: {{ .Release.Namespace }} +roleRef: + kind: Role + name: {{ .Chart.Name }}-{{ .Release.Namespace }}-role + apiGroup: rbac.authorization.k8s.io +{{- end }} \ No newline at end of file diff --git a/charts/oai-5g-core/oai-amf/values.yaml b/charts/oai-5g-core/oai-amf/values.yaml index 04c1ce8c36ec0fe493472a5e3ed7c30b479c6d8b..29d580be47eaebd9a65a879fea22f59519805b5c 100644 --- a/charts/oai-5g-core/oai-amf/values.yaml +++ b/charts/oai-5g-core/oai-amf/values.yaml @@ -1,25 +1,40 @@ # This is a YAML-formatted file. # Declare variables to be passed into your templates. -replicaCount: 1 +replicaCount: 1 # can't be changed + +imageOS: ubuntu # only ubi (Openshift) and ubuntu (Ubuntu based worker nodes in Kubernetes) + +# this variable takes care of adding dependency between this nf and other nfs, so that the core network can be deployed properly +handleDependencies: true nfimage: # image name either locally present or in a public/private repository - registry: local - repository: docker.io/oaisoftwarealliance/oai-amf ## The image will be pulled from dockerhub - version: develop ## The branch to be used to pull from dockerhub - # pullPolicy: IfNotPresent or Never or Always - pullPolicy: IfNotPresent + ubuntu: + repository: docker.io/oaisoftwarealliance/oai-amf ## The image will be pulled from dockerhub + tag: develop ## The branch to be used to pull from dockerhub + # pullPolicy: IfNotPresent or Never or Always + pullPolicy: IfNotPresent + ubi: + repository: oai-amf ## The image will be pulled from dockerhub + tag: develop ## The branch to be used to pull from dockerhub + # pullPolicy: IfNotPresent or Never or Always + pullPolicy: IfNotPresent tcpdumpimage: - registry: local - repository: docker.io/corfr/tcpdump - version: latest - #pullPolicy: IfNotPresent or Never or Always - pullPolicy: IfNotPresent - -## good to use when pulling images from docker-hub mention -imagePullSecrets: - - name: "regcred" + ubuntu: + repository: docker.io/corfr/tcpdump + tag: latest + #pullPolicy: IfNotPresent or Never or Always + pullPolicy: IfNotPresent + ubi: + repository: network-tools-rhel8 + tag: latest + #pullPolicy: IfNotPresent or Never or Always + pullPolicy: IfNotPresent + +## good to use when pulling images from docker-hub, the same pull secrets will be used to pull both the images, if you have multiple secrets mention all of them. +# imagePullSecrets: +# - name: "regcred" serviceAccount: # Specifies whether a service account should be created @@ -37,7 +52,10 @@ podSecurityContext: ## OPENSHIFT terminology securityContext: - privileged: true + nf: + privileged: false + tcpdump: + privileged: true #Always be true for capturing on a interface servicehttp: type: ClusterIP @@ -48,9 +66,13 @@ servicesctp: type: ClusterIP #LoadBalancer sctpPort: 38412 +# If you will turn turn this to false TCPdump container will not run +keepTcpContainer: false + +# Turning it to false will make the nf and tcpdump container to go in sleep mode and you can run any command for debugging start: - amf: true - tcpdump: false # WARNING: start tcpdump collection to analyse but beware it will take a lot of space in the container/persistent volume + nf: true + tcpdump: false # WARNING: start tcpdump collection to analyse but beware it will take a lot of space in the container/persistent volume # AMF needs two seperate interface one for http and other one for SCTP (N1/N2) to communicate with gNB. # But for experimentation only one interface can be used. @@ -59,13 +81,12 @@ start: # 2. Your gnB is outside the cluster and the host machine can communicate but pods can not then you can provide ip-address in the same range as your host machine # 3. You want static ip-address for N1/N2 interface, Namf can be discovered by its service name - multus: create: false n1IPadd: "172.21.10.6" n1Netmask: "22" n1Gateway: "172.21.11.254" - hostInterface: "ens2f0np0" # Interface of the host machine on which this pod will be scheduled + hostInterface: "bond0" # Interface of the host machine on which this pod will be scheduled config: instance: "0" @@ -126,11 +147,10 @@ config: mySqlPass: "linux" # OPTIONAL: used only if not using AUSF mySqlDb: "oai_db" # OPTIONAL: used only if not using AUSF - +# Currently this presistent volume is only used for storing the tcpdump of network functions at one common place. persistent: sharedvolume: false - volumneName: managed-nfs-storage - size: 1Gi + volumeName: cn5g-pv resources: define: false diff --git a/charts/simulators/gnbsim/values.yaml b/charts/simulators/gnbsim/values.yaml index bd3c9d957eb4e4b4107c326a70feaf342635affa..0c9dfd270adb7ede39936bfc673022858f4c8e55 100644 --- a/charts/simulators/gnbsim/values.yaml +++ b/charts/simulators/gnbsim/values.yaml @@ -7,14 +7,14 @@ replicaCount: 1 # NF image nfimage: registry: local - repository: rohankharade/gnbsim + repository: docker.io/rohankharade/gnbsim version: develop # pullPolicy: IfNotPresent or Never or Always pullPolicy: IfNotPresent tcpdumpimage: registry: local - repository: corfr/tcpdump + repository: docker.io/corfr/tcpdump version: latest # pullPolicy: IfNotPresent or Never or Always pullPolicy: IfNotPresent diff --git a/docker-compose/core-network.py b/docker-compose/core-network.py index 1c3ff1bdd5bd4f35b40e41df990e6222f62c69db..905ab2f0927c6be56beab24333f4c0f1da4810f8 100644 --- a/docker-compose/core-network.py +++ b/docker-compose/core-network.py @@ -54,8 +54,8 @@ def _parse_args() -> argparse.Namespace: python3 core-network.py --type start-basic python3 core-network.py --type start-basic-vpp python3 core-network.py --type stop-mini - python3 core-network.py --type start-mini --fqdn no --scenario 1 - python3 core-network.py --type start-basic --fqdn no --scenario 1''' + python3 core-network.py --type start-mini --scenario 2 + python3 core-network.py --type start-basic --scenario 2''' parser = argparse.ArgumentParser(description='OAI 5G CORE NETWORK DEPLOY', epilog=example_text, @@ -69,14 +69,6 @@ def _parse_args() -> argparse.Namespace: choices=['start-mini', 'start-basic', 'start-basic-vpp', 'stop-mini', 'stop-basic', 'stop-basic-vpp'], help='Functional type of 5g core network ("start-mini"|"start-basic"|"start-basic-vpp"|"stop-mini"|"stop-basic"|"stop-basic-vpp")', ) - # Deployment scenario with FQDN/IP based - parser.add_argument( - '--fqdn', '-fq', - action='store', - choices=['yes', 'no'], - default='yes', - help='Deployment scenario with FQDN ("yes"|"no")', - ) # Deployment scenario with NRF/ without NRF parser.add_argument( '--scenario', '-s', @@ -99,13 +91,6 @@ def deploy(file_name, ct, extra_interface=False): Returns: None """ - # Before deploy adapting with fqdn/ip - if args.fqdn == 'no': - subprocess.run(f'sed -i -e "s#USE_FQDN_DNS=yes#USE_FQDN_DNS=no#g" {file_name}', shell=True) - subprocess.run(f'sed -i -e "s#USE_FQDN_NRF=yes#USE_FQDN_NRF=no#g" {file_name}', shell=True) - elif args.fqdn == 'yes': - subprocess.run(f'sed -i -e "s#USE_FQDN_DNS=no#USE_FQDN_DNS=yes#g" {file_name}', shell=True) - subprocess.run(f'sed -i -e "s#USE_FQDN_NRF=no#USE_FQDN_NRF=yes#g" {file_name}', shell=True) logging.debug('\033[0;34m Starting 5gcn components... Please wait\033[0m....') if args.capture is None: @@ -174,7 +159,7 @@ def undeploy(file_name): None """ logging.debug('\033[0;34m UnDeploying OAI 5G core components\033[0m....') - cmd = f'docker-compose -f {file_name} down' + cmd = f'docker-compose -f {file_name} down -t 0' res = run_cmd(cmd, False) if res is None: exit(f'\033[0;31m Incorrect/Unsupported executing command {cmd}') @@ -339,9 +324,6 @@ if __name__ == '__main__': elif args.scenario == '2': deploy(BASIC_NO_NRF, 7) elif args.type == 'start-basic-vpp': - if args.fqdn == 'yes': - logging.error('Configuration not supported yet') - exit(-1) # Basic function with NRF and VPP-UPF if args.scenario == '1': deploy(BASIC_VPP_W_NRF, 8, True) diff --git a/docker-compose/oai_db1.sql b/docker-compose/database/oai_db1.sql similarity index 100% rename from docker-compose/oai_db1.sql rename to docker-compose/database/oai_db1.sql diff --git a/docker-compose/database/oai_db2.sql b/docker-compose/database/oai_db2.sql new file mode 100755 index 0000000000000000000000000000000000000000..b29f936e3248786aa5364748b7d249142e58d9a9 --- /dev/null +++ b/docker-compose/database/oai_db2.sql @@ -0,0 +1,357 @@ +-- phpMyAdmin SQL Dump +-- version 5.1.0 +-- https://www.phpmyadmin.net/ +-- +-- Host: 172.16.200.10:3306 +-- Generation Time: Mar 22, 2021 at 10:31 AM +-- Server version: 5.7.33 +-- PHP Version: 7.4.15 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Database: `oai_db` +-- + +-- -------------------------------------------------------- + +-- +-- Table structure for table `AccessAndMobilitySubscriptionData` +-- + +CREATE TABLE `AccessAndMobilitySubscriptionData` ( + `ueid` varchar(15) NOT NULL, + `servingPlmnid` varchar(15) NOT NULL, + `supportedFeatures` varchar(50) DEFAULT NULL, + `gpsis` json DEFAULT NULL, + `internalGroupIds` json DEFAULT NULL, + `sharedVnGroupDataIds` json DEFAULT NULL, + `subscribedUeAmbr` json DEFAULT NULL, + `nssai` json DEFAULT NULL, + `ratRestrictions` json DEFAULT NULL, + `forbiddenAreas` json DEFAULT NULL, + `serviceAreaRestriction` json DEFAULT NULL, + `coreNetworkTypeRestrictions` json DEFAULT NULL, + `rfspIndex` int(10) DEFAULT NULL, + `subsRegTimer` int(10) DEFAULT NULL, + `ueUsageType` int(10) DEFAULT NULL, + `mpsPriority` tinyint(1) DEFAULT NULL, + `mcsPriority` tinyint(1) DEFAULT NULL, + `activeTime` int(10) DEFAULT NULL, + `sorInfo` json DEFAULT NULL, + `sorInfoExpectInd` tinyint(1) DEFAULT NULL, + `sorafRetrieval` tinyint(1) DEFAULT NULL, + `sorUpdateIndicatorList` json DEFAULT NULL, + `upuInfo` json DEFAULT NULL, + `micoAllowed` tinyint(1) DEFAULT NULL, + `sharedAmDataIds` json DEFAULT NULL, + `odbPacketServices` json DEFAULT NULL, + `serviceGapTime` int(10) DEFAULT NULL, + `mdtUserConsent` json DEFAULT NULL, + `mdtConfiguration` json DEFAULT NULL, + `traceData` json DEFAULT NULL, + `cagData` json DEFAULT NULL, + `stnSr` varchar(50) DEFAULT NULL, + `cMsisdn` varchar(50) DEFAULT NULL, + `nbIoTUePriority` int(10) DEFAULT NULL, + `nssaiInclusionAllowed` tinyint(1) DEFAULT NULL, + `rgWirelineCharacteristics` varchar(50) DEFAULT NULL, + `ecRestrictionDataWb` json DEFAULT NULL, + `ecRestrictionDataNb` tinyint(1) DEFAULT NULL, + `expectedUeBehaviourList` json DEFAULT NULL, + `primaryRatRestrictions` json DEFAULT NULL, + `secondaryRatRestrictions` json DEFAULT NULL, + `edrxParametersList` json DEFAULT NULL, + `ptwParametersList` json DEFAULT NULL, + `iabOperationAllowed` tinyint(1) DEFAULT NULL, + `wirelineForbiddenAreas` json DEFAULT NULL, + `wirelineServiceAreaRestriction` json DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `Amf3GppAccessRegistration` +-- + +CREATE TABLE `Amf3GppAccessRegistration` ( + `ueid` varchar(15) NOT NULL, + `amfInstanceId` varchar(50) NOT NULL, + `supportedFeatures` varchar(50) DEFAULT NULL, + `purgeFlag` tinyint(1) DEFAULT NULL, + `pei` varchar(50) DEFAULT NULL, + `imsVoPs` json DEFAULT NULL, + `deregCallbackUri` varchar(50) NOT NULL, + `amfServiceNameDereg` json DEFAULT NULL, + `pcscfRestorationCallbackUri` varchar(50) DEFAULT NULL, + `amfServiceNamePcscfRest` json DEFAULT NULL, + `initialRegistrationInd` tinyint(1) DEFAULT NULL, + `guami` json NOT NULL, + `backupAmfInfo` json DEFAULT NULL, + `drFlag` tinyint(1) DEFAULT NULL, + `ratType` json NOT NULL, + `urrpIndicator` tinyint(1) DEFAULT NULL, + `amfEeSubscriptionId` varchar(50) DEFAULT NULL, + `epsInterworkingInfo` json DEFAULT NULL, + `ueSrvccCapability` tinyint(1) DEFAULT NULL, + `registrationTime` varchar(50) DEFAULT NULL, + `vgmlcAddress` json DEFAULT NULL, + `contextInfo` json DEFAULT NULL, + `noEeSubscriptionInd` tinyint(1) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `AuthenticationStatus` +-- + +CREATE TABLE `AuthenticationStatus` ( + `ueid` varchar(20) NOT NULL, + `nfInstanceId` varchar(50) NOT NULL, + `success` tinyint(1) NOT NULL, + `timeStamp` varchar(50) NOT NULL, + `authType` varchar(25) NOT NULL, + `servingNetworkName` varchar(50) NOT NULL, + `authRemovalInd` tinyint(1) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `AuthenticationSubscription` +-- + +CREATE TABLE `AuthenticationSubscription` ( + `ueid` varchar(20) NOT NULL, + `authenticationMethod` varchar(25) NOT NULL, + `encPermanentKey` varchar(50) DEFAULT NULL, + `protectionParameterId` varchar(50) DEFAULT NULL, + `sequenceNumber` json DEFAULT NULL, + `authenticationManagementField` varchar(50) DEFAULT NULL, + `algorithmId` varchar(50) DEFAULT NULL, + `encOpcKey` varchar(50) DEFAULT NULL, + `encTopcKey` varchar(50) DEFAULT NULL, + `vectorGenerationInHss` tinyint(1) DEFAULT NULL, + `n5gcAuthMethod` varchar(15) DEFAULT NULL, + `rgAuthenticationInd` tinyint(1) DEFAULT NULL, + `supi` varchar(20) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `AuthenticationSubscription` +-- + +INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208990000000030', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'c42449363bbad02b66d16bc975d77cc1', NULL, NULL, NULL, NULL, '208990000000030'); +INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208990000000031', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'c42449363bbad02b66d16bc975d77cc1', NULL, NULL, NULL, NULL, '208990000000031'); +INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208990000000032', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'c42449363bbad02b66d16bc975d77cc1', NULL, NULL, NULL, NULL, '208990000000032'); +INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208990000000033', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'c42449363bbad02b66d16bc975d77cc1', NULL, NULL, NULL, NULL, '208990000000033'); +INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208990000000034', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'c42449363bbad02b66d16bc975d77cc1', NULL, NULL, NULL, NULL, '208990000000034'); +INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208990000000035', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'c42449363bbad02b66d16bc975d77cc1', NULL, NULL, NULL, NULL, '208990000000035'); +INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208990000000036', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'c42449363bbad02b66d16bc975d77cc1', NULL, NULL, NULL, NULL, '208990000000036'); +INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208990000000037', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'c42449363bbad02b66d16bc975d77cc1', NULL, NULL, NULL, NULL, '208990000000037'); +INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208990000000038', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'c42449363bbad02b66d16bc975d77cc1', NULL, NULL, NULL, NULL, '208990000000038'); +INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208990000000039', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'c42449363bbad02b66d16bc975d77cc1', NULL, NULL, NULL, NULL, '208990000000039'); +INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208990000000040', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'c42449363bbad02b66d16bc975d77cc1', NULL, NULL, NULL, NULL, '208990000000040'); +INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208990000000041', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'c42449363bbad02b66d16bc975d77cc1', NULL, NULL, NULL, NULL, '208990000000041'); +INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208990000000042', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'c42449363bbad02b66d16bc975d77cc1', NULL, NULL, NULL, NULL, '208990000000042'); +INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208990000000043', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'c42449363bbad02b66d16bc975d77cc1', NULL, NULL, NULL, NULL, '208990000000043'); +INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208990000000044', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'c42449363bbad02b66d16bc975d77cc1', NULL, NULL, NULL, NULL, '208990000000044'); +INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208990000000045', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'c42449363bbad02b66d16bc975d77cc1', NULL, NULL, NULL, NULL, '208990000000045'); +INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208990000000046', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'c42449363bbad02b66d16bc975d77cc1', NULL, NULL, NULL, NULL, '208990000000046'); +INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208990000000047', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'c42449363bbad02b66d16bc975d77cc1', NULL, NULL, NULL, NULL, '208990000000047'); +INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208990000000048', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'c42449363bbad02b66d16bc975d77cc1', NULL, NULL, NULL, NULL, '208990000000048'); +INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208990000000049', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'c42449363bbad02b66d16bc975d77cc1', NULL, NULL, NULL, NULL, '208990000000049'); +INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208990000000050', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'c42449363bbad02b66d16bc975d77cc1', NULL, NULL, NULL, NULL, '208990000000050'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `SdmSubscriptions` +-- + +CREATE TABLE `SdmSubscriptions` ( + `ueid` varchar(15) NOT NULL, + `subsId` int(10) UNSIGNED NOT NULL, + `nfInstanceId` varchar(50) NOT NULL, + `implicitUnsubscribe` tinyint(1) DEFAULT NULL, + `expires` varchar(50) DEFAULT NULL, + `callbackReference` varchar(50) NOT NULL, + `amfServiceName` json DEFAULT NULL, + `monitoredResourceUris` json NOT NULL, + `singleNssai` json DEFAULT NULL, + `dnn` varchar(50) DEFAULT NULL, + `subscriptionId` varchar(50) DEFAULT NULL, + `plmnId` json DEFAULT NULL, + `immediateReport` tinyint(1) DEFAULT NULL, + `report` json DEFAULT NULL, + `supportedFeatures` varchar(50) DEFAULT NULL, + `contextInfo` json DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `SessionManagementSubscriptionData` +-- + +CREATE TABLE `SessionManagementSubscriptionData` ( + `ueid` varchar(15) NOT NULL, + `servingPlmnid` varchar(15) NOT NULL, + `singleNssai` json NOT NULL, + `dnnConfigurations` json DEFAULT NULL, + `internalGroupIds` json DEFAULT NULL, + `sharedVnGroupDataIds` json DEFAULT NULL, + `sharedDnnConfigurationsId` varchar(50) DEFAULT NULL, + `odbPacketServices` json DEFAULT NULL, + `traceData` json DEFAULT NULL, + `sharedTraceDataId` varchar(50) DEFAULT NULL, + `expectedUeBehavioursList` json DEFAULT NULL, + `suggestedPacketNumDlList` json DEFAULT NULL, + `3gppChargingCharacteristics` varchar(50) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `SessionManagementSubscriptionData` +-- + +INSERT INTO `SessionManagementSubscriptionData` (`ueid`, `servingPlmnid`, `singleNssai`, `dnnConfigurations`) VALUES +('208950000000031', '20895', '{\"sst\": 222, \"sd\": \"123\"}','{\"default\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 6,\"arp\":{\"priorityLevel\": 1,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"NOT_PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"100Mbps\", \"downlink\":\"100Mbps\"},\"staticIpAddress\":[{\"ipv4Addr\": \"12.1.1.4\"}]}}'); +INSERT INTO `SessionManagementSubscriptionData` (`ueid`, `servingPlmnid`, `singleNssai`, `dnnConfigurations`) VALUES +('208950000000032', '20895', '{\"sst\": 222, \"sd\": \"123\"}','{\"default\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 6,\"arp\":{\"priorityLevel\": 1,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"NOT_PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"100Mbps\", \"downlink\":\"100Mbps\"}}}'); +-- -------------------------------------------------------- + +-- +-- Table structure for table `SmfRegistrations` +-- + +CREATE TABLE `SmfRegistrations` ( + `ueid` varchar(15) NOT NULL, + `subpduSessionId` int(10) NOT NULL, + `smfInstanceId` varchar(50) NOT NULL, + `smfSetId` varchar(50) DEFAULT NULL, + `supportedFeatures` varchar(50) DEFAULT NULL, + `pduSessionId` int(10) NOT NULL, + `singleNssai` json NOT NULL, + `dnn` varchar(50) DEFAULT NULL, + `emergencyServices` tinyint(1) DEFAULT NULL, + `pcscfRestorationCallbackUri` varchar(50) DEFAULT NULL, + `plmnId` json NOT NULL, + `pgwFqdn` varchar(50) DEFAULT NULL, + `epdgInd` tinyint(1) DEFAULT NULL, + `deregCallbackUri` varchar(50) DEFAULT NULL, + `registrationReason` json DEFAULT NULL, + `registrationTime` varchar(50) DEFAULT NULL, + `contextInfo` json DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `SmfSelectionSubscriptionData` +-- + +CREATE TABLE `SmfSelectionSubscriptionData` ( + `ueid` varchar(15) NOT NULL, + `servingPlmnid` varchar(15) NOT NULL, + `supportedFeatures` varchar(50) DEFAULT NULL, + `subscribedSnssaiInfos` json DEFAULT NULL, + `sharedSnssaiInfosId` varchar(50) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Indexes for dumped tables +-- + +-- +-- Indexes for table `AccessAndMobilitySubscriptionData` +-- +ALTER TABLE `AccessAndMobilitySubscriptionData` + ADD PRIMARY KEY (`ueid`,`servingPlmnid`) USING BTREE; + +-- +-- Indexes for table `Amf3GppAccessRegistration` +-- +ALTER TABLE `Amf3GppAccessRegistration` + ADD PRIMARY KEY (`ueid`); + +-- +-- Indexes for table `AuthenticationStatus` +-- +ALTER TABLE `AuthenticationStatus` + ADD PRIMARY KEY (`ueid`); + +-- +-- Indexes for table `AuthenticationSubscription` +-- +ALTER TABLE `AuthenticationSubscription` + ADD PRIMARY KEY (`ueid`); + +-- +-- Indexes for table `SdmSubscriptions` +-- +ALTER TABLE `SdmSubscriptions` + ADD PRIMARY KEY (`subsId`,`ueid`) USING BTREE; + +-- +-- Indexes for table `SessionManagementSubscriptionData` +-- +ALTER TABLE `SessionManagementSubscriptionData` + ADD PRIMARY KEY (`ueid`,`servingPlmnid`) USING BTREE; + +-- +-- Indexes for table `SmfRegistrations` +-- +ALTER TABLE `SmfRegistrations` + ADD PRIMARY KEY (`ueid`,`subpduSessionId`) USING BTREE; + +-- +-- Indexes for table `SmfSelectionSubscriptionData` +-- +ALTER TABLE `SmfSelectionSubscriptionData` + ADD PRIMARY KEY (`ueid`,`servingPlmnid`) USING BTREE; + +-- +-- AUTO_INCREMENT for dumped tables +-- + +-- +-- AUTO_INCREMENT for table `SdmSubscriptions` +-- +ALTER TABLE `SdmSubscriptions` + MODIFY `subsId` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; + diff --git a/docker-compose/docker-compose-basic-nonrf.yaml b/docker-compose/docker-compose-basic-nonrf.yaml index e53e55d64700f3befd0802e5a4f1df47aa1b3ddd..9f56fef460745d1562215039a372525f6ffac547 100644 --- a/docker-compose/docker-compose-basic-nonrf.yaml +++ b/docker-compose/docker-compose-basic-nonrf.yaml @@ -4,8 +4,8 @@ services: container_name: "mysql" image: mysql:5.7 volumes: - - ./oai_db2.sql:/docker-entrypoint-initdb.d/oai_db.sql - - ./mysql-healthcheck2.sh:/tmp/mysql-healthcheck.sh + - ./database/oai_db2.sql:/docker-entrypoint-initdb.d/oai_db.sql + - ./healthscripts/mysql-healthcheck2.sh:/tmp/mysql-healthcheck.sh environment: - TZ=Europe/Paris - MYSQL_DATABASE=oai_db @@ -21,36 +21,41 @@ services: public_net: ipv4_address: 192.168.70.131 oai-udr: - container_name: oai-udr - image: oai-udr:latest + container_name: "oai-udr" + image: oai-udr:v1.4.0 environment: - TZ=Europe/Paris - INSTANCE=0 - PID_DIRECTORY=/var/run + - UDR_NAME=OAI_UDR - UDR_INTERFACE_NAME_FOR_NUDR=eth0 - UDR_INTERFACE_PORT_FOR_NUDR=80 - UDR_INTERFACE_HTTP2_PORT_FOR_NUDR=8080 + - USE_HTTP2=no - UDR_API_VERSION=v1 - MYSQL_IPV4_ADDRESS=192.168.70.131 - MYSQL_USER=test - MYSQL_PASS=test + - DB_CONNECTION_TIMEOUT=300 # Reset the connection to the DB after expiring the timeout (in second) currently can't be changed - MYSQL_DB=oai_db - WAIT_MYSQL=120 + - USE_FQDN_DNS=yes + - REGISTER_NRF=no depends_on: - mysql networks: public_net: ipv4_address: 192.168.70.136 volumes: - - ./udr-healthcheck.sh:/openair-udr/bin/udr-healthcheck.sh + - ./healthscripts/udr-healthcheck.sh:/openair-udr/bin/udr-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-udr/bin/udr-healthcheck.sh" interval: 10s timeout: 5s retries: 5 oai-udm: - container_name: oai-udm - image: oai-udm:latest + container_name: "oai-udm" + image: oai-udm:v1.4.0 environment: - TZ=Europe/Paris - INSTANCE=0 @@ -58,27 +63,30 @@ services: - UDM_NAME=OAI_UDM - SBI_IF_NAME=eth0 - SBI_PORT=80 + - SBI_HTTP2_PORT=8080 + - USE_HTTP2 - UDM_VERSION_NB=v1 - USE_FQDN_DNS=yes - UDR_IP_ADDRESS=192.168.70.136 - UDR_PORT=80 - UDR_VERSION_NB=v1 - UDR_FQDN=oai-udr + - REGISTER_NRF=no depends_on: - oai-udr networks: public_net: ipv4_address: 192.168.70.137 volumes: - - ./udm-healthcheck.sh:/openair-udm/bin/udm-healthcheck.sh + - ./healthscripts/udm-healthcheck.sh:/openair-udm/bin/udm-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-udm/bin/udm-healthcheck.sh" interval: 10s timeout: 5s retries: 5 oai-ausf: - container_name: oai-ausf - image: oai-ausf:latest + container_name: "oai-ausf" + image: oai-ausf:v1.4.0 environment: - TZ=Europe/Paris - INSTANCE_ID=0 @@ -86,18 +94,21 @@ services: - AUSF_NAME=OAI_AUSF - SBI_IF_NAME=eth0 - SBI_PORT=80 + - USE_HTTP2=no + - SBI_HTTP2_PORT=8080 - USE_FQDN_DNS=yes - UDM_IP_ADDRESS=192.168.70.137 - UDM_PORT=80 - UDM_VERSION_NB=v1 - UDM_FQDN=oai-udm + - REGISTER_NRF=no depends_on: - oai-udm networks: public_net: ipv4_address: 192.168.70.138 volumes: - - ./ausf-healthcheck.sh:/openair-ausf/bin/ausf-healthcheck.sh + - ./healthscripts/ausf-healthcheck.sh:/openair-ausf/bin/ausf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-ausf/bin/ausf-healthcheck.sh" interval: 10s @@ -105,7 +116,7 @@ services: retries: 5 oai-amf: container_name: "oai-amf" - image: oai-amf:latest + image: oai-amf:v1.4.0 environment: - TZ=Europe/paris - INSTANCE=0 @@ -125,10 +136,12 @@ services: - PLMN_SUPPORT_MCC=208 - PLMN_SUPPORT_MNC=95 - PLMN_SUPPORT_TAC=0xa000 - - SST_0=222 - - SD_0=123 + - SST_0=1 + - SD_0=0xFFFFFF - SST_1=1 - - SD_1=12 + - SD_1=1 + - SST_2=222 + - SD_2=123 - AMF_INTERFACE_NAME_FOR_NGAP=eth0 - AMF_INTERFACE_NAME_FOR_N11=eth0 - SMF_INSTANCE_ID_0=1 @@ -146,15 +159,18 @@ services: - MYSQL_PASS=linux - MYSQL_DB=oai_db - OPERATOR_KEY=63bfa50ee6523365ff14c1f45f88737d - - NRF_IPV4_ADDRESS=0.0.0.0 - - NRF_PORT=80 - EXTERNAL_NRF=no - NF_REGISTRATION=no - SMF_SELECTION=no - USE_FQDN_DNS=yes - EXTERNAL_AUSF=yes - - NRF_API_VERSION=v1 - - NRF_FQDN=oai-nrf + - EXTERNAL_UDM=no + - EXTERNAL_NSSF=no + - USE_HTTP2=no + - NRF_IPV4_ADDRESS=0.0.0.0 # not used in this scenario, can't remove + - NRF_PORT=80 # not used in this scenario, can't remove + - NRF_API_VERSION=v1 # not used in this scenario, can't remove + - NRF_FQDN=localhost # not used in this scenario, can't remove - AUSF_IPV4_ADDRESS=192.168.70.138 - AUSF_PORT=80 - AUSF_API_VERSION=v1 @@ -162,12 +178,12 @@ services: - UDM_IPV4_ADDRESS=192.168.70.137 - UDM_PORT=80 - UDM_API_VERSION=v2 - - UDM_FQDN=oai-udm + - UDM_FQDN=oai-udm depends_on: - mysql - oai-ausf volumes: - - ./amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh + - ./healthscripts/amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-amf/bin/amf-healthcheck.sh" interval: 10s @@ -178,7 +194,7 @@ services: ipv4_address: 192.168.70.132 oai-smf: container_name: "oai-smf" - image: oai-smf:latest + image: oai-smf:v1.4.0 environment: - TZ=Europe/Paris - INSTANCE=0 @@ -200,21 +216,47 @@ services: - UDM_FQDN=oai-udm - UPF_IPV4_ADDRESS=192.168.70.134 - UPF_FQDN_0=oai-spgwu - - NRF_IPV4_ADDRESS=0.0.0.0 - - NRF_PORT=80 - - NRF_API_VERSION=v1 - - USE_LOCAL_SUBSCRIPTION_INFO=yes - - NRF_FQDN=oai-nrf + - NRF_IPV4_ADDRESS=0.0.0.0 # not used in this scenario, can't remove + - NRF_PORT=80 # not used in this scenario, can't remove + - NRF_API_VERSION=v1 # not used in this scenario, can't remove + - NRF_FQDN=localhost # not used in this scenario, can't remove + - USE_LOCAL_SUBSCRIPTION_INFO=no #Set to yes if SMF uses local subscription information instead of from an UDM + - USE_NETWORK_INSTANCE=no #Set yes if network instance is to be used for given UPF - REGISTER_NRF=no - DISCOVER_UPF=no - USE_FQDN_DNS=yes - - DNN_RANGE1=12.1.1.2 - 12.1.1.128 - - DNN_RANGE0=12.2.1.2 - 12.2.1.128 - - DNN_NI1=default + - HTTP_VERSION=1 # Default: 1 + - UE_MTU=1500 + - DNN_NI0=oai + - TYPE0=IPv4 + - DNN_RANGE0=12.1.1.2 - 12.1.1.100 + - NSSAI_SST0=1 + - NSSAI_SD0=0xFFFFFF + - SESSION_AMBR_UL0=200Mbps + - SESSION_AMBR_DL0=400Mbps + - DNN_NI1=oai.ipv4 + - TYPE1=IPv4 + - DNN_RANGE1=12.1.1.101 - 12.1.1.200 + - NSSAI_SST1=1 + - NSSAI_SD1=1 + - SESSION_AMBR_UL1=100Mbps + - SESSION_AMBR_DL1=200Mbps + - DNN_NI2=default + - TYPE2=IPv4 + - DNN_RANGE2=12.1.1.201 - 12.1.1.253 + - NSSAI_SST2=222 + - NSSAI_SD2=123 + - SESSION_AMBR_UL2=50Mbps + - SESSION_AMBR_DL2=100Mbps + - DNN_NI3=ims + - TYPE3=IPv4v6 + - DNN_RANGE3=14.1.1.2 - 14.1.1.253 + - DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1 # only needed when ims is being used + - ENABLE_USAGE_REPORTING=no # Set yes if UE USAGE REPORTING is to be done at UPF depends_on: - oai-amf volumes: - - ./smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh + - ./healthscripts/smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh" interval: 10s @@ -225,7 +267,7 @@ services: ipv4_address: 192.168.70.133 oai-spgwu: container_name: "oai-spgwu" - image: oai-spgwu-tiny:latest + image: oai-spgwu-tiny:v1.3.0 environment: - TZ=Europe/Paris - PID_DIRECTORY=/var/run @@ -246,13 +288,19 @@ services: - REGISTER_NRF=no - USE_FQDN_NRF=yes - UPF_FQDN_5G=oai-spgwu - - NRF_IPV4_ADDRESS=0.0.0.0 - - NRF_PORT=80 - - NRF_API_VERSION=v1 - - NRF_FQDN=oai-nrf - - NSSAI_SST_0=222 - - NSSAI_SD_0=123 - - DNN_0=default + - NRF_IPV4_ADDRESS=0.0.0.0 # not used in this scenario, can't remove + - NRF_PORT=80 # not used in this scenario, can't remove + - NRF_API_VERSION=v1 # not used in this scenario, can't remove + - NRF_FQDN=localhost # not used in this scenario, can't remove + - NSSAI_SST_0=1 + - NSSAI_SD_0=0xFFFFFF + - DNN_0=oai + - NSSAI_SST_1=1 + - NSSAI_SD_1=1 + - DNN_1=oai.ipv4 + - NSSAI_SST_2=222 + - NSSAI_SD_2=123 + - DNN_2=default depends_on: - oai-smf cap_add: @@ -262,7 +310,7 @@ services: - ALL privileged: true volumes: - - ./spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh + - ./healthscripts/spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-spgwu-tiny/bin/spgwu-healthcheck.sh" interval: 10s @@ -271,10 +319,10 @@ services: networks: public_net: ipv4_address: 192.168.70.134 - oai-ext-dn: + oai-traffic-gen: image: trf-gen-cn5g:latest privileged: true - container_name: oai-ext-dn + container_name: oai-traffic-gen entrypoint: /bin/bash -c \ "ip route add 12.1.1.0/24 via 192.168.70.134 dev eth0; sleep infinity" depends_on: diff --git a/docker-compose/docker-compose-basic-nrf.yaml b/docker-compose/docker-compose-basic-nrf.yaml index 7338d757a8dfc02ca82cac615a5c538c1df749bf..c1cc725fdb28463bb2f25667f645519138ead4f4 100644 --- a/docker-compose/docker-compose-basic-nrf.yaml +++ b/docker-compose/docker-compose-basic-nrf.yaml @@ -4,8 +4,8 @@ services: container_name: "mysql" image: mysql:5.7 volumes: - - ./oai_db2.sql:/docker-entrypoint-initdb.d/oai_db.sql - - ./mysql-healthcheck2.sh:/tmp/mysql-healthcheck.sh + - ./database/oai_db2.sql:/docker-entrypoint-initdb.d/oai_db.sql + - ./healthscripts/mysql-healthcheck2.sh:/tmp/mysql-healthcheck.sh environment: - TZ=Europe/Paris - MYSQL_DATABASE=oai_db @@ -22,7 +22,7 @@ services: ipv4_address: 192.168.70.131 oai-udr: container_name: "oai-udr" - image: oai-udr:latest + image: oai-udr:v1.4.0 environment: - TZ=Europe/Paris - INSTANCE=0 @@ -31,10 +31,12 @@ services: - UDR_INTERFACE_NAME_FOR_NUDR=eth0 - UDR_INTERFACE_PORT_FOR_NUDR=80 - UDR_INTERFACE_HTTP2_PORT_FOR_NUDR=8080 + - USE_HTTP2=no - UDR_API_VERSION=v1 - MYSQL_IPV4_ADDRESS=192.168.70.131 - MYSQL_USER=test - MYSQL_PASS=test + - DB_CONNECTION_TIMEOUT=300 # Reset the connection to the DB after expiring the timeout (in second) currently can't be changed - MYSQL_DB=oai_db - WAIT_MYSQL=120 - USE_FQDN_DNS=yes @@ -50,7 +52,7 @@ services: public_net: ipv4_address: 192.168.70.136 volumes: - - ./udr-healthcheck.sh:/openair-udr/bin/udr-healthcheck.sh + - ./healthscripts/udr-healthcheck.sh:/openair-udr/bin/udr-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-udr/bin/udr-healthcheck.sh" interval: 10s @@ -58,7 +60,7 @@ services: retries: 5 oai-udm: container_name: "oai-udm" - image: oai-udm:latest + image: oai-udm:v1.4.0 environment: - TZ=Europe/Paris - INSTANCE=0 @@ -66,6 +68,8 @@ services: - UDM_NAME=OAI_UDM - SBI_IF_NAME=eth0 - SBI_PORT=80 + - SBI_HTTP2_PORT=8080 + - USE_HTTP2 - UDM_VERSION_NB=v1 - USE_FQDN_DNS=yes - UDR_IP_ADDRESS=192.168.70.136 @@ -83,7 +87,7 @@ services: public_net: ipv4_address: 192.168.70.137 volumes: - - ./udm-healthcheck.sh:/openair-udm/bin/udm-healthcheck.sh + - ./healthscripts/udm-healthcheck.sh:/openair-udm/bin/udm-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-udm/bin/udm-healthcheck.sh" interval: 10s @@ -91,7 +95,7 @@ services: retries: 5 oai-ausf: container_name: "oai-ausf" - image: oai-ausf:latest + image: oai-ausf:v1.4.0 environment: - TZ=Europe/Paris - INSTANCE_ID=0 @@ -99,6 +103,8 @@ services: - AUSF_NAME=OAI_AUSF - SBI_IF_NAME=eth0 - SBI_PORT=80 + - USE_HTTP2 + - SBI_HTTP2_PORT - USE_FQDN_DNS=yes - UDM_IP_ADDRESS=192.168.70.137 - UDM_PORT=80 @@ -115,7 +121,7 @@ services: public_net: ipv4_address: 192.168.70.138 volumes: - - ./ausf-healthcheck.sh:/openair-ausf/bin/ausf-healthcheck.sh + - ./healthscripts/ausf-healthcheck.sh:/openair-ausf/bin/ausf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-ausf/bin/ausf-healthcheck.sh" interval: 10s @@ -123,11 +129,12 @@ services: retries: 5 oai-nrf: container_name: "oai-nrf" - image: oai-nrf:latest + image: oai-nrf:v1.4.0 environment: + - TZ=Europe/Paris - NRF_INTERFACE_NAME_FOR_SBI=eth0 - NRF_INTERFACE_PORT_FOR_SBI=80 - - NRF_INTERFACE_HTTP2_PORT_FOR_SBI=9090 + - NRF_INTERFACE_HTTP2_PORT_FOR_SBI=8080 - NRF_API_VERSION=v1 - INSTANCE=0 - PID_DIRECTORY=/var/run @@ -135,7 +142,7 @@ services: public_net: ipv4_address: 192.168.70.130 volumes: - - ./nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh + - ./healthscripts/nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-nrf/bin/nrf-healthcheck.sh" interval: 10s @@ -143,7 +150,7 @@ services: retries: 5 oai-amf: container_name: "oai-amf" - image: oai-amf:latest + image: oai-amf:v1.4.0 environment: - TZ=Europe/paris - INSTANCE=0 @@ -163,10 +170,12 @@ services: - PLMN_SUPPORT_MCC=208 - PLMN_SUPPORT_MNC=95 - PLMN_SUPPORT_TAC=0xa000 - - SST_0=222 - - SD_0=123 + - SST_0=1 + - SD_0=0xFFFFFF - SST_1=1 - - SD_1=12 + - SD_1=1 + - SST_2=222 + - SD_2=123 - AMF_INTERFACE_NAME_FOR_NGAP=eth0 - AMF_INTERFACE_NAME_FOR_N11=eth0 - SMF_INSTANCE_ID_0=1 @@ -186,11 +195,14 @@ services: - OPERATOR_KEY=63bfa50ee6523365ff14c1f45f88737d - NRF_IPV4_ADDRESS=192.168.70.130 - NRF_PORT=80 - - EXTERNAL_NRF=yes + - EXTERNAL_NRF=no - NF_REGISTRATION=yes - - SMF_SELECTION=no + - SMF_SELECTION=yes - USE_FQDN_DNS=yes - EXTERNAL_AUSF=yes + - EXTERNAL_UDM=no + - EXTERNAL_NSSF=no + - USE_HTTP2=no - NRF_API_VERSION=v1 - NRF_FQDN=oai-nrf - AUSF_IPV4_ADDRESS=192.168.70.138 @@ -206,7 +218,7 @@ services: - oai-nrf - oai-ausf volumes: - - ./amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh + - ./healthscripts/amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-amf/bin/amf-healthcheck.sh" interval: 10s @@ -217,7 +229,7 @@ services: ipv4_address: 192.168.70.132 oai-smf: container_name: "oai-smf" - image: oai-smf:latest + image: oai-smf:v1.4.0 environment: - TZ=Europe/Paris - INSTANCE=0 @@ -242,20 +254,45 @@ services: - NRF_IPV4_ADDRESS=192.168.70.130 - NRF_PORT=80 - NRF_API_VERSION=v1 - - USE_LOCAL_SUBSCRIPTION_INFO=no + - USE_LOCAL_SUBSCRIPTION_INFO=no #Set to yes if SMF uses local subscription information instead of from an UDM + - USE_NETWORK_INSTANCE=no #Set yes if network instance is to be used for given UPF - NRF_FQDN=oai-nrf - REGISTER_NRF=yes - DISCOVER_UPF=yes - USE_FQDN_DNS=yes - - DNN_RANGE1=12.1.1.2 - 12.1.1.128 - - DNN_RANGE0=12.2.1.2 - 12.2.1.128 - - DNN_NI1=default + - HTTP_VERSION=1 # Default: 1 - UE_MTU=1500 + - DNN_NI0=oai + - TYPE0=IPv4 + - DNN_RANGE0=12.1.1.2 - 12.1.1.100 + - NSSAI_SST0=1 + - NSSAI_SD0=0xFFFFFF + - SESSION_AMBR_UL0=200Mbps + - SESSION_AMBR_DL0=400Mbps + - DNN_NI1=oai.ipv4 + - TYPE1=IPv4 + - DNN_RANGE1=12.1.1.101 - 12.1.1.200 + - NSSAI_SST1=1 + - NSSAI_SD1=1 + - SESSION_AMBR_UL1=100Mbps + - SESSION_AMBR_DL1=200Mbps + - DNN_NI2=default + - TYPE2=IPv4 + - DNN_RANGE2=12.1.1.201 - 12.1.1.253 + - NSSAI_SST2=222 + - NSSAI_SD2=123 + - SESSION_AMBR_UL2=50Mbps + - SESSION_AMBR_DL2=100Mbps + - DNN_NI3=ims + - TYPE3=IPv4v6 + - DNN_RANGE3=14.1.1.2 - 14.1.1.253 + - DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1 # only needed when ims is being used + - ENABLE_USAGE_REPORTING=no # Set yes if UE USAGE REPORTING is to be done at UPF depends_on: - oai-nrf - oai-amf volumes: - - ./smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh + - ./healthscripts/smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh" interval: 10s @@ -266,7 +303,7 @@ services: ipv4_address: 192.168.70.133 oai-spgwu: container_name: "oai-spgwu" - image: oai-spgwu-tiny:latest + image: oai-spgwu-tiny:v1.3.0 environment: - TZ=Europe/Paris - PID_DIRECTORY=/var/run @@ -291,9 +328,15 @@ services: - NRF_PORT=80 - NRF_API_VERSION=v1 - NRF_FQDN=oai-nrf - - NSSAI_SST_0=222 - - NSSAI_SD_0=123 - - DNN_0=default + - NSSAI_SST_0=1 + - NSSAI_SD_0=0xFFFFFF + - DNN_0=oai + - NSSAI_SST_1=1 + - NSSAI_SD_1=1 + - DNN_1=oai.ipv4 + - NSSAI_SST_2=222 + - NSSAI_SD_2=123 + - DNN_2=default depends_on: - oai-nrf - oai-smf @@ -304,7 +347,7 @@ services: - ALL privileged: true volumes: - - ./spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh + - ./healthscripts/spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-spgwu-tiny/bin/spgwu-healthcheck.sh" interval: 10s @@ -313,10 +356,10 @@ services: networks: public_net: ipv4_address: 192.168.70.134 - oai-ext-dn: + oai-traffic-gen: image: trf-gen-cn5g:latest privileged: true - container_name: oai-ext-dn + container_name: oai-traffic-gen entrypoint: /bin/bash -c \ "ip route add 12.1.1.0/24 via 192.168.70.134 dev eth0; sleep infinity" depends_on: diff --git a/docker-compose/docker-compose-basic-vpp-nonrf.yaml b/docker-compose/docker-compose-basic-vpp-nonrf.yaml index 2d44ccd3c64707c2a31c87c0e15ba524c23ba030..713c6b49429515f106986bcdc85779ee1f0968e4 100644 --- a/docker-compose/docker-compose-basic-vpp-nonrf.yaml +++ b/docker-compose/docker-compose-basic-vpp-nonrf.yaml @@ -4,8 +4,8 @@ services: container_name: "mysql" image: mysql:5.7 volumes: - - ./oai_db2.sql:/docker-entrypoint-initdb.d/oai_db.sql - - ./mysql-healthcheck2.sh:/tmp/mysql-healthcheck.sh + - ./database/oai_db2.sql:/docker-entrypoint-initdb.d/oai_db.sql + - ./healthscripts/mysql-healthcheck2.sh:/tmp/mysql-healthcheck.sh environment: - TZ=Europe/Paris - MYSQL_DATABASE=oai_db @@ -22,7 +22,7 @@ services: ipv4_address: 192.168.70.131 oai-udr: container_name: "oai-udr" - image: oai-udr:latest + image: oai-udr:v1.4 environment: - TZ=Europe/Paris - INSTANCE=0 @@ -42,7 +42,7 @@ services: public_net: ipv4_address: 192.168.70.136 volumes: - - ./udr-healthcheck.sh:/openair-udr/bin/udr-healthcheck.sh + - ./healthscripts/udr-healthcheck.sh:/openair-udr/bin/udr-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-udr/bin/udr-healthcheck.sh" interval: 10s @@ -50,7 +50,7 @@ services: retries: 5 oai-udm: container_name: "oai-udm" - image: oai-udm:latest + image: oai-udm:v1.4 environment: - TZ=Europe/Paris - INSTANCE=0 @@ -70,7 +70,7 @@ services: public_net: ipv4_address: 192.168.70.137 volumes: - - ./udm-healthcheck.sh:/openair-udm/bin/udm-healthcheck.sh + - ./healthscripts/udm-healthcheck.sh:/openair-udm/bin/udm-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-udm/bin/udm-healthcheck.sh" interval: 10s @@ -78,7 +78,7 @@ services: retries: 5 oai-ausf: container_name: "oai-ausf" - image: oai-ausf:latest + image: oai-ausf:v1.4 environment: - TZ=Europe/Paris - INSTANCE_ID=0 @@ -97,7 +97,7 @@ services: public_net: ipv4_address: 192.168.70.138 volumes: - - ./ausf-healthcheck.sh:/openair-ausf/bin/ausf-healthcheck.sh + - ./healthscripts/ausf-healthcheck.sh:/openair-ausf/bin/ausf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-ausf/bin/ausf-healthcheck.sh" interval: 10s @@ -105,7 +105,7 @@ services: retries: 5 oai-amf: container_name: "oai-amf" - image: oai-amf:latest + image: oai-amf:v1.4 environment: - TZ=Europe/paris - INSTANCE=0 @@ -169,7 +169,7 @@ services: - oai-ext-dn - oai-ausf volumes: - - ./amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh + - ./healthscripts/amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-amf/bin/amf-healthcheck.sh" interval: 10s @@ -180,7 +180,7 @@ services: ipv4_address: 192.168.70.132 oai-smf: container_name: "oai-smf" - image: oai-smf:latest + image: oai-smf:v1.4 environment: - TZ=Europe/Paris - INSTANCE=0 @@ -219,7 +219,7 @@ services: depends_on: - oai-amf volumes: - - ./smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh + - ./healthscripts/smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh" interval: 10s @@ -229,7 +229,7 @@ services: public_net: ipv4_address: 192.168.70.133 vpp-upf: - image: oai-upf-vpp:latest + image: oai-upf-vpp:v1.4 privileged: true container_name: "vpp-upf" environment: @@ -267,10 +267,10 @@ services: ipv4_address: 192.168.72.134 public_net_core: ipv4_address: 192.168.73.134 - oai-ext-dn: + oai-traffic-gen: image: image: trf-gen-cn5g:latest privileged: true - container_name: "oai-ext-dn" + container_name: "oai-traffic-gen" entrypoint: /bin/bash -c \ "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\ "ip route add 12.2.1.0/24 via 192.168.73.202 dev eth0; sleep infinity" diff --git a/docker-compose/docker-compose-basic-vpp-nrf.yaml b/docker-compose/docker-compose-basic-vpp-nrf.yaml index 9df35bcc658aa21601baf3accec833fb741ec383..7d6428df61bf02e3ea2defec6c079c41ed01223d 100644 --- a/docker-compose/docker-compose-basic-vpp-nrf.yaml +++ b/docker-compose/docker-compose-basic-vpp-nrf.yaml @@ -22,7 +22,7 @@ services: ipv4_address: 192.168.70.131 oai-udr: container_name: "oai-udr" - image: oai-udr:latest + image: oai-udr:v1.4 environment: - TZ=Europe/Paris - INSTANCE=0 @@ -58,7 +58,7 @@ services: retries: 5 oai-udm: container_name: "oai-udm" - image: oai-udm:latest + image: oai-udm:v1.4 environment: - TZ=Europe/Paris - INSTANCE=0 @@ -91,7 +91,7 @@ services: retries: 5 oai-ausf: container_name: "oai-ausf" - image: oai-ausf:latest + image: oai-ausf:v1.4 environment: - TZ=Europe/Paris - INSTANCE_ID=0 @@ -123,7 +123,7 @@ services: retries: 5 oai-nrf: container_name: "oai-nrf" - image: oai-nrf:latest + image: oai-nrf:v1.4 environment: - NRF_INTERFACE_NAME_FOR_SBI=eth0 - NRF_INTERFACE_PORT_FOR_SBI=80 @@ -143,7 +143,7 @@ services: retries: 5 oai-amf: container_name: "oai-amf" - image: oai-amf:latest + image: oai-amf:v1.4 environment: - TZ=Europe/paris - INSTANCE=0 @@ -218,7 +218,7 @@ services: ipv4_address: 192.168.70.132 oai-smf: container_name: "oai-smf" - image: oai-smf:latest + image: oai-smf:v1.4 environment: - TZ=Europe/Paris - INSTANCE=0 @@ -267,7 +267,7 @@ services: public_net: ipv4_address: 192.168.70.133 vpp-upf: - image: oai-upf-vpp:latest + image: oai-upf-vpp:v1.4 privileged: true container_name: "vpp-upf" environment: @@ -307,10 +307,10 @@ services: ipv4_address: 192.168.72.134 public_net_core: ipv4_address: 192.168.73.134 - oai-ext-dn: - image: trf-gen-cn5g:latest + oai-traffic-gen: + image: image: trf-gen-cn5g:latest privileged: true - container_name: "oai-ext-dn" + container_name: "oai-traffic-gen" entrypoint: /bin/bash -c \ "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\ "ip route add 12.1.1.0/24 via 192.168.73.202 dev eth0; sleep infinity" diff --git a/docker-compose/docker-compose-gnbsim.yaml b/docker-compose/docker-compose-gnbsim.yaml index 164d5adbdfb21fde4f2a2b3f254169074351d4d9..77432913c58363cf88caa4d3f90b3701237da87b 100644 --- a/docker-compose/docker-compose-gnbsim.yaml +++ b/docker-compose/docker-compose-gnbsim.yaml @@ -170,6 +170,7 @@ services: interval: 10s timeout: 5s retries: 5 +## This version of gnbsim connects with AMF using, AMF FQDN not with AMF ip-addres (which is good for container world) gnbsim-fqdn: container_name: gnbsim-fqdn image: gnbsim:latest diff --git a/docker-compose/docker-compose-mini-nonrf.yaml b/docker-compose/docker-compose-mini-nonrf.yaml index db279925ef10bc2d24bb54fb64f8dc0d00afa873..8031cb1f8e20946d74441c524985401b12efc2ae 100644 --- a/docker-compose/docker-compose-mini-nonrf.yaml +++ b/docker-compose/docker-compose-mini-nonrf.yaml @@ -4,8 +4,8 @@ services: container_name: "mysql" image: mysql:5.7 volumes: - - ./oai_db1.sql:/docker-entrypoint-initdb.d/oai_db.sql - - ./mysql-healthcheck1.sh:/tmp/mysql-healthcheck.sh + - ./database/oai_db1.sql:/docker-entrypoint-initdb.d/oai_db.sql + - ./healthscripts/mysql-healthcheck1.sh:/tmp/mysql-healthcheck.sh environment: - TZ=Europe/Paris - MYSQL_DATABASE=oai_db @@ -22,7 +22,7 @@ services: ipv4_address: 192.168.70.131 oai-amf: container_name: "oai-amf" - image: oai-amf:latest + image: oai-amf:v1.4.0 environment: - TZ=Europe/paris - INSTANCE=0 @@ -42,10 +42,12 @@ services: - PLMN_SUPPORT_MCC=208 - PLMN_SUPPORT_MNC=95 - PLMN_SUPPORT_TAC=0xa000 - - SST_0=222 - - SD_0=123 + - SST_0=1 + - SD_0=0xFFFFFF - SST_1=1 - - SD_1=12 + - SD_1=1 + - SST_2=222 + - SD_2=123 - AMF_INTERFACE_NAME_FOR_NGAP=eth0 - AMF_INTERFACE_NAME_FOR_N11=eth0 - SMF_INSTANCE_ID_0=1 @@ -70,6 +72,9 @@ services: - SMF_SELECTION=no - USE_FQDN_DNS=yes - EXTERNAL_AUSF=no + - EXTERNAL_UDM=no + - EXTERNAL_NSSF=no + - USE_HTTP2=no - NRF_API_VERSION=v1 - NRF_FQDN=oai-nrf - AUSF_IPV4_ADDRESS=0.0.0.0 @@ -83,7 +88,7 @@ services: depends_on: - mysql volumes: - - ./amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh + - ./healthscripts/amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-amf/bin/amf-healthcheck.sh" interval: 10s @@ -94,7 +99,7 @@ services: ipv4_address: 192.168.70.132 oai-smf: container_name: "oai-smf" - image: oai-smf:latest + image: oai-smf:v1.4.0 environment: - TZ=Europe/Paris - INSTANCE=0 @@ -113,23 +118,50 @@ services: - UDM_IPV4_ADDRESS=0.0.0.0 - UDM_PORT=80 - UDM_API_VERSION=v2 - - UDM_FQDN=oai-udm + - UDM_FQDN=localhost - UPF_IPV4_ADDRESS=192.168.70.134 - UPF_FQDN_0=oai-spgwu - - NRF_IPV4_ADDRESS=0.0.0.0 + - NRF_IPV4_ADDRESS=192.168.70.130 - NRF_PORT=80 - NRF_API_VERSION=v1 - - NRF_FQDN=oai-nrf + - USE_LOCAL_SUBSCRIPTION_INFO=no #Set to yes if SMF uses local subscription information instead of from an UDM + - USE_NETWORK_INSTANCE=no #Set yes if network instance is to be used for given UPF + - NRF_FQDN=localhost - REGISTER_NRF=no - DISCOVER_UPF=no - USE_FQDN_DNS=yes - - DNN_RANGE1=12.1.1.2 - 12.1.1.128 - - DNN_RANGE0=12.2.1.2 - 12.2.1.128 - - DNN_NI1=default + - HTTP_VERSION=1 # Default: 1 + - UE_MTU=1500 + - DNN_NI0=oai + - TYPE0=IPv4 + - DNN_RANGE0=12.1.1.2 - 12.1.1.100 + - NSSAI_SST0=1 + - NSSAI_SD0=0xFFFFFF + - SESSION_AMBR_UL0=200Mbps + - SESSION_AMBR_DL0=400Mbps + - DNN_NI1=oai.ipv4 + - TYPE1=IPv4 + - DNN_RANGE1=12.1.1.101 - 12.1.1.200 + - NSSAI_SST1=1 + - NSSAI_SD1=1 + - SESSION_AMBR_UL1=100Mbps + - SESSION_AMBR_DL1=200Mbps + - DNN_NI2=default + - TYPE2=IPv4 + - DNN_RANGE2=12.1.1.201 - 12.1.1.253 + - NSSAI_SST2=222 + - NSSAI_SD2=123 + - SESSION_AMBR_UL2=50Mbps + - SESSION_AMBR_DL2=100Mbps + - DNN_NI3=ims + - TYPE3=IPv4v6 + - DNN_RANGE3=14.1.1.2 - 14.1.1.253 + - DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1 # only needed when ims is being used + - ENABLE_USAGE_REPORTING=no # Set yes if UE USAGE REPORTING is to be done at UPF depends_on: - oai-amf volumes: - - ./smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh + - ./healthscripts/smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh" interval: 10s @@ -140,7 +172,7 @@ services: ipv4_address: 192.168.70.133 oai-spgwu: container_name: "oai-spgwu" - image: oai-spgwu-tiny:latest + image: oai-spgwu-tiny:v1.3.0 environment: - TZ=Europe/Paris - PID_DIRECTORY=/var/run @@ -158,16 +190,22 @@ services: - GW_ID=1 - REALM=openairinterface.org - ENABLE_5G_FEATURES=yes - - REGISTER_NRF=no + - REGISTER_NRF=yes - USE_FQDN_NRF=yes - UPF_FQDN_5G=oai-spgwu - - NRF_IPV4_ADDRESS=0.0.0.0 + - NRF_IPV4_ADDRESS=192.168.70.130 - NRF_PORT=80 - NRF_API_VERSION=v1 - NRF_FQDN=oai-nrf - - NSSAI_SST_0=222 - - NSSAI_SD_0=123 - - DNN_0=default + - NSSAI_SST_0=1 + - NSSAI_SD_0=0xFFFFFF + - DNN_0=oai + - NSSAI_SST_1=1 + - NSSAI_SD_1=1 + - DNN_1=oai.ipv4 + - NSSAI_SST_2=222 + - NSSAI_SD_2=123 + - DNN_2=default depends_on: - oai-smf cap_add: @@ -177,7 +215,7 @@ services: - ALL privileged: true volumes: - - ./spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh + - ./healthscripts/spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-spgwu-tiny/bin/spgwu-healthcheck.sh" interval: 10s @@ -186,10 +224,10 @@ services: networks: public_net: ipv4_address: 192.168.70.134 - oai-ext-dn: + oai-traffic-gen: image: trf-gen-cn5g:latest privileged: true - container_name: oai-ext-dn + container_name: oai-traffic-gen entrypoint: /bin/bash -c \ "ip route add 12.1.1.0/24 via 192.168.70.134 dev eth0; sleep infinity" depends_on: diff --git a/docker-compose/docker-compose-mini-nrf.yaml b/docker-compose/docker-compose-mini-nrf.yaml index ed8f94e224019b09bda07ecaf4cb25f2f939c7e7..6cdfc6f4aa4d2bce3da0a8b71e85b88bb2f1f692 100644 --- a/docker-compose/docker-compose-mini-nrf.yaml +++ b/docker-compose/docker-compose-mini-nrf.yaml @@ -4,8 +4,8 @@ services: container_name: "mysql" image: mysql:5.7 volumes: - - ./oai_db1.sql:/docker-entrypoint-initdb.d/oai_db.sql - - ./mysql-healthcheck1.sh:/tmp/mysql-healthcheck.sh + - ./database/oai_db1.sql:/docker-entrypoint-initdb.d/oai_db.sql + - ./healthscripts/mysql-healthcheck1.sh:/tmp/mysql-healthcheck.sh environment: - TZ=Europe/Paris - MYSQL_DATABASE=oai_db @@ -22,7 +22,7 @@ services: ipv4_address: 192.168.70.131 oai-nrf: container_name: "oai-nrf" - image: oai-nrf:latest + image: oai-nrf:v1.4.0 environment: - NRF_INTERFACE_NAME_FOR_SBI=eth0 - NRF_INTERFACE_PORT_FOR_SBI=80 @@ -34,7 +34,7 @@ services: public_net: ipv4_address: 192.168.70.130 volumes: - - ./nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh + - ./healthscripts/nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-nrf/bin/nrf-healthcheck.sh" interval: 10s @@ -42,7 +42,7 @@ services: retries: 5 oai-amf: container_name: "oai-amf" - image: oai-amf:latest + image: oai-amf:v1.4.0 environment: - TZ=Europe/paris - INSTANCE=0 @@ -62,10 +62,12 @@ services: - PLMN_SUPPORT_MCC=208 - PLMN_SUPPORT_MNC=95 - PLMN_SUPPORT_TAC=0xa000 - - SST_0=222 - - SD_0=123 + - SST_0=1 + - SD_0=0xFFFFFF - SST_1=1 - - SD_1=12 + - SD_1=1 + - SST_2=222 + - SD_2=123 - AMF_INTERFACE_NAME_FOR_NGAP=eth0 - AMF_INTERFACE_NAME_FOR_N11=eth0 - SMF_INSTANCE_ID_0=1 @@ -85,11 +87,14 @@ services: - OPERATOR_KEY=63bfa50ee6523365ff14c1f45f88737d - NRF_IPV4_ADDRESS=192.168.70.130 - NRF_PORT=80 - - EXTERNAL_NRF=yes + - EXTERNAL_NRF=no - NF_REGISTRATION=yes - SMF_SELECTION=yes - USE_FQDN_DNS=yes - EXTERNAL_AUSF=no + - EXTERNAL_UDM=no + - EXTERNAL_NSSF=no + - USE_HTTP2=no - NRF_API_VERSION=v1 - NRF_FQDN=oai-nrf - AUSF_IPV4_ADDRESS=0.0.0.0 @@ -104,7 +109,7 @@ services: - mysql - oai-nrf volumes: - - ./amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh + - ./healthscripts/amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-amf/bin/amf-healthcheck.sh" interval: 10s @@ -115,7 +120,7 @@ services: ipv4_address: 192.168.70.132 oai-smf: container_name: "oai-smf" - image: oai-smf:latest + image: oai-smf:v1.4.0 environment: - TZ=Europe/Paris - INSTANCE=0 @@ -127,32 +132,58 @@ services: - SMF_API_VERSION=v1 - DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100 - DEFAULT_DNS_SEC_IPV4_ADDRESS=8.8.8.8 - - AMF_IPV4_ADDRESS=192.168.70.132 + - AMF_IPV4_ADDRESS=0.0.0.0 - AMF_PORT=80 - AMF_API_VERSION=v1 - - AMF_FQDN=oai-amf - - UDM_IPV4_ADDRESS=192.168.70.137 + - AMF_FQDN=localhost + - UDM_IPV4_ADDRESS=0.0.0.0 - UDM_PORT=80 - UDM_API_VERSION=v2 - - UDM_FQDN=oai-udm + - UDM_FQDN=localhost - UPF_IPV4_ADDRESS=192.168.70.134 - UPF_FQDN_0=oai-spgwu - NRF_IPV4_ADDRESS=192.168.70.130 - NRF_PORT=80 - NRF_API_VERSION=v1 + - USE_LOCAL_SUBSCRIPTION_INFO=no #Set to yes if SMF uses local subscription information instead of from an UDM + - USE_NETWORK_INSTANCE=no #Set yes if network instance is to be used for given UPF - NRF_FQDN=oai-nrf - REGISTER_NRF=yes - DISCOVER_UPF=yes - USE_FQDN_DNS=yes - - DNN_RANGE1=12.1.1.2 - 12.1.1.128 - - DNN_RANGE0=12.2.1.2 - 12.2.1.128 - - DNN_NI1=default + - HTTP_VERSION=1 # Default: 1 - UE_MTU=1500 + - DNN_NI0=oai + - TYPE0=IPv4 + - DNN_RANGE0=12.1.1.2 - 12.1.1.100 + - NSSAI_SST0=1 + - NSSAI_SD0=0xFFFFFF + - SESSION_AMBR_UL0=200Mbps + - SESSION_AMBR_DL0=400Mbps + - DNN_NI1=oai.ipv4 + - TYPE1=IPv4 + - DNN_RANGE1=12.1.1.101 - 12.1.1.200 + - NSSAI_SST1=1 + - NSSAI_SD1=1 + - SESSION_AMBR_UL1=100Mbps + - SESSION_AMBR_DL1=200Mbps + - DNN_NI2=default + - TYPE2=IPv4 + - DNN_RANGE2=12.1.1.201 - 12.1.1.253 + - NSSAI_SST2=222 + - NSSAI_SD2=123 + - SESSION_AMBR_UL2=50Mbps + - SESSION_AMBR_DL2=100Mbps + - DNN_NI3=ims + - TYPE3=IPv4v6 + - DNN_RANGE3=14.1.1.2 - 14.1.1.253 + - DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1 # only needed when ims is being used + - ENABLE_USAGE_REPORTING=no # Set yes if UE USAGE REPORTING is to be done at UPF depends_on: - oai-nrf - oai-amf volumes: - - ./smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh + - ./healthscripts/smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh" interval: 10s @@ -163,7 +194,7 @@ services: ipv4_address: 192.168.70.133 oai-spgwu: container_name: "oai-spgwu" - image: oai-spgwu-tiny:latest + image: oai-spgwu-tiny:v1.3.0 environment: - TZ=Europe/Paris - PID_DIRECTORY=/var/run @@ -188,9 +219,15 @@ services: - NRF_PORT=80 - NRF_API_VERSION=v1 - NRF_FQDN=oai-nrf - - NSSAI_SST_0=222 - - NSSAI_SD_0=123 - - DNN_0=default + - NSSAI_SST_0=1 + - NSSAI_SD_0=0xFFFFFF + - DNN_0=oai + - NSSAI_SST_1=1 + - NSSAI_SD_1=1 + - DNN_1=oai.ipv4 + - NSSAI_SST_2=222 + - NSSAI_SD_2=123 + - DNN_2=default depends_on: - oai-nrf - oai-smf @@ -201,7 +238,7 @@ services: - ALL privileged: true volumes: - - ./spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh + - ./healthscripts/spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-spgwu-tiny/bin/spgwu-healthcheck.sh" interval: 10s @@ -210,10 +247,10 @@ services: networks: public_net: ipv4_address: 192.168.70.134 - oai-ext-dn: + oai-traffic-gen: image: trf-gen-cn5g:latest privileged: true - container_name: oai-ext-dn + container_name: oai-traffic-gen entrypoint: /bin/bash -c \ "ip route add 12.1.1.0/24 via 192.168.70.134 dev eth0; sleep infinity" depends_on: diff --git a/docker-compose/docker-compose-no-privilege.yaml b/docker-compose/docker-compose-no-privilege.yaml index 2ec24ec14f4a41936022f503a6b9456e7e1debea..3e7596d0e39c4454f69dcf47341aadaa75b6712f 100644 --- a/docker-compose/docker-compose-no-privilege.yaml +++ b/docker-compose/docker-compose-no-privilege.yaml @@ -1,31 +1,12 @@ +# In this docker-compose spgwu is not privileged access, it is good example for security purpose version: '3.8' services: - oai-nrf: - container_name: "oai-nrf" - image: oai-nrf:latest - environment: - - NRF_INTERFACE_NAME_FOR_SBI=eth0 - - NRF_INTERFACE_PORT_FOR_SBI=80 - - NRF_INTERFACE_HTTP2_PORT_FOR_SBI=9090 - - NRF_API_VERSION=v1 - - INSTANCE=0 - - PID_DIRECTORY=/var/run - networks: - public_net: - ipv4_address: 192.168.70.130 - volumes: - - ./nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh - healthcheck: - test: /bin/bash -c "/openair-nrf/bin/nrf-healthcheck.sh" - interval: 10s - timeout: 5s - retries: 5 mysql: container_name: "mysql" image: mysql:5.7 volumes: - - ./oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql - - ./mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh + - ./database/oai_db1.sql:/docker-entrypoint-initdb.d/oai_db.sql + - ./healthscripts/mysql-healthcheck1.sh:/tmp/mysql-healthcheck.sh environment: - TZ=Europe/Paris - MYSQL_DATABASE=oai_db @@ -40,19 +21,39 @@ services: networks: public_net: ipv4_address: 192.168.70.131 + oai-nrf: + container_name: "oai-nrf" + image: oai-nrf:v1.4.0 + environment: + - NRF_INTERFACE_NAME_FOR_SBI=eth0 + - NRF_INTERFACE_PORT_FOR_SBI=80 + - NRF_INTERFACE_HTTP2_PORT_FOR_SBI=9090 + - NRF_API_VERSION=v1 + - INSTANCE=0 + - PID_DIRECTORY=/var/run + networks: + public_net: + ipv4_address: 192.168.70.130 + volumes: + - ./healthscripts/nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh + healthcheck: + test: /bin/bash -c "/openair-nrf/bin/nrf-healthcheck.sh" + interval: 10s + timeout: 5s + retries: 5 oai-amf: container_name: "oai-amf" - image: oai-amf:latest + image: oai-amf:v1.4.0 environment: - TZ=Europe/paris - INSTANCE=0 - PID_DIRECTORY=/var/run - MCC=208 - - MNC=99 + - MNC=95 - REGION_ID=128 - AMF_SET_ID=1 - SERVED_GUAMI_MCC_0=208 - - SERVED_GUAMI_MNC_0=99 + - SERVED_GUAMI_MNC_0=95 - SERVED_GUAMI_REGION_ID_0=128 - SERVED_GUAMI_AMF_SET_ID_0=1 - SERVED_GUAMI_MCC_1=460 @@ -60,17 +61,19 @@ services: - SERVED_GUAMI_REGION_ID_1=10 - SERVED_GUAMI_AMF_SET_ID_1=1 - PLMN_SUPPORT_MCC=208 - - PLMN_SUPPORT_MNC=99 + - PLMN_SUPPORT_MNC=95 - PLMN_SUPPORT_TAC=0xa000 - - SST_0=222 - - SD_0=123 + - SST_0=1 + - SD_0=0xFFFFFF - SST_1=1 - SD_1=1 + - SST_2=222 + - SD_2=123 - AMF_INTERFACE_NAME_FOR_NGAP=eth0 - AMF_INTERFACE_NAME_FOR_N11=eth0 - SMF_INSTANCE_ID_0=1 - SMF_FQDN_0=oai-smf - - SMF_IPV4_ADDR_0=0.0.0.0 + - SMF_IPV4_ADDR_0=192.168.70.133 - SMF_HTTP_VERSION_0=v1 - SELECTED_0=true - SMF_INSTANCE_ID_1=2 @@ -85,22 +88,29 @@ services: - OPERATOR_KEY=63bfa50ee6523365ff14c1f45f88737d - NRF_IPV4_ADDRESS=192.168.70.130 - NRF_PORT=80 - - EXTERNAL_NRF=yes + - EXTERNAL_NRF=no - NF_REGISTRATION=yes - SMF_SELECTION=yes - USE_FQDN_DNS=yes + - EXTERNAL_AUSF=no + - EXTERNAL_UDM=no + - EXTERNAL_NSSF=no + - USE_HTTP2=no - NRF_API_VERSION=v1 - NRF_FQDN=oai-nrf - - AUSF_IPV4_ADDRESS=127.0.0.1 + - AUSF_IPV4_ADDRESS=0.0.0.0 - AUSF_PORT=80 - AUSF_API_VERSION=v1 - - UDM_IPV4_ADDRESS=127.0.0.1 + - AUSF_FQDN=localhost + - UDM_IPV4_ADDRESS=0.0.0.0 - UDM_PORT=80 - UDM_API_VERSION=v2 + - UDM_FQDN=localhost depends_on: - mysql + - oai-nrf volumes: - - ./amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh + - ./healthscripts/amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-amf/bin/amf-healthcheck.sh" interval: 10s @@ -111,7 +121,7 @@ services: ipv4_address: 192.168.70.132 oai-smf: container_name: "oai-smf" - image: oai-smf:latest + image: oai-smf:v1.4.0 environment: - TZ=Europe/Paris - INSTANCE=0 @@ -126,8 +136,8 @@ services: - AMF_IPV4_ADDRESS=0.0.0.0 - AMF_PORT=80 - AMF_API_VERSION=v1 - - AMF_FQDN=oai-amf - - UDM_IPV4_ADDRESS=127.0.0.1 + - AMF_FQDN=localhost + - UDM_IPV4_ADDRESS=0.0.0.0 - UDM_PORT=80 - UDM_API_VERSION=v2 - UDM_FQDN=localhost @@ -136,14 +146,45 @@ services: - NRF_IPV4_ADDRESS=192.168.70.130 - NRF_PORT=80 - NRF_API_VERSION=v1 + - USE_LOCAL_SUBSCRIPTION_INFO=no #Set to yes if SMF uses local subscription information instead of from an UDM + - USE_NETWORK_INSTANCE=no #Set yes if network instance is to be used for given UPF - NRF_FQDN=oai-nrf - REGISTER_NRF=yes - DISCOVER_UPF=yes - USE_FQDN_DNS=yes + - HTTP_VERSION=1 # Default: 1 + - UE_MTU=1500 + - DNN_NI0=oai + - TYPE0=IPv4 + - DNN_RANGE0=12.1.1.2 - 12.1.1.100 + - NSSAI_SST0=1 + - NSSAI_SD0=0xFFFFFF + - SESSION_AMBR_UL0=200Mbps + - SESSION_AMBR_DL0=400Mbps + - DNN_NI1=oai.ipv4 + - TYPE1=IPv4 + - DNN_RANGE1=12.1.1.101 - 12.1.1.200 + - NSSAI_SST1=1 + - NSSAI_SD1=1 + - SESSION_AMBR_UL1=100Mbps + - SESSION_AMBR_DL1=200Mbps + - DNN_NI2=default + - TYPE2=IPv4 + - DNN_RANGE2=12.1.1.201 - 12.1.1.253 + - NSSAI_SST2=222 + - NSSAI_SD2=123 + - SESSION_AMBR_UL2=50Mbps + - SESSION_AMBR_DL2=100Mbps + - DNN_NI3=ims + - TYPE3=IPv4v6 + - DNN_RANGE3=14.1.1.2 - 14.1.1.253 + - DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1 # only needed when ims is being used + - ENABLE_USAGE_REPORTING=no # Set yes if UE USAGE REPORTING is to be done at UPF depends_on: - oai-nrf + - oai-amf volumes: - - ./smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh + - ./healthscripts/smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh" interval: 10s @@ -154,7 +195,7 @@ services: ipv4_address: 192.168.70.133 oai-spgwu: container_name: "oai-spgwu" - image: oai-spgwu-tiny:latest + image: oai-spgwu-tiny:v1.3.0 environment: - TZ=Europe/Paris - PID_DIRECTORY=/var/run @@ -179,9 +220,15 @@ services: - NRF_PORT=80 - NRF_API_VERSION=v1 - NRF_FQDN=oai-nrf - - NSSAI_SST_0=222 - - NSSAI_SD_0=123 - - DNN_0=default + - NSSAI_SST_0=1 + - NSSAI_SD_0=0xFFFFFF + - DNN_0=oai + - NSSAI_SST_1=1 + - NSSAI_SD_1=1 + - DNN_1=oai.ipv4 + - NSSAI_SST_2=222 + - NSSAI_SD_2=123 + - DNN_2=default depends_on: - oai-nrf cap_add: @@ -200,7 +247,7 @@ services: - net.ipv4.conf.all.accept_redirects=0 - net.ipv4.conf.default.accept_redirects=0 volumes: - - ./spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh + - ./healthscripts/spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-spgwu-tiny/bin/spgwu-healthcheck.sh" interval: 10s @@ -209,17 +256,6 @@ services: networks: public_net: ipv4_address: 192.168.70.134 - oai-ext-dn: - image: trf-gen-cn5g:latest - privileged: true - container_name: oai-ext-dn - entrypoint: /bin/bash -c \ - "ip route add 12.1.1.0/24 via 192.168.70.134 dev eth0; sleep infinity" - depends_on: - - oai-spgwu - networks: - public_net: - ipv4_address: 192.168.70.135 networks: # public_net: # external: diff --git a/docker-compose/docker-compose-slicing-basic-nrf.yaml b/docker-compose/docker-compose-slicing-basic-nrf.yaml index 5fcce86e19be1bc700ae473a7267c41d428fa18b..c8fe6ee9cd8d20cf0f1abecc3da76cfc9c6dceec 100644 --- a/docker-compose/docker-compose-slicing-basic-nrf.yaml +++ b/docker-compose/docker-compose-slicing-basic-nrf.yaml @@ -4,8 +4,8 @@ services: container_name: mysql image: mysql:5.7 volumes: - - ./oai_db2.sql:/docker-entrypoint-initdb.d/oai_db.sql - - ./mysql-healthcheck2.sh:/tmp/mysql-healthcheck.sh + - ./database/oai_db2.sql:/docker-entrypoint-initdb.d/oai_db.sql + - ./healthscripts/mysql-healthcheck2.sh:/tmp/mysql-healthcheck.sh environment: - TZ=Europe/Paris - MYSQL_DATABASE=oai_db @@ -22,7 +22,7 @@ services: ipv4_address: 192.168.70.131 oai-nssf: container_name: "oai-nssf" - image: oai-nssf:latest + image: oai-nssf:v1.4.0 environment: - INSTANCE=0 - TZ=Europe/Paris @@ -42,7 +42,7 @@ services: - ALL privileged: true volumes: - - ./nssf_slice_config.yaml:/openair-nssf/etc/nssf_slice_config.yaml + - ./healthscripts/nssf_slice_config.yaml:/openair-nssf/etc/nssf_slice_config.yaml healthcheck: test: /bin/bash -c "pgrep oai_nssf" interval: 10s @@ -53,7 +53,7 @@ services: ipv4_address: 192.168.70.132 oai_udr: container_name: oai-udr - image: oai-udr:latest + image: oai-udr:v1.4.0 environment: - TZ=Europe/Paris - INSTANCE=0 @@ -73,7 +73,7 @@ services: public_net: ipv4_address: 192.168.70.133 volumes: - - ./udr-healthcheck.sh:/openair-udr/bin/udr-healthcheck.sh + - ./healthscripts/udr-healthcheck.sh:/openair-udr/bin/udr-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-udr/bin/udr-healthcheck.sh" interval: 10s @@ -81,7 +81,7 @@ services: retries: 5 oai_udm: container_name: oai-udm - image: oai-udm:latest + image: oai-udm:v1.4.0 environment: - TZ=Europe/Paris - INSTANCE=0 @@ -101,7 +101,7 @@ services: public_net: ipv4_address: 192.168.70.134 volumes: - - ./udm-healthcheck.sh:/openair-udm/bin/udm-healthcheck.sh + - ./healthscripts/udm-healthcheck.sh:/openair-udm/bin/udm-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-udm/bin/udm-healthcheck.sh" interval: 10s @@ -109,7 +109,7 @@ services: retries: 5 oai_ausf: container_name: oai-ausf - image: oai-ausf:latest + image: oai-ausf:v1.4.0 environment: - TZ=Europe/Paris - INSTANCE_ID=0 @@ -128,7 +128,7 @@ services: public_net: ipv4_address: 192.168.70.135 volumes: - - ./ausf-healthcheck.sh:/openair-ausf/bin/ausf-healthcheck.sh + - ./healthscripts/ausf-healthcheck.sh:/openair-ausf/bin/ausf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-ausf/bin/ausf-healthcheck.sh" interval: 10s @@ -136,7 +136,7 @@ services: retries: 5 oai_nrf_slice12: container_name: oai-nrf-slice12 - image: oai-nrf:latest + image: oai-nrf:v1.4.0 environment: - NRF_INTERFACE_NAME_FOR_SBI=eth0 - NRF_INTERFACE_PORT_FOR_SBI=80 @@ -148,7 +148,7 @@ services: public_net: ipv4_address: 192.168.70.136 volumes: - - ./nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh + - ./healthscripts/nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-nrf/bin/nrf-healthcheck.sh" interval: 10s @@ -156,7 +156,7 @@ services: retries: 5 oai_nrf_slice3: container_name: oai-nrf-slice3 - image: oai-nrf:latest + image: oai-nrf:v1.4.0 environment: - NRF_INTERFACE_NAME_FOR_SBI=eth0 - NRF_INTERFACE_PORT_FOR_SBI=80 @@ -168,7 +168,7 @@ services: public_net: ipv4_address: 192.168.70.137 volumes: - - ./nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh + - ./healthscripts/nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-nrf/bin/nrf-healthcheck.sh" interval: 10s @@ -176,7 +176,7 @@ services: retries: 5 oai_amf: container_name: oai-amf - image: oai-amf:latest + image: oai-amf:v1.4.0 environment: - TZ=Europe/paris - INSTANCE=0 @@ -249,7 +249,7 @@ services: - vpp_upf_slice3 - oai_ausf volumes: - - ./amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh + - ./healthscripts/amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-amf/bin/amf-healthcheck.sh" interval: 10s @@ -260,7 +260,7 @@ services: ipv4_address: 192.168.70.138 oai_smf_slice1: container_name: oai-smf-slice1 - image: oai-smf:latest + image: oai-smf:v1.4.0 environment: - TZ=Europe/Paris - INSTANCE=0 @@ -295,7 +295,7 @@ services: - oai_amf - oai_nrf_slice12 volumes: - - ./smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh + - ./healthscripts/smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh" interval: 10s @@ -306,7 +306,7 @@ services: ipv4_address: 192.168.70.139 oai_smf_slice2: container_name: oai-smf-slice2 - image: oai-smf:latest + image: oai-smf:v1.4.0 environment: - TZ=Europe/Paris - INSTANCE=0 @@ -341,7 +341,7 @@ services: - oai_amf - oai_nrf_slice12 volumes: - - ./smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh + - ./healthscripts/smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh" interval: 10s @@ -352,7 +352,7 @@ services: ipv4_address: 192.168.70.140 oai_smf_slice3: container_name: oai-smf-slice3 - image: oai-smf:latest + image: oai-smf:v1.4.0 environment: - TZ=Europe/Paris - INSTANCE=0 @@ -390,7 +390,7 @@ services: extra_hosts: - "gw1.vppupf.node.5gcn.mnc95.mcc208.3gppnetwork.org:192.168.70.202" volumes: - - ./smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh + - ./healthscripts/smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh" interval: 10s @@ -401,7 +401,7 @@ services: ipv4_address: 192.168.70.141 oai_spgwu_slice1: container_name: oai-spgwu-slice1 - image: oai-spgwu-tiny:latest + image: oai-spgwu-tiny:v1.3.0 environment: - TZ=Europe/Paris - PID_DIRECTORY=/var/run @@ -438,7 +438,7 @@ services: - ALL privileged: true volumes: - - ./spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh + - ./healthscripts/spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-spgwu-tiny/bin/spgwu-healthcheck.sh" interval: 10s @@ -449,7 +449,7 @@ services: ipv4_address: 192.168.70.142 oai_spgwu_slice2: container_name: oai-spgwu-slice2 - image: oai-spgwu-tiny:latest + image: oai-spgwu-tiny:v1.3.0 environment: - TZ=Europe/Paris - PID_DIRECTORY=/var/run @@ -485,7 +485,7 @@ services: - ALL privileged: true volumes: - - ./spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh + - ./healthscripts/spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh healthcheck: test: /bin/bash -c "/openair-spgwu-tiny/bin/spgwu-healthcheck.sh" interval: 10s @@ -495,7 +495,7 @@ services: public_net: ipv4_address: 192.168.70.143 vpp_upf_slice3: - image: oai-upf-vpp:latest + image: oai-upf-vpp:v1.4.0 privileged: true container_name: vpp-upf-slice3 environment: @@ -535,10 +535,10 @@ services: ipv4_address: 192.168.72.144 public_net_core: ipv4_address: 192.168.73.144 - oai_ext_dn: - image: trf-gen-cn5g:latest + oai-traffic-gen: + image: trf-gen-cn5g:v1.4 privileged: true - container_name: oai-ext-dn + container_name: oai-traffic-gen entrypoint: /bin/bash -c \ "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\ "ip route add 12.2.1.2/32 via 192.168.70.142 dev eth0;"\ diff --git a/docker-compose/amf-healthcheck.sh b/docker-compose/healthscripts/amf-healthcheck.sh similarity index 100% rename from docker-compose/amf-healthcheck.sh rename to docker-compose/healthscripts/amf-healthcheck.sh diff --git a/docker-compose/ausf-healthcheck.sh b/docker-compose/healthscripts/ausf-healthcheck.sh similarity index 100% rename from docker-compose/ausf-healthcheck.sh rename to docker-compose/healthscripts/ausf-healthcheck.sh diff --git a/docker-compose/mysql-healthcheck1.sh b/docker-compose/healthscripts/mysql-healthcheck1.sh similarity index 100% rename from docker-compose/mysql-healthcheck1.sh rename to docker-compose/healthscripts/mysql-healthcheck1.sh diff --git a/docker-compose/mysql-healthcheck2.sh b/docker-compose/healthscripts/mysql-healthcheck2.sh similarity index 100% rename from docker-compose/mysql-healthcheck2.sh rename to docker-compose/healthscripts/mysql-healthcheck2.sh diff --git a/docker-compose/nrf-healthcheck.sh b/docker-compose/healthscripts/nrf-healthcheck.sh similarity index 100% rename from docker-compose/nrf-healthcheck.sh rename to docker-compose/healthscripts/nrf-healthcheck.sh diff --git a/docker-compose/smf-healthcheck.sh b/docker-compose/healthscripts/smf-healthcheck.sh similarity index 100% rename from docker-compose/smf-healthcheck.sh rename to docker-compose/healthscripts/smf-healthcheck.sh diff --git a/docker-compose/spgwu-healthcheck.sh b/docker-compose/healthscripts/spgwu-healthcheck.sh similarity index 100% rename from docker-compose/spgwu-healthcheck.sh rename to docker-compose/healthscripts/spgwu-healthcheck.sh diff --git a/docker-compose/udm-healthcheck.sh b/docker-compose/healthscripts/udm-healthcheck.sh similarity index 100% rename from docker-compose/udm-healthcheck.sh rename to docker-compose/healthscripts/udm-healthcheck.sh diff --git a/docker-compose/udr-healthcheck.sh b/docker-compose/healthscripts/udr-healthcheck.sh similarity index 100% rename from docker-compose/udr-healthcheck.sh rename to docker-compose/healthscripts/udr-healthcheck.sh diff --git a/docker-compose/oai_db2.sql b/docker-compose/oai_db2.sql deleted file mode 100755 index 4a85b01ceb2b2b7918dc6246571a7fcf331b9090..0000000000000000000000000000000000000000 --- a/docker-compose/oai_db2.sql +++ /dev/null @@ -1,417 +0,0 @@ --- phpMyAdmin SQL Dump --- version 5.1.0 --- https://www.phpmyadmin.net/ --- --- Host: 172.16.200.10:3306 --- Generation Time: Mar 22, 2021 at 10:31 AM --- Server version: 5.7.33 --- PHP Version: 7.4.15 - -SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; -START TRANSACTION; -SET time_zone = "+00:00"; - - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8mb4 */; - --- --- Database: `oai_db` --- - --- -------------------------------------------------------- - --- --- Table structure for table `AccessAndMobilitySubscriptionData` --- - -CREATE TABLE `AccessAndMobilitySubscriptionData` ( - `ueid` varchar(15) NOT NULL, - `servingPlmnid` varchar(15) NOT NULL, - `supportedFeatures` varchar(50) DEFAULT NULL, - `gpsis` json DEFAULT NULL, - `internalGroupIds` json DEFAULT NULL, - `sharedVnGroupDataIds` json DEFAULT NULL, - `subscribedUeAmbr` json DEFAULT NULL, - `nssai` json DEFAULT NULL, - `ratRestrictions` json DEFAULT NULL, - `forbiddenAreas` json DEFAULT NULL, - `serviceAreaRestriction` json DEFAULT NULL, - `coreNetworkTypeRestrictions` json DEFAULT NULL, - `rfspIndex` int(10) DEFAULT NULL, - `subsRegTimer` int(10) DEFAULT NULL, - `ueUsageType` int(10) DEFAULT NULL, - `mpsPriority` tinyint(1) DEFAULT NULL, - `mcsPriority` tinyint(1) DEFAULT NULL, - `activeTime` int(10) DEFAULT NULL, - `sorInfo` json DEFAULT NULL, - `sorInfoExpectInd` tinyint(1) DEFAULT NULL, - `sorafRetrieval` tinyint(1) DEFAULT NULL, - `sorUpdateIndicatorList` json DEFAULT NULL, - `upuInfo` json DEFAULT NULL, - `micoAllowed` tinyint(1) DEFAULT NULL, - `sharedAmDataIds` json DEFAULT NULL, - `odbPacketServices` json DEFAULT NULL, - `serviceGapTime` int(10) DEFAULT NULL, - `mdtUserConsent` json DEFAULT NULL, - `mdtConfiguration` json DEFAULT NULL, - `traceData` json DEFAULT NULL, - `cagData` json DEFAULT NULL, - `stnSr` varchar(50) DEFAULT NULL, - `cMsisdn` varchar(50) DEFAULT NULL, - `nbIoTUePriority` int(10) DEFAULT NULL, - `nssaiInclusionAllowed` tinyint(1) DEFAULT NULL, - `rgWirelineCharacteristics` varchar(50) DEFAULT NULL, - `ecRestrictionDataWb` json DEFAULT NULL, - `ecRestrictionDataNb` tinyint(1) DEFAULT NULL, - `expectedUeBehaviourList` json DEFAULT NULL, - `primaryRatRestrictions` json DEFAULT NULL, - `secondaryRatRestrictions` json DEFAULT NULL, - `edrxParametersList` json DEFAULT NULL, - `ptwParametersList` json DEFAULT NULL, - `iabOperationAllowed` tinyint(1) DEFAULT NULL, - `wirelineForbiddenAreas` json DEFAULT NULL, - `wirelineServiceAreaRestriction` json DEFAULT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- -------------------------------------------------------- - --- --- Table structure for table `Amf3GppAccessRegistration` --- - -CREATE TABLE `Amf3GppAccessRegistration` ( - `ueid` varchar(15) NOT NULL, - `amfInstanceId` varchar(50) NOT NULL, - `supportedFeatures` varchar(50) DEFAULT NULL, - `purgeFlag` tinyint(1) DEFAULT NULL, - `pei` varchar(50) DEFAULT NULL, - `imsVoPs` json DEFAULT NULL, - `deregCallbackUri` varchar(50) NOT NULL, - `amfServiceNameDereg` json DEFAULT NULL, - `pcscfRestorationCallbackUri` varchar(50) DEFAULT NULL, - `amfServiceNamePcscfRest` json DEFAULT NULL, - `initialRegistrationInd` tinyint(1) DEFAULT NULL, - `guami` json NOT NULL, - `backupAmfInfo` json DEFAULT NULL, - `drFlag` tinyint(1) DEFAULT NULL, - `ratType` json NOT NULL, - `urrpIndicator` tinyint(1) DEFAULT NULL, - `amfEeSubscriptionId` varchar(50) DEFAULT NULL, - `epsInterworkingInfo` json DEFAULT NULL, - `ueSrvccCapability` tinyint(1) DEFAULT NULL, - `registrationTime` varchar(50) DEFAULT NULL, - `vgmlcAddress` json DEFAULT NULL, - `contextInfo` json DEFAULT NULL, - `noEeSubscriptionInd` tinyint(1) DEFAULT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- -------------------------------------------------------- - --- --- Table structure for table `AuthenticationStatus` --- - -CREATE TABLE `AuthenticationStatus` ( - `ueid` varchar(20) NOT NULL, - `nfInstanceId` varchar(50) NOT NULL, - `success` tinyint(1) NOT NULL, - `timeStamp` varchar(50) NOT NULL, - `authType` varchar(25) NOT NULL, - `servingNetworkName` varchar(50) NOT NULL, - `authRemovalInd` tinyint(1) DEFAULT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- -------------------------------------------------------- - --- --- Table structure for table `AuthenticationSubscription` --- - -CREATE TABLE `AuthenticationSubscription` ( - `ueid` varchar(20) NOT NULL, - `authenticationMethod` varchar(25) NOT NULL, - `encPermanentKey` varchar(50) DEFAULT NULL, - `protectionParameterId` varchar(50) DEFAULT NULL, - `sequenceNumber` json DEFAULT NULL, - `authenticationManagementField` varchar(50) DEFAULT NULL, - `algorithmId` varchar(50) DEFAULT NULL, - `encOpcKey` varchar(50) DEFAULT NULL, - `encTopcKey` varchar(50) DEFAULT NULL, - `vectorGenerationInHss` tinyint(1) DEFAULT NULL, - `n5gcAuthMethod` varchar(15) DEFAULT NULL, - `rgAuthenticationInd` tinyint(1) DEFAULT NULL, - `supi` varchar(20) DEFAULT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- --- Dumping data for table `AuthenticationSubscription` --- - -INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES -('208950000000031', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000031'), -('208950000000032', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000032'), -('208950000000033', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000033'), -('208950000000034', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000034'), -('208950000000035', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000035'), -('208950000000036', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000036'), -('208950000000037', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000037'), -('208950000000038', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000038'), -('208950000000039', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000039'), -('208950000000040', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000040'), -('208950000000041', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000041'), -('208950000000042', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000042'), -('208950000000043', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000043'), -('208950000000044', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000044'), -('208950000000045', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000045'), -('208950000000046', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000046'), -('208950000000047', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000047'), -('208950000000048', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000048'), -('208950000000049', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000049'), -('208950000000050', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000050'), -('208950000000051', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000051'), -('208950000000052', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000052'), -('208950000000053', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000053'), -('208950000000054', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000054'), -('208950000000055', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000055'), -('208950000000056', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000056'), -('208950000000057', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000057'), -('208950000000058', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000058'), -('208950000000059', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000059'), -('208950000000060', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000060'), -('208950000000061', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000061'), -('208950000000062', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000062'), -('208950000000063', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000063'), -('208950000000064', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000064'), -('208950000000065', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000065'), -('208950000000066', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000066'), -('208950000000067', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000067'), -('208950000000068', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000068'), -('208950000000069', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000069'), -('208950000000070', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000070'), -('208950000000071', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000071'), -('208950000000072', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000072'), -('208950000000073', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000073'), -('208950000000074', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000074'), -('208950000000075', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000075'), -('208950000000076', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000076'), -('208950000000077', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000077'), -('208950000000078', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000078'), -('208950000000079', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000079'), -('208950000000080', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000080'), -('208950000000081', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000081'), -('208950000000082', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000082'), -('208950000000083', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000083'), -('208950000000084', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000084'), -('208950000000085', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000085'), -('208950000000086', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000086'), -('208950000000087', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000087'), -('208950000000088', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000088'), -('208950000000089', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000089'), -('208950000000090', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000090'), -('208950000000091', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000091'), -('208950000000092', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000092'), -('208950000000093', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000093'), -('208950000000094', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000094'), -('208950000000095', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000095'), -('208950000000096', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000096'), -('208950000000097', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000097'), -('208950000000098', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000098'), -('208950000000099', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000099'), -('208950000000100', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000100'), -('208950000000101', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000101'), -('208950000000102', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000102'), -('208950000000103', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000103'), -('208950000000104', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000104'), -('208950000000105', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000105'), -('208950000000106', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000106'), -('208950000000107', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000107'), -('208950000000108', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000108'), -('208950000000109', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000109'), -('208950000000110', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000110'), -('208950000000111', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000111'), -('208950000000112', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000112'), -('208950000000113', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000113'), -('208950000000114', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000114'), -('208950000000115', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000115'), -('208950000000116', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000116'), -('208950000000117', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000117'), -('208950000000118', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000118'), -('208950000000119', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000119'), -('208950000000120', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000120'), -('208950000000121', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000121'), -('208950000000122', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000122'), -('208950000000123', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000123'), -('208950000000124', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000124'), -('208950000000125', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000125'), -('208950000000126', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000126'), -('208950000000127', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000127'), -('208950000000128', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000128'), -('208950000000129', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000129'), -('208950000000130', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000130'), -('208950000000131', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000131'); - --- -------------------------------------------------------- - --- --- Table structure for table `SdmSubscriptions` --- - -CREATE TABLE `SdmSubscriptions` ( - `ueid` varchar(15) NOT NULL, - `subsId` int(10) UNSIGNED NOT NULL, - `nfInstanceId` varchar(50) NOT NULL, - `implicitUnsubscribe` tinyint(1) DEFAULT NULL, - `expires` varchar(50) DEFAULT NULL, - `callbackReference` varchar(50) NOT NULL, - `amfServiceName` json DEFAULT NULL, - `monitoredResourceUris` json NOT NULL, - `singleNssai` json DEFAULT NULL, - `dnn` varchar(50) DEFAULT NULL, - `subscriptionId` varchar(50) DEFAULT NULL, - `plmnId` json DEFAULT NULL, - `immediateReport` tinyint(1) DEFAULT NULL, - `report` json DEFAULT NULL, - `supportedFeatures` varchar(50) DEFAULT NULL, - `contextInfo` json DEFAULT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- -------------------------------------------------------- - --- --- Table structure for table `SessionManagementSubscriptionData` --- - -CREATE TABLE `SessionManagementSubscriptionData` ( - `ueid` varchar(15) NOT NULL, - `servingPlmnid` varchar(15) NOT NULL, - `singleNssai` json NOT NULL, - `dnnConfigurations` json DEFAULT NULL, - `internalGroupIds` json DEFAULT NULL, - `sharedVnGroupDataIds` json DEFAULT NULL, - `sharedDnnConfigurationsId` varchar(50) DEFAULT NULL, - `odbPacketServices` json DEFAULT NULL, - `traceData` json DEFAULT NULL, - `sharedTraceDataId` varchar(50) DEFAULT NULL, - `expectedUeBehavioursList` json DEFAULT NULL, - `suggestedPacketNumDlList` json DEFAULT NULL, - `3gppChargingCharacteristics` varchar(50) DEFAULT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- --- Dumping data for table `SessionManagementSubscriptionData` --- - -INSERT INTO `SessionManagementSubscriptionData` (`ueid`, `servingPlmnid`, `singleNssai`, `dnnConfigurations`) VALUES -('208950000000031', '20895', '{\"sst\": 222, \"sd\": \"123\"}','{\"default\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 6,\"arp\":{\"priorityLevel\": 1,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"NOT_PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"100Mbps\", \"downlink\":\"100Mbps\"},\"staticIpAddress\":[{\"ipv4Addr\": \"12.1.1.4\"}]}}'); -INSERT INTO `SessionManagementSubscriptionData` (`ueid`, `servingPlmnid`, `singleNssai`, `dnnConfigurations`) VALUES -('208950000000032', '20895', '{\"sst\": 222, \"sd\": \"123\"}','{\"default\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 6,\"arp\":{\"priorityLevel\": 1,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"NOT_PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"100Mbps\", \"downlink\":\"100Mbps\"}}}'); --- -------------------------------------------------------- - --- --- Table structure for table `SmfRegistrations` --- - -CREATE TABLE `SmfRegistrations` ( - `ueid` varchar(15) NOT NULL, - `subpduSessionId` int(10) NOT NULL, - `smfInstanceId` varchar(50) NOT NULL, - `smfSetId` varchar(50) DEFAULT NULL, - `supportedFeatures` varchar(50) DEFAULT NULL, - `pduSessionId` int(10) NOT NULL, - `singleNssai` json NOT NULL, - `dnn` varchar(50) DEFAULT NULL, - `emergencyServices` tinyint(1) DEFAULT NULL, - `pcscfRestorationCallbackUri` varchar(50) DEFAULT NULL, - `plmnId` json NOT NULL, - `pgwFqdn` varchar(50) DEFAULT NULL, - `epdgInd` tinyint(1) DEFAULT NULL, - `deregCallbackUri` varchar(50) DEFAULT NULL, - `registrationReason` json DEFAULT NULL, - `registrationTime` varchar(50) DEFAULT NULL, - `contextInfo` json DEFAULT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- -------------------------------------------------------- - --- --- Table structure for table `SmfSelectionSubscriptionData` --- - -CREATE TABLE `SmfSelectionSubscriptionData` ( - `ueid` varchar(15) NOT NULL, - `servingPlmnid` varchar(15) NOT NULL, - `supportedFeatures` varchar(50) DEFAULT NULL, - `subscribedSnssaiInfos` json DEFAULT NULL, - `sharedSnssaiInfosId` varchar(50) DEFAULT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- --- Indexes for dumped tables --- - --- --- Indexes for table `AccessAndMobilitySubscriptionData` --- -ALTER TABLE `AccessAndMobilitySubscriptionData` - ADD PRIMARY KEY (`ueid`,`servingPlmnid`) USING BTREE; - --- --- Indexes for table `Amf3GppAccessRegistration` --- -ALTER TABLE `Amf3GppAccessRegistration` - ADD PRIMARY KEY (`ueid`); - --- --- Indexes for table `AuthenticationStatus` --- -ALTER TABLE `AuthenticationStatus` - ADD PRIMARY KEY (`ueid`); - --- --- Indexes for table `AuthenticationSubscription` --- -ALTER TABLE `AuthenticationSubscription` - ADD PRIMARY KEY (`ueid`); - --- --- Indexes for table `SdmSubscriptions` --- -ALTER TABLE `SdmSubscriptions` - ADD PRIMARY KEY (`subsId`,`ueid`) USING BTREE; - --- --- Indexes for table `SessionManagementSubscriptionData` --- -ALTER TABLE `SessionManagementSubscriptionData` - ADD PRIMARY KEY (`ueid`,`servingPlmnid`) USING BTREE; - --- --- Indexes for table `SmfRegistrations` --- -ALTER TABLE `SmfRegistrations` - ADD PRIMARY KEY (`ueid`,`subpduSessionId`) USING BTREE; - --- --- Indexes for table `SmfSelectionSubscriptionData` --- -ALTER TABLE `SmfSelectionSubscriptionData` - ADD PRIMARY KEY (`ueid`,`servingPlmnid`) USING BTREE; - --- --- AUTO_INCREMENT for dumped tables --- - --- --- AUTO_INCREMENT for table `SdmSubscriptions` --- -ALTER TABLE `SdmSubscriptions` - MODIFY `subsId` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; -COMMIT; - -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; - diff --git a/docs/BUILD_IMAGES.md b/docs/BUILD_IMAGES.md index 15a4750544dbefa42f563cf090d8d187d8872791..b116fbb6c151747f2db5ea4021cb7864c69d0aa9 100644 --- a/docs/BUILD_IMAGES.md +++ b/docs/BUILD_IMAGES.md @@ -24,33 +24,34 @@ They are called as `git sub-modules` in the `component` folder. Before doing anything, you SHALL retrieve the code for each git sub-module. -## 1.1. You are interested on a very stable version. ## +## 1.1. You are interested on a stable version. ## We recommend to synchronize with the master branches on all git sub-modules. We also recommend that you synchronize this "tutorial" repository with a provided tag. By doing so, the `docker-compose` files will be aligned with feature sets of each cNF. -**At the time of writing (2022/01/17), the release tag is `v1.3.0`.** +**At the time of writing (30/06/2022), the release tag was `v1.4.0`.** | CNF Name | Branch Name | Tag | Ubuntu 18.04 | RHEL8 (UBI8) | | ----------- | ----------- | -------- | ------------ | ----------------| -| FED REPO | N/A | `v1.3.0` | | | -| AMF | `master` | `v1.3.0` | X | X | -| SMF | `master` | `v1.3.0` | X | X | -| NRF | `master` | `v1.3.0` | X | X | -| SPGW-U-TINY | `master` | `v1.1.5` | X | X | -| UDR | `master` | `v1.3.0` | X | X | -| UDM | `master` | `v1.3.0` | X | X | -| AUSF | `master` | `v1.3.0` | X | X | -| UPF-VPP | `master` | `v1.3.0` | X | X | -| NSSF | `master` | `v1.3.0` | X | X | +| FED REPO | N/A | `v1.4.0` | | | +| AMF | `master` | `v1.4.0` | X | X | +| SMF | `master` | `v1.4.0` | X | X | +| NRF | `master` | `v1.4.0` | X | X | +| SPGW-U-TINY | `master` | `v1.3.0` | X | X | +| UDR | `master` | `v1.4.0` | X | X | +| UDM | `master` | `v1.4.0` | X | X | +| AUSF | `master` | `v1.4.0` | X | X | +| UPF-VPP | `master` | `v1.4.0` | X | X | +| NSSF | `master` | `v1.4.0` | X | X | + ```bash -# Clone directly on the latest release tag -$ git clone --branch v1.3.0 https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-fed.git +# Clone directly on the v1.4.0 release tag +$ git clone --branch v1.4.0 https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-fed.git $ cd oai-cn5g-fed -# If you forgot to clone directly to the latest release tag -$ git checkout -f v1.3.0 +# If you forgot to clone directly to the v1.3.0 release tag +$ git checkout -f v1.4.0 # Synchronize all git submodules $ ./scripts/syncComponents.sh @@ -73,21 +74,21 @@ git submodule update or a little bit more dangerous ```bash -$ ./scripts/syncComponents.sh --nrf-branch v1.3.0 --amf-branch v1.3.0 \ - --smf-branch v1.3.0 --spgwu-tiny-branch v1.1.5 \ - --udr-branch v1.3.0 --udm-branch v1.3.0 \ - --ausf-branch v1.3.0 --upf-vpp-branch v1.3.0 \ - --nssf-branch v1.3.0 +$ ./scripts/syncComponents.sh --nrf-branch v1.4.0 --amf-branch v1.4.0 \ + --smf-branch v1.4.0 --spgwu-tiny-branch v1.1.6 \ + --udr-branch v1.4.0 --udm-branch v1.4.0 \ + --ausf-branch v1.4.0 --upf-vpp-branch v1.4.0 \ + --nssf-branch v1.4.0 --------------------------------------------------------- -OAI-NRF component branch : v1.3.0 -OAI-AMF component branch : v1.3.0 -OAI-SMF component branch : v1.3.0 -OAI-SPGW-U component branch : v1.1.5 -OAI-UDR component branch : v1.3.0 -OAI-UDM component branch : v1.3.0 -OAI-AUSF component branch : v1.3.0 -OAI-UPF-VPP component branch : v1.3.0 -OAI-NSSF component branch : v1.3.0 +OAI-NRF component branch : v1.4.0 +OAI-AMF component branch : v1.4.0 +OAI-SMF component branch : v1.4.0 +OAI-SPGW-U component branch : v1.1.6 +OAI-UDR component branch : v1.4.0 +OAI-UDM component branch : v1.4.0 +OAI-AUSF component branch : v1.4.0 +OAI-UPF-VPP component branch : v1.4.0 +OAI-NSSF component branch : v1.4.0 --------------------------------------------------------- git submodule deinit --all --force git submodule init @@ -96,7 +97,7 @@ git submodule update ## 1.2. You are interested on the latest features. ## -All the latest features are somehow pushed to the `develop` branches of each NF repository. +All the latest features are pushed to the `develop` branches of each NF repository. It means that we/you are able to build and the Continuous Integration test suite makes sure it does NOT break any existing tested feature. @@ -140,12 +141,7 @@ git submodule update # 2. Generic Parameters # -Here in our network configuration, we need to pass the "GIT PROXY" configuration. - -* If you do not need, remove the `--build-arg NEEDED_GIT_PROXY=".."` option. -* If you do need it, change with your proxy value. - -If you have re-building CN5G images, be careful that `docker` or `podman` may re-use `cached` blobs +If you are re-building CN5G images, be careful that `docker` or `podman` may re-use `cached` blobs to construct the intermediate layers. We recommend to add the `--no-cache` option in that case. @@ -155,13 +151,12 @@ We recommend to add the `--no-cache` option in that case. ## 3.1 On a Ubuntu 18.04 Host ## ```bash -$ docker build --target oai-amf --tag oai-amf:latest \ +$ docker build --target oai-amf --tag oai-amf:v1.4.0 \ --file component/oai-amf/docker/Dockerfile.amf.ubuntu18 \ - --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" \ component/oai-amf $ docker image prune --force $ docker image ls -oai-amf latest f478bafd7a06 1 minute ago 279MB +oai-amf v1.4.0 f478bafd7a06 1 minute ago 279MB ... ``` @@ -170,12 +165,14 @@ oai-amf latest f478bafd7a06 1 minute ago RHEL base images generally needs a subscription to access the package repository. For that the base image needs ca and entitlement .pem files. -Copy the ca and entitlement .pem files in the oai-amf repository in a new folder named `tmp` before building the image. +Copy the ca and entitlement .pem files in your present working directory `pwd` before building the image, you can do it like below ```bash -$ sudo podman build --target oai-amf --tag oai-amf:latest \ +$: mkdir -p ./etc-pki-entitlement ./rhsm-conf ./rhsm-ca +$: cp /etc/pki/entitlement/*pem ./etc-pki-entitlement +$: cp /etc/rhsm/ca/*pem ./rhsm-ca +$ sudo podman build --target oai-amf --tag oai-amf:v1.4.0 \ --file component/oai-amf/docker/Dockerfile.amf.rhel8 \ - --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" \ component/oai-amf ... ``` @@ -188,13 +185,12 @@ The above command is with podman, in case of docker it can be changed with its d ## 4.1 On a Ubuntu 18.04 Host ## ```bash -$ docker build --target oai-smf --tag oai-smf:latest \ +$ docker build --target oai-smf --tag oai-smf:v1.4.0 \ --file component/oai-smf/docker/Dockerfile.smf.ubuntu18 \ - --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" \ component/oai-smf $ docker image prune --force $ docker image ls -oai-smf latest f478bafd7a06 1 minute ago 293MB +oai-smf v1.4.0 f478bafd7a06 1 minute ago 293MB ... ``` @@ -203,12 +199,14 @@ oai-smf latest f478bafd7a06 1 minute ago RHEL base images generally needs a subscription to access the package repository. For that the base image needs ca and entitlement .pem files. -Copy the ca and entitlement .pem files in the oai-smf repository in a new folder named `tmp` before building the image. +Copy the ca and entitlement .pem files in your present working directory `pwd` before building the image, you can do it like below ```bash -$ sudo podman build --target oai-smf --tag oai-smf:latest \ +$: mkdir -p ./etc-pki-entitlement ./rhsm-conf ./rhsm-ca +$: cp /etc/pki/entitlement/*pem ./etc-pki-entitlement +$: cp /etc/rhsm/ca/*pem ./rhsm-ca +$ sudo podman build --target oai-smf --tag oai-smf:v1.4.0 \ --file component/oai-smf/docker/Dockerfile.smf.rhel8 \ - --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" \ component/oai-smf ... ``` @@ -220,13 +218,12 @@ The above command is with podman, in case of docker it can be changed with its d ## 5.1 On a Ubuntu 18.04 Host ## ```bash -$ docker build --target oai-nrf --tag oai-nrf:latest \ +$ docker build --target oai-nrf --tag oai-nrf:v1.4.0 \ --file component/oai-nrf/docker/Dockerfile.nrf.ubuntu18 \ - --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" \ component/oai-nrf $ docker image prune --force $ docker image ls -oai-nrf latest 04334b29e103 1 minute ago 247MB +oai-nrf v1.4.0 04334b29e103 1 minute ago 247MB ... ``` @@ -235,12 +232,14 @@ oai-nrf latest 04334b29e103 1 minute ago RHEL base images generally needs a subscription to access the package repository. For that the base image needs ca and entitlement .pem files. -Copy the ca and entitlement .pem files in the oai-nrf repository in a new folder named `tmp` before building the image. +Copy the ca and entitlement .pem files in your present working directory `pwd` before building the image, you can do it like below ```bash -$ sudo podman build --target oai-nrf --tag oai-nrf:latest \ +$: mkdir -p ./etc-pki-entitlement ./rhsm-conf ./rhsm-ca +$: cp /etc/pki/entitlement/*pem ./etc-pki-entitlement +$: cp /etc/rhsm/ca/*pem ./rhsm-ca +$ sudo podman build --target oai-nrf --tag oai-nrf:v1.4.0 \ --file component/oai-nrf/docker/Dockerfile.nrf.rhel8 \ - --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" \ component/oai-nrf ... ``` @@ -252,13 +251,12 @@ The above command is with podman, in case of docker it can be changed with its d ## 6.1 On a Ubuntu 18.04 Host ## ```bash -$ docker build --target oai-spgwu-tiny --tag oai-spgwu-tiny:latest \ +$ docker build --target oai-spgwu-tiny --tag oai-spgwu-tiny:v1.3.0 \ --file component/oai-upf-equivalent/docker/Dockerfile.ubuntu18.04 \ - --build-arg EURECOM_PROXY="http://proxy.eurecom.fr:8080" \ component/oai-upf-equivalent $ docker image prune --force $ docker image ls -oai-spgwu-tiny latest dec6311cef3b 1 minute ago 255MB +oai-spgwu-tiny v1.3.0 dec6311cef3b 1 minute ago 255MB ... ``` @@ -267,12 +265,14 @@ oai-spgwu-tiny latest dec6311cef3b 1 minute ago RHEL base images generally needs a subscription to access the package repository. For that the base image needs ca and entitlement .pem files. -Copy the ca and entitlement .pem files in the oai-spgwu repository in a new folder named `tmp` before building the image. +Copy the ca and entitlement .pem files in your present working directory `pwd` before building the image, you can do it like below ```bash -$ sudo podman build --target oai-spgwu-tiny --tag oai-spgwu-tiny:latest \ - --file component/oai-spgwu-tiny/docker/Dockerfile.centos8 \ - --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" \ +$: mkdir -p ./etc-pki-entitlement ./rhsm-conf ./rhsm-ca +$: cp /etc/pki/entitlement/*pem ./etc-pki-entitlement +$: cp /etc/rhsm/ca/*pem ./rhsm-ca +$ sudo podman build --target oai-spgwu-tiny --tag oai-spgwu-tiny:v1.3.0 \ + --file component/oai-spgwu-tiny/docker/Dockerfile.rhel8 \ component/oai-upf-equivalent ... ``` @@ -284,13 +284,12 @@ The above command is with podman, in case of docker it can be changed with its d ## 7.1 On a Ubuntu 18.04 Host ## ```bash -$ docker build --target oai-ausf --tag oai-ausf:latest \ +$ docker build --target oai-ausf --tag oai-ausf:v1.4.0 \ --file component/oai-ausf/docker/Dockerfile.ausf.ubuntu18 \ - --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" \ component/oai-ausf $ docker image prune --force $ docker image ls -oai-ausf latest 77a96de94c23 1 minute ago 231MB +oai-ausf v1.4.0 77a96de94c23 1 minute ago 231MB ... ``` @@ -299,12 +298,14 @@ oai-ausf latest 77a96de94c23 1 minute ago 23 RHEL base images generally needs a subscription to access the package repository. For that the base image needs ca and entitlement .pem files. -Copy the ca and entitlement .pem files in the oai-nrf repository in a new folder named `tmp` before building the image. +Copy the ca and entitlement .pem files in your present working directory `pwd` before building the image, you can do it like below ```bash -$ sudo podman build --target oai-ausf --tag oai-ausf:latest \ +$: mkdir -p ./etc-pki-entitlement ./rhsm-conf ./rhsm-ca +$: cp /etc/pki/entitlement/*pem ./etc-pki-entitlement +$: cp /etc/rhsm/ca/*pem ./rhsm-ca +$ sudo podman build --target oai-ausf --tag oai-ausf:v1.4.0 \ --file component/oai-ausf/docker/Dockerfile.ausf.rhel8 \ - --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" \ component/oai-ausf ... ``` @@ -316,13 +317,12 @@ The above command is with podman, in case of docker it can be changed with its d ## 8.1 On a Ubuntu 18.04 Host ## ```bash -$ docker build --target oai-udm --tag oai-udm:latest \ +$ docker build --target oai-udm --tag oai-udm:v1.4.0 \ --file component/oai-udm/docker/Dockerfile.udm.ubuntu18 \ - --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" \ component/oai-udm $ docker image prune --force $ docker image ls -oai-udm latest 10a4334e31be 1 minute ago 229MB +oai-udm v1.4.0 10a4334e31be 1 minute ago 229MB ... ``` @@ -331,12 +331,14 @@ oai-udm latest 10a4334e31be 1 minute ago RHEL base images generally needs a subscription to access the package repository. For that the base image needs ca and entitlement .pem files. -Copy the ca and entitlement .pem files in the oai-nrf repository in a new folder named `tmp` before building the image. +Copy the ca and entitlement .pem files in your present working directory `pwd` before building the image, you can do it like below ```bash -$ sudo podman build --target oai-udm --tag oai-udm:latest \ +$: mkdir -p ./etc-pki-entitlement ./rhsm-conf ./rhsm-ca +$: cp /etc/pki/entitlement/*pem ./etc-pki-entitlement +$: cp /etc/rhsm/ca/*pem ./rhsm-ca +$ sudo podman build --target oai-udm --tag oai-udm:v1.4.0 \ --file component/oai-udm/docker/Dockerfile.udm.rhel8 \ - --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" \ component/oai-udm ... ``` @@ -348,13 +350,12 @@ The above command is with podman, in case of docker it can be changed with its d ## 9.1 On a Ubuntu 18.04 Host ## ```bash -$ docker build --target oai-udr --tag oai-udr:latest \ +$ docker build --target oai-udr --tag oai-udr:v1.4.0 \ --file component/oai-udr/docker/Dockerfile.udr.ubuntu18 \ - --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" \ component/oai-udr $ docker image prune --force $ docker image ls -oai-udr latest 581e07d59ec3 1 minute ago 234MB +oai-udr v1.4.0 581e07d59ec3 1 minute ago 234MB ... ``` @@ -363,12 +364,14 @@ oai-udr latest 581e07d59ec3 1 minute ago RHEL base images generally needs a subscription to access the package repository. For that the base image needs ca and entitlement .pem files. -Copy the ca and entitlement .pem files in the oai-nrf repository in a new folder named `tmp` before building the image. +Copy the ca and entitlement .pem files in your present working directory `pwd` before building the image, you can do it like below ```bash -$ sudo podman build --target oai-udr --tag oai-udr:latest \ +$: mkdir -p ./etc-pki-entitlement ./rhsm-conf ./rhsm-ca +$: cp /etc/pki/entitlement/*pem ./etc-pki-entitlement +$: cp /etc/rhsm/ca/*pem ./rhsm-ca +$ sudo podman build --target oai-udr --tag oai-udr:v1.4.0 \ --file component/oai-udr/docker/Dockerfile.udr.rhel8 \ - --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" \ component/oai-udr ... ``` @@ -381,13 +384,12 @@ The above command is with podman, in case of docker it can be changed with its d ## 10.1 On a Ubuntu 18.04 Host ## ```bash -$ docker build --target oai-upf-vpp --tag oai-upf-vpp:latest \ +$ docker build --target oai-upf-vpp --tag oai-upf-vpp:v1.4.0 \ --file component/oai-upf-vpp/docker/Dockerfile.upf-vpp.ubuntu18 \ - --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" \ component/oai-upf-vpp $ docker image prune --force $ docker image ls -oai-upf-vpp latest 581e07d59ec3 1 minute ago 937MB +oai-upf-vpp v1.4.0 581e07d59ec3 1 minute ago 937MB ... ``` @@ -396,12 +398,14 @@ oai-upf-vpp latest 581e07d59ec3 1 minute ago RHEL base images generally needs a subscription to access the package repository. For that the base image needs ca and entitlement .pem files. -Copy the ca and entitlement .pem files in the oai-nrf repository in a new folder named `tmp` before building the image. +Copy the ca and entitlement .pem files in your present working directory `pwd` before building the image, you can do it like below ```bash -$ sudo podman build --target oai-upf-vpp --tag oai-upf-vpp:latest \ +$: mkdir -p ./etc-pki-entitlement ./rhsm-conf ./rhsm-ca +$: cp /etc/pki/entitlement/*pem ./etc-pki-entitlement +$: cp /etc/rhsm/ca/*pem ./rhsm-ca +$ sudo podman build --target oai-upf-vpp --tag oai-upf-vpp:v1.4.0 \ --file component/oai-upf-vpp/docker/Dockerfile.upf-vpp.rhel7 \ - --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" \ component/oai-upf-vpp ... ``` @@ -413,13 +417,12 @@ The above command is with podman, in case of docker it can be changed with its d ## 11.1 On a Ubuntu 18.04 Host ## ```bash -$ docker build --target oai-nssf --tag oai-nssf:latest \ +$ docker build --target oai-nssf --tag oai-nssf:v1.4.0 \ --file component/oai-nssf/docker/Dockerfile.nssf.ubuntu18 \ - --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" \ component/oai-nssf $ docker image prune --force $ docker image ls -oai-nssf latest 77a96de94c23 1 minute ago 231MB +oai-nssf v1.4.0 77a96de94c23 1 minute ago 231MB ... ``` @@ -428,12 +431,14 @@ oai-nssf latest 77a96de94c23 1 minute ago 23 RHEL base images generally needs a subscription to access the package repository. For that the base image needs ca and entitlement .pem files. -Copy the ca and entitlement .pem files in the oai-nrf repository in a new folder named `tmp` before building the image. +Copy the ca and entitlement .pem files in your present working directory `pwd` before building the image, you can do it like below ```bash -$ sudo podman build --target oai-nssf --tag oai-nssf:latest \ +$: mkdir -p ./etc-pki-entitlement ./rhsm-conf ./rhsm-ca +$: cp /etc/pki/entitlement/*pem ./etc-pki-entitlement +$: cp /etc/rhsm/ca/*pem ./rhsm-ca +$ sudo podman build --target oai-nssf --tag oai-nssf:v1.4.0 \ --file component/oai-nssf/docker/Dockerfile.nssf.rhel8 \ - --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" \ component/oai-nssf ... ``` diff --git a/docs/DEBUG_5G_CORE.md b/docs/DEBUG_5G_CORE.md index b76885ed3b29abe2689bbb7a29fbbf5201d9dd46..cea85a0eca5e46846cd69616e0c160e915681607 100644 --- a/docs/DEBUG_5G_CORE.md +++ b/docs/DEBUG_5G_CORE.md @@ -14,7 +14,7 @@ Currently there is no special tool for debugging the problems of core network components. Though there are certain methods which we are using in our team to diagnose an issue. -This page content expects you to have read the [deployment pre-requisites](./DEPLOY_PRE_REQUESITES.md) and try to deploy a [mini](./DEPLOY_SA5G_MINI_DS_TESTER_DEPLOYMENT.md) or [basic](./DEPLOY_SA5G_BASIC_DS_TESTER_DEPLOYMENT.md) normal deployment. +This page content expects you to read [deployment pre-requisites](./DEPLOY_PRE_REQUESITES.md) and try to deploy a [mini](./DEPLOY_SA5G_MINI_DS_TESTER_DEPLOYMENT.md) or [basic](./DEPLOY_SA5G_BASIC_DS_TESTER_DEPLOYMENT.md) normal deployment. **TABLE OF CONTENTS** @@ -25,7 +25,7 @@ This page content expects you to have read the [deployment pre-requisites](./DEP # 1. Building images in debug mode -By default all the dockerfiles present in any network function repository (AMF, SMF, NRF, UPF) are built with `release` tag. In the `release` mode the logging information is limited. This is done to reduce the image size and have a better performance. In beginning when a user is trying to understand the functioning of core network it is recommended to build the images in `debug mode`. This way user will have more logs and can have better understanding. To build any core network image in debug mode follow the below steps **after cloning the network function repository**, the example is for AMF, +By default all the dockerfiles present in any network function repository (AMF, SMF, NRF, UPF, UDR, UDM, AUSF) are built with `release` tag. In the `release` mode the logging information is limited. This is done to reduce the image size and have a better performance. In beginning when a user is trying to understand the functioning of core network it is recommended to build the images in `debug mode`. This way user will have more logs and can have better understanding. To build any core network image in debug mode follow the below steps **after cloning the network function repository**, the example is for AMF, ```bash # clone amf repository @@ -41,8 +41,44 @@ The same can be done for baremetal deployment of any core network function, just ## 1.1 Building the image with code inside (Only for development purpose) -If you are interested in doing development you can leave the code inside the container. This is good for developers, they can code in docker-environment. They can even mount the code as a volumne so that they can use their prefered editor (though vim/nano/vi are the best). To do this the dockerfile has to be edited and only the `BUILDER IMAGE` of the file is required the rest `TARGET IMAGE`part including CMD and ENTERYPOINT should be removed. +If you are interested in doing development you can leave the code inside the container. This is good for developers, they can code in docker-environment. They can even mount the code as a volume so that they can use their prefered editor (though vim/nano/vi are the best). +### 1.1.1 Building a Developer Image + +Below example is only for AMF you need to repeat it for all network functions + +``` bash +$: git clone -b <prefered_branch or develop> https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-amf.git +$: docker build -f oai-cn5g-amf/docker/Dockerfile.amf.ubuntu18 --target oai-amf-builder --tag oai-amf-builder:develop --no-cache oai-cn5g-amf/ +``` + +This will build your image and later you can use this image with below command, + +``` bash +$: docker run --privileged -d --name oai-amf-development oai-amf-builder:develop sleep infinity +$: docker exec -it oai-amf-development bash +# You will be inside the container +``` + +But in this approach you have to code inside the container using vi/vim/nano no graphical interface, but if you want a graphical interface then you can mount the code + +### 1.1.2 Mounting Code As Volume + +Below example is only for AMF you need to repeat it for all network functions + +``` bash +$: git clone -b <prefered_branch or develop> https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-amf.git /openair-amf +$: docker run --privileged -d --name oai-amf-development --volume openair-amf:/openair-amf ubuntu:bionic sleep infinity +$: docker exec -it oai-amf-development bash +# below command is same for all network functions +$: sudo apt update && apt install psmisc software-properties-common git vim nano vi gnupg +# now you can peform the build +$: cd /openair-amf/build/scripts +$: /build_amf --install-deps --force +$: /build_amf --clean --Verbose --build-type Debug --jobs +``` + +Now you are ready, start developing and testing # 2. Debuggers deployment of core network functions @@ -50,7 +86,7 @@ It is really important to safely keep the logs and configuration of core network # 2.1 Deploying as a process (baremetal deployment prefered by developers) -1. In case of all in one sort of process deployment there can some conflicting dependencies between different components of core network. These conflicts have to be resolved on case by case bases by the user. +1. In case of all in one sort of process deployment there can some conflicting dependencies between different components of core network. These conflicts have to be resolved on case by case bases by the user. You can follow the wiki of each network function for bare-metal installation for amf follow [this](https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-amf/-/wikis/Installation). 2. Once all the core-network components are build in debug mode with there dependencies store the logs in a file rather than printing on the terminal. 3. All the configuration file should be stored in one place so that it is easy to reterive. @@ -63,7 +99,7 @@ The above command will launch the network function in background and all the log # 2.2 Docker environment (Recommeneded) -Using docker environment for deployment and development is the prefered environment because there it is easy to have dedicated working environment for each network component. It is lightweight and easy to manage. The docker-compose provided in [earlier tutorials](./DEPLOY_SA5G_DS_TESTER.md) is good for learning how the OAI core network works and how to use it. But if the user wants to change some parameters which are not variable or not allowed using docker-compose then it is hard to use docker-compose approach. If the user wants to provide their own configuration file then it is better to change the docker-compose. Follow the below steps to create a new developer/debugger specific docker-compose, +Using docker environment for deployment and development is the prefered environment because there it is easy to have dedicated working environment for each network component. It is lightweight and easy to manage. The docker-compose provided in [tutorials](./DEPLOY_HOME.md) is good for learning how the OAI core network works and how to use it. But if the user wants to change some parameters which are not variable or not allowed using docker-compose then it is hard to use docker-compose approach. If the user wants to provide their own configuration file then it is better to change the docker-compose. Follow the below steps to create a new developer/debugger specific docker-compose, ## 2.2.1 Prerequisites @@ -104,7 +140,7 @@ $ cp ~/oai-cn5g-nrf/etc/nrf.conf ~/oai-docker-compose/confs/ $ cp ~/openair-spgwu-tiny/etc/spgwu.conf ~/oai-docker-compose/confs/ ``` -### 2.2.2 Creating entrypoint files +### 2.2.2 Creating entrypoint files The example of amf entrypoint.sh is below for other network functions it is analogus. @@ -255,17 +291,17 @@ networks: ``` # start docker-compose -docker-compose -p <project-name> -f <file-name> up -d +$: docker-compose -p <project-name> -f <file-name> up -d # if made changes in the conf files located in ./confs/ restart the container/service -docker-compose -p <project-name> -f <file-name> restart <service-name> +$: docker-compose -p <project-name> -f <file-name> restart <service-name> # force recreate a service -docker-compose -p <project-name> -f <file-name> up -d <service-name> --force-create +$: docker-compose -p <project-name> -f <file-name> up -d <service-name> --force-create # incase the code is present in side the container and some changes are made then just restart the container never remove -docker-compose -p <project-name> -f <file-name> restart <service-name> +$: docker-compose -p <project-name> -f <file-name> restart <service-name> # stop the containers/service -docker-compose -p <project-name> -f <file-name> stop <service-name> +$: docker-compose -p <project-name> -f <file-name> stop <service-name> # remove the deployment -docker-compose -p <project-name> -f <file-name> down +$: docker-compose -p <project-name> -f <file-name> down -t 0 ``` Network components configuration is present in `~/oai-docker-compose/confs/` the logs are present in `~/oai-docker-compose/logs/`. There will be only one log file and it will container huge amount of logs. If needed this can also be rotated to avoid having one bulky file. To make it rotating make changes in the entrypoint.sh script @@ -285,4 +321,4 @@ To report an issue regarding any-component of CN5G or attach-detach procedure fo 1. Share the testing scenario, what the test is trying to achieve 2. Debug logs of the 5GCN components and packet capture/tcpdump of the 5GCN components. Depending on where the packets are captured take care of interface on which the packets are captured. Also it will be nice to capture packets using a filter `ngap || http || pfcp || gtp` 3. If you have an issue with testing then you can send an email at openair5g-cn@lists.eurecom.fr with the configuration files, log files in debug mode and pcaps with appropriate filters. -4. In case you want to report a bug in the code of any network function then you can do it directly via gitlab. +4. You can also report an issue or create bug directly on gitlab, to create an account on our gitlab please follow only create account part from [here](../CONTRIBUTING.md) diff --git a/docs/DEPLOY_HOME.md b/docs/DEPLOY_HOME.md index c9d399e4ca6d64cd0a20f358ef79d9b585c5c49f..0ce92c040ad074aa930a2513184a951832cf7775 100644 --- a/docs/DEPLOY_HOME.md +++ b/docs/DEPLOY_HOME.md @@ -6,8 +6,6 @@ Welcome to the tutorial home page of OAI 5g Core project. Here you can find lot of tutorials and help manuals. We regularly update these documents depending on the new feature set. -**2021/09/06 Update: you have now the choice to either pull images or build your-self.** - ## Table of content - [Pre-requisites](./DEPLOY_PRE_REQUESITES.md) @@ -16,18 +14,20 @@ Welcome to the tutorial home page of OAI 5g Core project. Here you can find lot - [Build the container images](./BUILD_IMAGES.md) - [Configuring the Containers](./CONFIGURE_CONTAINERS.md) - 5G Core Network Deployment - - [Using Docker-Compose, perform a `minimalist` deployment](./DEPLOY_SA5G_MINI_DS_TESTER_DEPLOYMENT.md) - - [Using Docker-Compose, perform a `basic` deployment](./DEPLOY_SA5G_BASIC_DS_TESTER_DEPLOYMENT.md) - - [Using Docker-Compose, perform a `basic` deployment with FQDN feature](./DEPLOY_SA5G_BASIC_FQDN_DEPLOYMENT.md) - - [Using Docker-Compose, perform a `basic-vpp` deployment with VPP-implementation of UPF](./DEPLOY_SA5G_WITH_VPP_UPF.md) + - [Using Docker-Compose, perform a `minimalist` deployment](./DEPLOY_SA5G_MINI_DEPLOYMENT.md) + - [Using Docker-Compose, perform a `basic` deployment](./DEPLOY_SA5G_BASIC_DEPLOYMENT.md) + - [Using Docker-Compose, perform a `basic-vpp` deployment with VPP implementation of UPF](./DEPLOY_SA5G_WITH_VPP_UPF.md) - [Using Docker-Compose, perform a `basic` deployment with Static UE IP address allocation](./DEPLOY_SA5G_BASIC_STATIC_UE_IP.md) - [Using Helm Chart, perform a `basic` deployment](./DEPLOY_SA5G_HC.md) - - [Using Virtual Machine, deploy and test with a Commercial UE](./DEPLOY_SA5G_VM_COTSUE.md) - - [Using Docker-Compose, perform a `minimalist` deployment and test with `gnbsim`](./DEPLOY_SA5G_WITH_GNBSIM.md) + - [Using Docker-Compose, doing network slicing](./DEPLOY_SA5G_SLICING.md) +- 5G Core Network Deployment and Testing with Ran Emulators - [Using Docker-Compose, perform a `basic` deployment and test with `OAI RF simulator`](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tree/develop/ci-scripts/yaml_files/5g_rfsimulator) + - [Using Docker-Compose, perform a `minimalist` deployment and test with `gnbsim`](./DEPLOY_SA5G_WITH_GNBSIM.md) - [Using Docker-Compose, perform a `basic` deployment and test with `UERANSIM`](./DEPLOY_SA5G_WITH_UERANSIM.md) - - [Using Docker-Compose, perform a `basic` deployment and test with `Network Slicing`](./DEPLOY_SA5G_SLICING.md) - [Using Docker-Compose, perform a `basic` deployment and test with `My5g-RANTester`](./DEPLOY_SA5G_WITH_My5g-RANTester.md) - [Using Docker-Compose, when testing with Commercial UE, troubleshoot traffic issues](./TROUBLESHOOT_COTS_UE_TRAFFIC.md) - The Developer Corner - [How to Deploy Developers Core Network and Basic Debugging](./DEBUG_5G_CORE.md) + - [Using Virtual Machine, deploy and test with a Commercial UE](./DEPLOY_SA5G_VM_COTSUE.md) +- How to Open an Issue or Report a bug +- Frequently Asked Questions \ No newline at end of file diff --git a/docs/DEPLOY_SA5G_BASIC_DEPLOYMENT.md b/docs/DEPLOY_SA5G_BASIC_DEPLOYMENT.md new file mode 100644 index 0000000000000000000000000000000000000000..4d5cb39d618154380e9ede4ea3151c0105000f50 --- /dev/null +++ b/docs/DEPLOY_SA5G_BASIC_DEPLOYMENT.md @@ -0,0 +1,408 @@ +<table style="border-collapse: collapse; border: none;"> + <tr style="border-collapse: collapse; border: none;"> + <td style="border-collapse: collapse; border: none;"> + <a href="http://www.openairinterface.org/"> + <img src="./images/oai_final_logo.png" alt="" border=3 height=50 width=150> + </img> + </a> + </td> + <td style="border-collapse: collapse; border: none; vertical-align: center;"> + <b><font size = "5">OpenAirInterface 5G Core Network Basic Deployment using Docker-Compose</font></b> + </td> + </tr> +</table> + + + + +**OVERVIEW** + +This tutorial will help in understanding how to deploy a `basic` OAI core network using docker-compose. The recommended hardware to install the above core network setting is + +- 4 CPU +- 16GiB RAM +- Minimum 1.5 GiB of free storage for docker images + +Please follow the tutorial step by step to create a stable working testbed. + +**Reading time**: ~ 20 mins + +**Tutorial replication time**: ~ 30 mins + +Note: In case readers are interested in deploying debuggers/developers core network environment with more logs please follow [this tutorial](./DEBUG_5G_CORE.md) + +**TABLE OF CONTENTS** + +1. [Basic Deployment Flavours](#1-basic-deployment-flavours) +2. [Pre-requisites](#2-pre-requisites) +3. [Network Function Container Images](#3-network-function-container-images) +4. [Configuring Host Machines](#4-configuring-host-machines) +5. [Configuring OAI 5G Core Network Functions](#5-configuring-the-oai-5g-core-network-functions) +6. [Deploying OAI 5G Core Network](#6-deploying-oai-5g-core-network) +7. [Notes](#7-notes) + +## 1. Basic Deployment Flavours ## + +The Basic functional 5g core network can be deployed into 2 scenarios: + + - Scenario I: AMF, SMF, UPF (SPGWU), NRF, UDM, UDR, AUSF, MYSQL + - Scenario II: AMF, SMF, UPF (SPGWU), UDM, UDR, AUSF, MYSQL + +## 2. Pre-requisites ## + +The container images are built using `docker build` command on Ubuntu 18.04 host machine. The base image for all the containers is Ubuntu 18.04. + +The requried softwares and their respected versions are listed below. To replicate the testbed use these versions. + +| Software | Version | +|:-------------------------- |:----------------------------------------| +| docker engine | 19.03.6, build 369ce74a3c | +| docker-compose | 1.27.4, build 40524192 | +| Host operating system | Ubuntu 18.04.4 LTS | +| Container operating system | Ubuntu 18.04 | +| tshark | Minimum 3.4.4 (Git commit c33f6306cbb2) | +| wireshark | Minimum 3.4.4 (Git commit c33f6306cbb2) | + +### 2.1. Wireshark ### + +The new version of `wireshark` may not be available in ubuntu 18.04 repository: + +- So it is better to build it from source. + +You may also use the developer PPA: + +```shell +docker-compose-host $: sudo add-apt-repository ppa:wireshark-dev/stable +docker-compose-host $: sudo apt update +docker-compose-host $: sudo apt install wireshark + +docker-compose-host $: wireshark --version +Wireshark 3.4.7 (Git v3.4.7 packaged as 3.4.7-1~ubuntu18.04.0+wiresharkdevstable1) +``` + +### 2.2. Networking considerations ### + +Most of the times the `docker-compose-host` machine is not configured with packet forwarding then it can be done using below command (if you have already done it in any other section then don't repeat). + +**This is the most important step towards end-to-end connectivity.** + +```shell +docker-compose-host $: sudo sysctl net.ipv4.conf.all.forwarding=1 +docker-compose-host $: sudo iptables -P FORWARD ACCEPT +``` + +## 3. Network Function Container Images ## + +- In this demo the network function branch and tags which were used are listed below, follow the [Retrieving images](./RETRIEVE_OFFICIAL_IMAGES.md) or the [Building images](./BUILD_IMAGES.md) to build images with below tags. + +| CNF Name | Branch Name | Tag | Ubuntu 18.04 | RHEL8 (UBI8) | +| ----------- | ----------- | -------- | ------------ | ----------------| +| AMF | `master` | `v1.4.0` | X | X | +| SMF | `master` | `v1.4.0` | X | X | +| NRF | `master` | `v1.4.0` | X | X | +| SPGW-U-TINY | `master` | `v1.3.0` | X | X | +| UDR | `master` | `v1.4.0` | X | X | +| UDM | `master` | `v1.4.0` | X | X | +| AUSF | `master` | `v1.4.0` | X | X | + +- In case readers are interested in making images using different branch then **they have to build images from scratch they can't use the docker-hub images**. + +## 4. Configuring Host Machines ## + +All the network functions are connected using `demo-oai` bridge. + +There are two ways to create this bridge either manually or automatically using docker-compose. + +* The manual version will allow packet capturing while network functions are getting deployed. So the initial tested setup packets can be captured for debugging purposes or checking if network functions registered properly to NRF. +* The second option of automatic deployment is good when initial packet capture is not important. + +**NOTE** This tutorial needs that the bridge is created manually to analyse NRF packet exchange. + +### 4.1 Creating bridge manually ### + +Since this is not the `default` behavior, you **have to** edit the docker-compose file. + +- The bottom section of [docker-compose file](../docker-compose/docker-compose-mini-nrf.yaml) SHALL look like this: + +``` + networks: + public_net: + external: + name: demo-oai-public-net + # public_net: + # driver: bridge + # name: demo-oai-public-net + # ipam: + # config: + # - subnet: 192.168.70.128/26 + # driver_opts: + # com.docker.network.bridge.name: "demo-oai" +``` + +- The `docker-compose-host` machine needs to be configured with `demo-oai` bridge before deploying core network components. To capture initial message exchange between network functions. + + ```console + docker-compose-host $: docker network create \ + --driver=bridge \ + --subnet=192.168.70.128/26 \ + -o "com.docker.network.bridge.name"="demo-oai" \ + demo-oai-public-net + 455631b3749ccd6f10a366cd1c49d5a66cf976d176884252d5d88a1e54049bc5 + docker-compose-host $: ifconfig demo-oai + demo-oai: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 + inet 192.168.70.129 netmask 255.255.255.192 broadcast 192.168.70.191 + RX packets 0 bytes 0 (0.0 B) + RX errors 0 dropped 0 overruns 0 frame 0 + TX packets 0 bytes 0 (0.0 B) + TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 + docker-compose-host $: docker network ls + NETWORK ID NAME DRIVER SCOPE + d2d34e05bb2d bridge bridge local + 455631b3749c demo-oai-public-net bridge local + ``` + +### 4.2 Create bridge automatically ### + +- Though the bridge can be automatically created using docker-compose file if there is no need to capture initial packets. + +This is the `default` version in the [docker-compose-basic-nrf.yaml](../docker-compose/docker-compose-basic-nrf.yaml) or `docker-compose-basic-nonrf.yaml`. + +The bottom section SHALL look like this: + + ``` + networks: + # public_net: + # external: + # name: demo-oai-public-net + public_net: + driver: bridge + name: demo-oai-public-net + ipam: + config: + - subnet: 192.168.70.128/26 + driver_opts: + com.docker.network.bridge.name: "demo-oai" + ``` + +### 4.3 In case you forgot, the below section is for both manual and automatic network creation. ### + +- If the `docker-compose-host` machine is not configured with packet forwarding then it can be done using below command (**important step**), + + ```console + docker-compose-host $: sudo sysctl net.ipv4.conf.all.forwarding=1 + docker-compose-host $: sudo iptables -P FORWARD ACCEPT + ``` + +- The `gNB-host` needs to configured with a route to reach `docker-compose-host`. Assuming `gNB-host` physical interface which is connected with `docker-compose-host` is NIC1 and the ip-address of this interface is IP_ADDR_NIC1 then, + + ```console + gNB-host$: sudo ip route add route 192.168.70.128/26 \ + via IP_ADDR_NIC1\ + dev NIC1_NAME + ``` + +- To verify ping the ip-address of the `docker-compose-host` interface connected to demo-oai bridge, if possible also ping amf from the gNB host machine. + + ```bash + gNB-host$: ping 192.168.70.129 + PING 192.168.70.129 (192.168.70.129) 56(84) bytes of data. + 64 bytes from 192.168.70.129: icmp_seq=1 ttl=64 time=0.260 ms + 64 bytes from 192.168.70.129: icmp_seq=2 ttl=64 time=0.147 ms + 64 bytes from 192.168.70.129: icmp_seq=3 ttl=64 time=0.187 ms + 64 bytes from 192.168.70.129: icmp_seq=4 ttl=64 time=0.187 ms + 64 bytes from 192.168.70.129: icmp_seq=5 ttl=64 time=0.181 ms + ^C + --- 192.168.70.129 ping statistics --- + 5 packets transmitted, 5 received, 0% packet loss, time 108ms + rtt min/avg/max/mdev = 0.147/0.192/0.260/0.038 ms + ``` + +## 5. Configuring the OAI-5G Core Network Functions ## + +5G core network have two architectures service based or reference point which makes the NRF component optional, similarly you can choose to deploy the OAI core network components with or without NRF. Additionally in cloud native world it is refered to provide a Fully Qualified Domain Name (FQDN) to a service rather than static ip-address. Each of our network functions can communicate to other core network function's using ip-address or FQDN. For example, AMF can register to NRF either with NRFs ip-address or FQDN. + +Configuring network functions with static ip-addresses is prefered for bare-metal deployment of network functions. Whereas for docker-compose or helm chart based deployment it is better to use FQDN of network functions. In the docker-compose file you will see each network function is configured with both ip-address and FQDN, but if you are using FQDN then the code of network function will ignore the ip-address configuration. + +In docker-compose the service-name is actually the FQDN of the service. + +### 5.1. Core Network Configuration ### + +The docker-compose file has configuration parameters of each core network component. The file is pre-configured with parameters related to this scenario. The table contains the location of the configuration files. These files contains allowed configurable parameters. **Keep checking this file it is possible that we will add new parameters for new features.** + +| File Name | Repository | Location | +|:----------- |:-------------------------------------------- |:--------------- ------| +| amf.conf | (Gitlab) cn5g/oai-cn5g-amf | [etc/amf.conf](https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-amf/-/blob/master/etc/amf.conf) | +| smf.conf | (Gitlab) cn5g/oai-cn5g-smf | [etc/smf.conf](https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-smf/-/blob/master/etc/smf.conf) | +| nrf.conf | (Gitlab) cn5g/oai-cn5g-nrf | [etc/nrf.conf](https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-nrf/-/blob/master/etc/nrf.conf) | +| spgw_u.conf | (Github) OPENAIRINTERFACE/openair-spgwu-tiny | [etc/spgw_u.conf](https://github.com/OPENAIRINTERFACE/openair-spgwu-tiny/blob/master/etc/spgw_u.conf) | +| udr.conf | (Gitlab) cn5g/oai-cn5g-udr | [etc/udr.conf](https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-udr/-/blob/master/etc/udr.conf) | +| udm.conf | (Gitlab) cn5g/oai-cn5g-udm | [etc/udm.conf](https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-udm/-/blob/master/etc/udm.conf) | +| ausf.conf | (Gitlab) cn5g/oai-cn5g-ausf | [etc/ausf.conf](https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-ausf/-/blob/master/etc/ausf.conf) | + + +### 5.2. User Subscprition Profile ### + +There are two ways to configure the User Subscription Profile, + +1. Pre-configure all the users in the [database file](../docker-compose/oai_db2.sql). This way when the core network will start it will have all the users. +2. Add a new user when the core-network is already running. + +For the first method, you have to edit the [database file](../docker-compose/oai_db2.sql) and add or change the entries in table `AuthenticationSubscription`, either remove the already present entries or add new one like below + +```sql +INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208950000000031', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000031'), +``` + +Make sure you edit the IMSI, opc and key according to your setting user device + +For second method, you have to add the entry when the core network is already running. **This step can only be performed after deploying the core network docker-containers**. + +```console +docker-compose-host $: docker exec -it mysql /bin/bash +mysql-container$: mysql -uroot -plinux +mysql-container$: use oai_db; +mysql-container$: INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES +('208950000000031', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000031'), +``` + +Make sure you edit the IMSI, opc and key according to your setting user device. + +## 6. Deploying OAI 5g Core Network ## + +- The core network is deployed using a [python script](../docker-compose/core-network.py) which is a wrapper around `docker-compose` and `docker` command. The script is to make the deployment easy. +- The script informs the user when the core-network is correctly configured by checking health status of containers and connectivity between different core network components. +- To know how to use the script look for the helper menu as shown below. +- There are three parameters, which can be provided + - `--type` mandatory option to start/stop the 5g core components with minimum/basic functional architecture. + - `--scenario` is optional and if not provided by default it is considered to use nrf component. + - `--capture` will start capturing packets with above defined filters on `demo-oai` bridge +- In case if there is a problem or you don't want to use this python script it is better to use docker-compose manually read the [notes section](#10-notes) + + ```console + docker-compose-host $: pwd + /home/<docker-compose-host>/oai/oai-cn-fed/docker-compose + docker-compose-host $: python3 core-network.py --help + + usage: core-network.py [-h] --type {start-mini,start-basic,start-basic-vpp,stop-mini,stop-basic,stop-basic-vpp} [--scenario {1,2}] [--capture CAPTURE] + + OAI 5G CORE NETWORK DEPLOY + + optional arguments: + -h, --help show this help message and exit + --type {start-mini,start-basic,start-basic-vpp,stop-mini,stop-basic,stop-basic-vpp}, -t {start-mini,start-basic,start-basic-vpp,stop-mini,stop-basic,stop-basic-vpp} + Functional type of 5g core network ("start-mini"|"start-basic"|"start-basic-vpp"|"stop-mini"|"stop-basic"|"stop-basic-vpp") + --scenario {1,2}, -s {1,2} + Scenario with NRF ("1") and without NRF ("2") + --capture CAPTURE, -c CAPTURE + Add an automatic PCAP capture on docker networks to CAPTURE file + + example: + python3 core-network.py --type start-mini + python3 core-network.py --type start-basic + python3 core-network.py --type start-basic-vpp + python3 core-network.py --type stop-mini + python3 core-network.py --type start-mini --scenario 2 + python3 core-network.py --type start-basic --scenario 2 + ``` +- **Optional** Before executing the script it is better to start capturing packets to see the message flow between smf <--> nrf <--> upf. The packets will be captured on **demo-oai** bridge which should be configured on the `docker-compose-host` machine. + + ```console + docker-compose-host $: sudo tshark -i demo-oai + -f "not arp and not port 53 and not host archive.ubuntu.com and not host security.ubuntu.com" \ + -w /tmp/5gcn-basic-deployment-nrf.pcap + ``` + +- Explanation on the capture filter: + * `not arp` : Not capturing ARP traffic + * `not port 53` : Not capturing DNS traffic + * `not host archive.ubuntu.com and not host security.ubuntu.com` : Not capturing traffic from `oai-ext-dn` container when installing tools +- Starting the core network components, it will take around `2-3 mins` to deploy the core network and get it configured. The time depends on the computational resources you have in your machine + + ```shell + docker-compose-host $: python3 core-network.py --type start-basic --scenario 1 + [2022-06-29 16:13:16,657] root:DEBUG: Starting 5gcn components... Please wait.... + [2022-06-29 16:13:16,657] root:DEBUG: docker-compose -f docker-compose-basic-nrf.yaml up -d + Creating network "demo-oai-public-net" with driver "bridge" + Creating mysql ... done + Creating oai-nrf ... done + Creating oai-udr ... done + Creating oai-udm ... done + Creating oai-ausf ... done + Creating oai-amf ... done + Creating oai-smf ... done + Creating oai-spgwu ... done + Creating oai-traffic-gen ... done + + [2022-06-29 16:14:02,294] root:DEBUG: OAI 5G Core network started, checking the health status of the containers... takes few secs.... + [2022-06-29 16:14:02,294] root:DEBUG: docker-compose -f docker-compose-basic-nrf.yaml ps -a + [2022-06-29 16:15:00,842] root:DEBUG: All components are healthy, please see below for more details.... + Name Command State Ports + ---------------------------------------------------------------------------------------------- + mysql docker-entrypoint.sh mysqld Up (healthy) 3306/tcp, 33060/tcp + oai-amf /bin/bash /openair-amf/bin ... Up (healthy) 38412/sctp, 80/tcp, 9090/tcp + oai-ausf /bin/bash /openair-ausf/bi ... Up (healthy) 80/tcp + oai-nrf /bin/bash /openair-nrf/bin ... Up (healthy) 80/tcp, 9090/tcp + oai-smf /bin/bash /openair-smf/bin ... Up (healthy) 80/tcp, 8080/tcp, 8805/udp + oai-spgwu /bin/bash /openair-spgwu-t ... Up (healthy) 2152/udp, 8805/udp + oai-traffic-gen /bin/bash -c ip route add ... Up + oai-udm /bin/bash /openair-udm/bin ... Up (healthy) 80/tcp + oai-udr /bin/bash /openair-udr/bin ... Up (healthy) 80/tcp + [2022-06-29 16:15:00,843] root:DEBUG: Checking if the containers are configured.... + [2022-06-29 16:15:00,843] root:DEBUG: Checking if AMF, SMF and UPF registered with nrf core network.... + [2022-06-29 16:15:00,843] root:DEBUG: curl -s -X GET http://192.168.70.130/nnrf-nfm/v1/nf-instances?nf-type="AMF" | grep -o "192.168.70.132" + 192.168.70.132 + [2022-06-29 16:15:01,113] root:DEBUG: curl -s -X GET http://192.168.70.130/nnrf-nfm/v1/nf-instances?nf-type="SMF" | grep -o "192.168.70.133" + 192.168.70.133 + [2022-06-29 16:15:01,146] root:DEBUG: curl -s -X GET http://192.168.70.130/nnrf-nfm/v1/nf-instances?nf-type="UPF" | grep -o "192.168.70.134" + 192.168.70.134 + [2022-06-29 16:15:01,174] root:DEBUG: Checking if AUSF, UDM and UDR registered with nrf core network.... + [2022-06-29 16:15:01,175] root:DEBUG: curl -s -X GET http://192.168.70.130/nnrf-nfm/v1/nf-instances?nf-type="AUSF" | grep -o "192.168.70.138" + 192.168.70.138 + [2022-06-29 16:15:01,187] root:DEBUG: curl -s -X GET http://192.168.70.130/nnrf-nfm/v1/nf-instances?nf-type="UDM" | grep -o "192.168.70.137" + 192.168.70.137 + [2022-06-29 16:15:01,197] root:DEBUG: curl -s -X GET http://192.168.70.130/nnrf-nfm/v1/nf-instances?nf-type="UDR" | grep -o "192.168.70.136" + 192.168.70.136 + [2022-06-29 16:15:01,207] root:DEBUG: AUSF, UDM, UDR, AMF, SMF and UPF are registered to NRF.... + [2022-06-29 16:15:01,207] root:DEBUG: Checking if SMF is able to connect with UPF.... + [2022-06-29 16:15:01,271] root:DEBUG: UPF did answer to N4 Association request from SMF.... + [2022-06-29 16:15:01,304] root:DEBUG: SMF receiving heathbeats from UPF.... + [2022-06-29 16:15:01,304] root:DEBUG: OAI 5G Core network is configured and healthy.... + ``` + +- To stop the core network you can use + + ```shell + docker-compose-host $: python3 core-network.py --type stop-basic --scenario 1 + ``` + +- In case you see some issue in the end of the script, like NRF registration issue or SMF<-->UPF heartbeat issue then you can stop the core network and re-deploy it using the script or you can do it directly via docker-compose command. As explained in last section. + + +Your core network is ready you can use it this your gNB. + +You can use `oai-traffic-gen` to perform iperf or ping towards the UE, just make sure that the subnet used by the UE is properly defined in the `oai-traffic-gen` contianer using `ip route` command. + +``` shell +docker-compose-host $: docker exec -it oai-traffic-gen bash +docker-compose-host $: ping <ue-ip-address> +``` + + +## 7. Notes ## + +- The `oai-traffic-gen` container is optional and is only required if the user wants to ping from the UE. In general this container is not required except for testing purposes. +- Using the python script from above you can perform minimum `AMF, SMF, UPF (SPGWU), NRF, MYSQL` and basic `AMF, SMF, UPF (SPGWU), NRF, UDM, UDR, AUSF, MYSQL` 5g core funtional testing with `FQDN/IP` based feature along with `NRF/noNRF`. Check the configuration before using the docker compose [files](../docker-compose/). +- This tutorial can be taken as reference to test the OAI 5G core with a COTS UE. The configuration files has to be changed according to the gNB and COTS UE information should be present in the mysql database. +- Generally, in a COTS UE two PDN sessions are created by default so configure the IMS in SMF properly. Currently some parameters can not be configured via [docker-compose-basic-nrf.yaml](../docker-compose/docker-compose-basic-nrf.yaml). We recommend you directly configure them in the conf file and mount the file in the docker during run time. +- It is not necessary to use [core-network.py](../docker-compose/core-network.py) bash script, it is possible to directly deploy using `docker-compose` command +- In case you want to deploy debuggers/developers core network environment with more logs please follow [this tutorial](./DEBUG_5G_CORE.md) + +``` console +#To start the containers +docker-compose-host $: docker-compose -f <file-name> up -d +#To check their health status and wait till the time they are healthy, you ctrl + c to exit watch command +docker-compose-host $: watch docker-compose -f <file-name> ps -a +#To stop the containers with zero graceful period +docker-compose-host $: docker-compose -f <file-name> down -t 0 +``` diff --git a/docs/DEPLOY_SA5G_BASIC_DS_TESTER_DEPLOYMENT.md b/docs/DEPLOY_SA5G_BASIC_DS_TESTER_DEPLOYMENT.md deleted file mode 100644 index 947e7842b186eb12c0c787db64b054980f97e222..0000000000000000000000000000000000000000 --- a/docs/DEPLOY_SA5G_BASIC_DS_TESTER_DEPLOYMENT.md +++ /dev/null @@ -1,316 +0,0 @@ -<table style="border-collapse: collapse; border: none;"> - <tr style="border-collapse: collapse; border: none;"> - <td style="border-collapse: collapse; border: none;"> - <a href="http://www.openairinterface.org/"> - <img src="./images/oai_final_logo.png" alt="" border=3 height=50 width=150> - </img> - </a> - </td> - <td style="border-collapse: collapse; border: none; vertical-align: center;"> - <b><font size = "5">OpenAirInterface 5G Core Network Basic Deployment using Docker-Compose</font></b> - </td> - </tr> -</table> - - - - -**OVERVIEW** - -This tutorial will help in understanding how to deploy a `basic` OAI core network using docker-compose. - -* In this tutorial we have used [dsTest](https://www.developingsolutions.com/products/dstest-5g-core-network-testing/), a commercial paid gNB emulator. -* Though, instead of this, readers can also use `gNBsim` (an opensource gNB emulator), you can follow another tutorial for [this](./DEPLOY_SA5G_WITH_GNBSIM.md). -* Readers could also replace the RAN emulator by a real RAN, it means the `so-called dsTest Host` could be a real `gNB`. - -Please follow the tutorial step by step to create a stable working testbed. - -**Reading time**: ~ - -**Tutorial replication time**: ~ - -Note: In case readers are interested in deploying debuggers/developers core network environment with more logs please follow [this tutorial](./DEBUG_5G_CORE.md) - -**TABLE OF CONTENTS** - -1. [Basic Deployment Flavours](#1-basic-deployment-flavours) -2. [Pre-requisites](#2-pre-requisites) -3. [Network Function Container Images](#3-network-function-container-images) -4. [Configuring Host Machines](#4-configuring-host-machines) -5. [Configuring OAI 5G Core Network Functions](#5-configuring-the-oai-5g-core-network-functions) -6. [Configuring dsTest Scenario](#6-configuring-dstester-scenario) -7. [Deploying OAI 5G Core Network](#7-deploying-oai-5g-core-network) -8. [Executing dsTest Scenario](#8-executing-the-dstest-scenario) -9. [Reference Logs](#9-reference-logs) -10. [Notes](#10-notes) - -## 1. Basic Deployment Flavours ## - -The Basic functional 5g core network can be deployed into 2 scenarios: - - - Scenario I: AMF, SMF, UPF (SPGWU), NRF, UDM, UDR, AUSF, MYSQL - - Scenario II: AMF, SMF, UPF (SPGWU), UDM, UDR, AUSF, MYSQL - -## 2. Pre-requisites ## - -The container images are built using `docker build` command on Ubuntu 18.04 host machine. The base image for all the containers is Ubuntu 18.04. - -The requried softwares and their respected versions are listed below. To replicate the testbed use these versions. - - -| Software | Version | -|:-------------------------- |:------------------------------- | -| docker engine | 19.03.6, build 369ce74a3c | -| docker-compose | 1.27.4, build 40524192 | -| Host operating system | Ubuntu 18.04.4 LTS | -| Container operating system | Ubuntu 18.04 | -| dsTest (Licensed) | 5.5 | -| tshark | 3.4.4 (Git commit c33f6306cbb2) | -| wireshark | 3.4.4 (Git commit c33f6306cbb2) | - -### 2.1. Wireshark ### - -The new version of `wireshark` may not be available in the ubuntu repository: - -- So it is better to build it from source. - -You may also use the developer PPA: - -```bash -sudo add-apt-repository ppa:wireshark-dev/stable -sudo apt update -sudo apt install wireshark - -wireshark --version -Wireshark 3.4.7 (Git v3.4.7 packaged as 3.4.7-1~ubuntu18.04.0+wiresharkdevstable1) -``` - -### 2.2. Networking considerations ### - -Most of the times the `docker-compose-host` machine is not configured with packet forwarding then it can be done using below command (if you have already done it in any other section then don't repeat). - -**This is the most important step towards end-to-end connectivity.** - -```bash -(docker-compose-host)$ sudo sysctl net.ipv4.conf.all.forwarding=1 -(docker-compose-host)$ sudo iptables -P FORWARD ACCEPT -``` - -To know how to configure the machine with the above requirements vist [pre-requisites](./DEPLOY_PRE_REQUESITES.md) page. - -## 3. Network Function Container Images ## - -- In this demo the network function branch and tags which were used are listed below, follow the [Retrieving images](./RETRIEVE_OFFICIAL_IMAGES.md) or the [Building images](./BUILD_IMAGES.md) to build images with below tags. - -| CNF Name | Branch Name | Tag | Ubuntu 18.04 | RHEL8 (UBI8) | -| ----------- | ----------- | -------- | ------------ | ----------------| -| AMF | `master` | `v1.3.0` | X | X | -| SMF | `master` | `v1.3.0` | X | X | -| NRF | `master` | `v1.3.0` | X | X | -| SPGW-U-TINY | `master` | `v1.2.0` | X | X | -| UDR | `master` | `v1.3.0` | X | X | -| UDM | `master` | `v1.3.0` | X | X | -| AUSF | `master` | `v1.3.0` | X | X | - -- In case readers are interested in making images using different branch then **they have to build images from scratch they can't use the docker-hub images**. - -## 4. Configuring Host Machines ## - -This section is similar to the [Section 4 in the minimalist-deployment](./DEPLOY_SA5G_MINI_DS_TESTER_DEPLOYMENT.md#4-configuring-host-machines). - -## 5. Configuring the OAI-5G Core Network Functions ## - -### 5.1. Core Network Configuration ### - -The docker-compose file has configuration parameters of each core network component. The file is pre-configured with parameters related to this scenario. The table contains the location of the configuration files. These files contains allowed configurable parameters. **Keep checking this file it is possible that we will add new parameters for new features.** - -| File Name | Repository | Location | -|:----------- |:-------------------------------------------- |:--------------- | -| amf.conf | (Gitlab) cn5g/oai-cn5g-amf | [etc/amf.conf](https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-amf/-/blob/master/etc/amf.conf) | -| smf.conf | (Gitlab) cn5g/oai-cn5g-smf | [etc/smf.conf](https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-smf/-/blob/master/etc/smf.conf) | -| nrf.conf | (Gitlab) cn5g/oai-cn5g-nrf | [etc/nrf.conf](https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-nrf/-/blob/master/etc/nrf.conf) | -| spgw_u.conf | (Github) OPENAIRINTERFACE/openair-spgwu-tiny | [etc/spgw_u.conf](https://github.com/OPENAIRINTERFACE/openair-spgwu-tiny/blob/master/etc/spgw_u.conf) | -| udr.conf | (Gitlab) cn5g/oai-cn5g-udr | [etc/udr.conf](https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-udr/-/blob/master/etc/udr.conf) | -| udm.conf | (Gitlab) cn5g/oai-cn5g-udm | [etc/udm.conf](https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-udm/-/blob/master/etc/udm.conf) | -| ausf.conf | (Gitlab) cn5g/oai-cn5g-ausf | [etc/ausf.conf](https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-ausf/-/blob/master/etc/ausf.conf) | - - -### 5.2. User Subscprition Profile ### - -This section is similar to the [Section 5.2 in the minimalist-deployment](./DEPLOY_SA5G_MINI_DS_TESTER_DEPLOYMENT.md#52-user-subscprition-profile). - -## 6. Configuring DsTester Scenario ## - -This section is similar to the [Section 6 in the minimalist-deployment](./DEPLOY_SA5G_MINI_DS_TESTER_DEPLOYMENT.md#6-configuring-dstester-scenario). - -## 7. Deploying OAI 5g Core Network ## - -- The core network is deployed using a [python script](../docker-compose/core-network.py) which is a wrapper around `docker-compose` and `docker` command. -- The script informs the user when the core-network is correctly configured by checking health status of containers and connectivity between different core network components. -- To know how to use the script look for the helper menu as shown below. -- There are three parameters, which can be provided - - `--type` mandatory option to start/stop the 5g core components with minimum/basic functional architecture. - - `--fqdn` and `--scenario` are optional and if not provided by default it is considered as use fqdn feature with nrf component. -- In case if there is a problem in using the script then use docker-compose manually read the [notes section](#10-notes) - - ```bash - (docker-compose-host)$ pwd - /home/<docker-compose-host>/oai/oai-cn-fed/docker-compose - (docker-compose-host)$ python3 core-network.py --help - - usage: core-network.py [-h] --type {start-mini,start-basic,stop-mini,stop-basic} [--fqdn {yes,no}] [--scenario {1,2}] - - OAI 5G CORE NETWORK DEPLOY - - optional arguments: - -h, --help show this help message and exit - --type {start-mini,start-basic,stop-mini,stop-basic}, -t {start-mini,start-basic,stop-mini,stop-basic} - Functional type of 5g core network ("start-mini"|"start-basic"|"stop-mini"|"stop-basic") - --fqdn {yes,no}, -fq {yes,no} - Deployment scenario with FQDN ("yes"|"no") - --scenario {1,2}, -s {1,2} - Scenario with NRF ("1") and without NRF ("2") - - example: - python3 core-network.py --type start-mini - python3 core-network.py --type start-basic - python3 core-network.py --type stop-mini - python3 core-network.py --type start-mini --fqdn no --scenario 2 - python3 core-network.py --type start-basic --fqdn no --scenario 2 - ``` -- Before executing the script it is better to start capturing packets to see the message flow between smf <--> nrf <--> upf. The packets will be captured on **demo-oai** bridge which should be configured on the `docker-compose-host` machine. - - ```bash - (docker-compose-host)$ sudo tshark -i demo-oai - -f "not arp and not port 53 and not host archive.ubuntu.com and not host security.ubuntu.com" \ - -w /tmp/5gcn-basic-deployment-nrf.pcap - ``` - -- Explanation on the capture filter: - * `not arp` : Not capturing ARP traffic - * `not port 53` : Not capturing DNS traffic - * `not host archive.ubuntu.com and not host security.ubuntu.com` : Not capturing traffic from `oai-ext-dn` container when installing tools -- Starting the core network components, - - ```bash - (docker-compose-host)$ python3 core-network.py --type start-basic --fqdn no --scenario 1 - [2021-09-20 13:48:42,355] root:DEBUG: Starting 5gcn components... Please wait.... - Creating mysql ... done - Creating oai-nrf ... done - Creating oai-udr ... done - Creating oai-udm ... done - Creating oai-ausf ... done - Creating oai-amf ... done - Creating oai-smf ... done - Creating oai-spgwu ... done - Creating oai-ext-dn ... done - - [2021-09-20 13:49:17,198] root:DEBUG: OAI 5G Core network started, checking the health status of the containers... takes few secs.... - [2021-09-20 13:49:54,591] root:DEBUG: All components are healthy, please see below for more details.... - Name Command State Ports - ----------------------------------------------------------------------------------------- - mysql docker-entrypoint.sh mysqld Up (healthy) 3306/tcp, 33060/tcp - oai-amf /bin/bash /openair-amf/bin ... Up (healthy) 38412/sctp, 80/tcp, 9090/tcp - oai-ausf /bin/bash /openair-ausf/bi ... Up (healthy) 80/tcp - oai-ext-dn /bin/bash -c apt update; ... Up - oai-nrf /bin/bash /openair-nrf/bin ... Up (healthy) 80/tcp, 9090/tcp - oai-smf /bin/bash /openair-smf/bin ... Up (healthy) 80/tcp, 8805/udp, 9090/tcp - oai-spgwu /openair-spgwu-tiny/bin/en ... Up (healthy) 2152/udp, 8805/udp - oai-udm /bin/bash /openair-udm/bin ... Up (healthy) 80/tcp - oai-udr /bin/bash /openair-udr/bin ... Up (healthy) 80/tcp - [2021-09-20 13:49:54,591] root:DEBUG: Checking if the containers are configured.... - [2021-09-20 13:49:54,591] root:DEBUG: Checking if SMF and UPF registered with nrf core network.... - [2021-09-20 13:49:54,629] root:DEBUG: For example: oai-smf Registration with oai-nrf can be checked on this url /nnrf-nfm/v1/nf-instances?nf-type="SMF" {"_links":{"item":[{"href":"192.168.70.133"}],"self":""}}.... - [2021-09-20 13:49:54,629] root:DEBUG: SMF and UPF are registered to NRF.... - [2021-09-20 13:49:54,629] root:DEBUG: Checking if SMF is able to connect with UPF.... - [2021-09-20 13:49:54,749] root:DEBUG: UPF receiving heathbeats from SMF.... - [2021-09-20 13:49:54,749] root:DEBUG: OAI 5G Core network is configured and healthy.... - ``` - -## 8. Executing the dsTest Scenario ## - -- **Scenario Execution**: On the dsTest host run the scenario either using the dsClient GUI or command line. Below are the commands to run it using the command line. - - ```bash - (dsTest-host)$ dsClient -d 127.0.0.1 -c "source dsTestScenario.xml" - ``` -- **Verify PDN session establishment**: To check if a PDN session is properly estabilished there is an extra external data network container only for this demo purpose. The dsTest UE can be reached using this container to validate the PDN session establishment. To understand the packet flow read the next analysis section. In our settings the UE network is 12.1.1.0/24 the configuration can be seen in smf.conf and spgw_u.conf. The allocated IP address to dsTest UE can be seen in smf logs. Generally, if there is a single UE then the allocated ip address will be 12.1.1.2. - - ```bash - (docker-compose-host)$ docker exec -it oai-ext-dn ping 12.1.1.2 - 64 bytes from 12.1.1.2: icmp_seq=3 ttl=63 time=0.565 ms - 64 bytes from 12.1.1.2: icmp_seq=4 ttl=63 time=0.629 ms - 64 bytes from 12.1.1.2: icmp_seq=5 ttl=63 time=0.542 ms - 64 bytes from 12.1.1.2: icmp_seq=6 ttl=63 time=0.559 ms - ^c - ``` - -- **Stop PCAP collection**: Stop the wireshark or tshark process on the docker-compose-host. - -- **Undeploy the core network**: Before undeploying collect all the logs from each component for analysis. - - ```bash - (docker-compose-host)$ docker logs oai-amf > amf.log 2>&1 - (docker-compose-host)$ docker logs oai-smf > smf.log 2>&1 - (docker-compose-host)$ docker logs oai-nrf > nrf.log 2>&1 - (docker-compose-host)$ docker logs oai-spgwu > spgwu.log 2>&1 - (docker-compose-host)$ docker logs oai-udr > udr.log 2>&1 - (docker-compose-host)$ docker logs oai-udm > udm.log 2>&1 - (docker-compose-host)$ docker logs oai-ausf > ausf.log 2>&1 - (docker-compose-host)$ python3 core-network.py --type stop-basic --fqdn no --scenario 1 - [2021-09-20 13:52:09,345] root:DEBUG: UnDeploying OAI 5G core components.... - Stopping oai-ext-dn ... done - Stopping oai-spgwu ... done - Stopping oai-smf ... done - Stopping oai-amf ... done - Stopping oai-ausf ... done - Stopping oai-udm ... done - Stopping oai-udr ... done - Stopping mysql ... done - Stopping oai-nrf ... done - Removing oai-ext-dn ... done - Removing oai-spgwu ... done - Removing oai-smf ... done - Removing oai-amf ... done - Removing oai-ausf ... done - Removing oai-udm ... done - Removing oai-udr ... done - Removing mysql ... done - Removing oai-nrf ... done - Network demo-oai-public-net is external, skipping - - [2021-09-20 13:53:35,170] root:DEBUG: OAI 5G core components are UnDeployed.... - ``` - -## 9. Reference logs ## - - -| PCAP/LOG files for Basic w/ NRF | PCAP/LOG files for Basic w/o NRF | -|:------------------------------------------------------------------------------------------- | -------------------------------- | -| [5gcn-basic-deployment-nrf.pcap](./results/dsTest/basic-nrf/5gcn-basic-deployment-nrf.pcap) | [5gcn-basic-deployment-no-nrf.pcap](./results/dsTest/basic-no-nrf/5gcn-basic-deployment-no-nrf.pca) | -| [amf.log](./results/dsTest/basic-nrf/amf.log) | [amf.log](./results/dsTest/basic-no-nrf/amf.log) | -| [ausf.log](./results/dsTest/basic-nrf/ausf.log) | [ausf.log](./results/dsTest/basic-no-nrf/amf.log) | -| [smf.log](./results/dsTest/basic-nrf/smf.log) | [smf.log](./results/dsTest/basic-no-nrf/smf.log) | -| [nrf.log](./results/dsTest/basic-nrf/nrf.log) | | -| [spgwu.log](./results/dsTest/basic-nrf/spgwu.log) | [spgwu.log](./results/dsTest/basic-no-nrf/spgwu.log) | -| [udm.log](./results/dsTest/basic-nrf/udm.log) | [udm.log](./results/dsTest/basic-no-nrf/udm.log) | -| [udr.log](./results/dsTest/basic-nrf/udr.log) | [udr.log](./results/dsTest/basic-no-nrf/udr.log) | - - -## 10. Notes ## - -- The `oai-ext-dn` container is optional and is only required if the user wants to ping the dsTest UE. In general this container is not required except for testing purposes. -- Using the python script from above you can perform minimum `AMF, SMF, UPF (SPGWU), NRF, MYSQL` and basic `AMF, SMF, UPF (SPGWU), NRF, UDM, UDR, AUSF, MYSQL` 5g core funtional testing with `FQDN/IP` based feature along with `NRF/noNRF`. Check the configuration before using the docker compose [files](../docker-compose/). -- This tutorial can be taken as reference to test the OAI 5G core with a COTS UE. The configuration files has to be changed according to the gNB and COTS UE information should be present in the mysql database. -- Generally, in a COTS UE two PDN sessions are created by default so configure the IMS in SMF properly. Currently some parameters can not be configured via [docker-compose-basic-nrf.yaml](../docker-compose/docker-compose-basic-nrf.yaml). We recommend you directly configure them in the conf file and mount the file in the docker during run time. -- It is not necessary to use [core-network.py](../docker-compose/core-network.py) bash script, it is possible to directly deploy using `docker-compose` command -- In case you want to deploy debuggers/developers core network environment with more logs please follow [this tutorial](./DEBUG_5G_CORE.md) - - ``` - #To start the containers - docker-compose -f <file-name> up -d - #To check their health status - docker-compose -f <file-name> ps -a - #To stop the containers - docker-compose -f <file-name> down - ``` diff --git a/docs/DEPLOY_SA5G_BASIC_FQDN_DEPLOYMENT.md b/docs/DEPLOY_SA5G_BASIC_FQDN_DEPLOYMENT.md deleted file mode 100644 index fa917594080325fd5f6e7c73463755d72383dec4..0000000000000000000000000000000000000000 --- a/docs/DEPLOY_SA5G_BASIC_FQDN_DEPLOYMENT.md +++ /dev/null @@ -1,233 +0,0 @@ -<table style="border-collapse: collapse; border: none;"> - <tr style="border-collapse: collapse; border: none;"> - <td style="border-collapse: collapse; border: none;"> - <a href="http://www.openairinterface.org/"> - <img src="./images/oai_final_logo.png" alt="" border=3 height=50 width=150> - </img> - </a> - </td> - <td style="border-collapse: collapse; border: none; vertical-align: center;"> - <b><font size = "5">OpenAirInterface 5G Core Network Basic Deployment with FQDN enabled using Docker-Compose</font></b> - </td> - </tr> -</table> - - - - -**OVERVIEW** - -This tutorial will help in understanding how to deploy a `basic` OAI core network using docker-compose. - -* In this tutorial we have used [dsTest](https://www.developingsolutions.com/products/dstest-5g-core-network-testing/), a commercial paid gNB emulator. -* Though, instead of this, readers can also use `gNBsim` (an opensource gNB emulator), you can follow another tutorial for [this](./DEPLOY_SA5G_WITH_GNBSIM.md). -* Readers could also replace the RAN emulator by a real RAN, it means the `so-called dsTest Host` could be a real `gNB`. - -Please follow the tutorial step by step to create a stable working testbed. - -**Reading time: ~20mins** - -**Tutorial replication time: ~1hr** - -Note: In case readers are interested in deploying debuggers/developers core network environment with more logs please follow [this tutorial](./DEBUG_5G_CORE.md) - -**TABLE OF CONTENTS** - -1. [Basic Deployment Flavours](#1-basic-deployment-flavours) -2. [Pre-requisites](#2-pre-requisites) -3. [Network Function Container Images](#3-network-function-container-images) -4. [Configuring Host Machines](#4-configuring-host-machines) -5. [Configuring OAI 5G Core Network Functions](#5-configuring-the-oai-5g-core-network-functions) -6. [Configuring dsTest Scenario](#6-configuring-dstester-scenario) -7. [Deploying OAI 5G Core Network](#7-deploying-oai-5g-core-network) -8. [Executing dsTest Scenario](#8-executing-the-dstest-scenario) -9. [Reference Logs](#9-reference-logs) - -## 1. Basic FQDN Deployment Flavours ## - -In this tutorial we use FQDN (Fully Qualified Domain Name) feature. - -The Basic functional 5g core network supports the following scenarios: - - - Scenario I: AMF, SMF, UPF (SPGWU), NRF, UDM, UDR, AUSF, MYSQL - - Scenario II: AMF, SMF, UPF (SPGWU), UDM, UDR, AUSF, MYSQL - -## 2. Pre-requisites ## - -This section is similar to the [Section 2 in the basic-deployment](./DEPLOY_SA5G_BASIC_DS_TESTER_DEPLOYMENT.md#2-pre-requisites). - -## 3. Network Function Container Images ## - -This section is similar to the [Section 3 in the basic-deployment](./DEPLOY_SA5G_BASIC_DS_TESTER_DEPLOYMENT.md#3-network-function-container-images). - -## 4. Configuring Host Machines ## - -This section is similar to the [Section 4 in the minimalist-deployment](./DEPLOY_SA5G_MINI_DS_TESTER_DEPLOYMENT.md#4-configuring-host-machines). - -## 5. Configuring the OAI-5G Core Network Functions ## - -### 5.1. Core Network Configuration ### - -This section is similar to the [Section 5.1 in the minimalist-deployment](./DEPLOY_SA5G_MINI_DS_TESTER_DEPLOYMENT.md#51-core-network-configuration). - -### 5.2. User Subscprition Profile ### - -This section is similar to the [Section 5.2 in the minimalist-deployment](./DEPLOY_SA5G_MINI_DS_TESTER_DEPLOYMENT.md#52-user-subscprition-profile). - -## 6. Configuring DsTester Scenario ## - -This section is similar to the [Section 6 in the minimalist-deployment](./DEPLOY_SA5G_MINI_DS_TESTER_DEPLOYMENT.md#6-configuring-dstester-scenario). - -## 7. Deploying OAI 5g Core Network ## - -- The core network is deployed using a [python script](../docker-compose/core-network.py) which is a wrapper around `docker-compose` and `docker` command. -- The script informs the user when the core-network is correctly configured by checking health status of containers and connectivity between different core network components. -- To know how to use the script look for the helper menu as shown below. -- There are three parameters, which can be provided - - `--type` mandatory option to start/stop the 5g core components with minimum/basic functional architecture. - - `--fqdn` and `--scenario` are optional and if not provided by default it is considered as use fqdn feature with nrf component. -- In case if there is a problem in using the script then use docker-compose manually read the [notes section](#10-notes) - - ```bash - (docker-compose-host)$ pwd - /home/<docker-compose-host>/oai/oai-cn-fed/docker-compose - (docker-compose-host)$ python3 core-network.py --help - - usage: core-network.py [-h] --type {start-mini,start-basic,stop-mini,stop-basic} [--fqdn {yes,no}] [--scenario {1,2}] - - OAI 5G CORE NETWORK DEPLOY - - optional arguments: - -h, --help show this help message and exit - --type {start-mini,start-basic,stop-mini,stop-basic}, -t {start-mini,start-basic,stop-mini,stop-basic} - Functional type of 5g core network ("start-mini"|"start-basic"|"stop-mini"|"stop-basic") - --fqdn {yes,no}, -fq {yes,no} - Deployment scenario with FQDN ("yes"|"no") - --scenario {1,2}, -s {1,2} - Scenario with NRF ("1") and without NRF ("2") - - example: - python3 core-network.py --type start-mini - python3 core-network.py --type start-basic - python3 core-network.py --type stop-mini - python3 core-network.py --type start-mini --fqdn no --scenario 2 - python3 core-network.py --type start-basic --fqdn no --scenario 2 - ``` -- Before executing the script it is better to start capturing packets to see the message flow between smf <--> nrf <--> upf. The packets will be captured on **demo-oai** bridge which should be configured on the `docker-compose-host` machine. - - ```bash - (docker-compose-host)$ sudo tshark -i demo-oai - -f "not arp and not port 53 and not host archive.ubuntu.com and not host security.ubuntu.com" \ - -w /tmp/5gcn-basic-deployment-fqdn.pcap - ``` - -- Explanation on the capture filter: - * `not arp` : Not capturing ARP traffic - * `not port 53` : Not capturing DNS traffic - * `not host archive.ubuntu.com and not host security.ubuntu.com` : Not capturing traffic from `oai-ext-dn` container when installing tools -- Starting the core network components, - - ```bash - (docker-compose-host)$ python3 core-network.py --type start-basic --fqdn yes --scenario 1 - [2021-09-20 14:14:50,537] root:DEBUG: Starting 5gcn components... Please wait.... - Creating mysql ... done - Creating oai-nrf ... done - Creating oai-udr ... done - Creating oai-udm ... done - Creating oai-ausf ... done - Creating oai-amf ... done - Creating oai-smf ... done - Creating oai-spgwu ... done - Creating oai-ext-dn ... done - - [2021-09-20 14:15:25,368] root:DEBUG: OAI 5G Core network started, checking the health status of the containers... takes few secs.... - [2021-09-20 14:16:02,726] root:DEBUG: All components are healthy, please see below for more details.... - Name Command State Ports - ----------------------------------------------------------------------------------------- - mysql docker-entrypoint.sh mysqld Up (healthy) 3306/tcp, 33060/tcp - oai-amf /bin/bash /openair-amf/bin ... Up (healthy) 38412/sctp, 80/tcp, 9090/tcp - oai-ausf /bin/bash /openair-ausf/bi ... Up (healthy) 80/tcp - oai-ext-dn /bin/bash -c apt update; ... Up - oai-nrf /bin/bash /openair-nrf/bin ... Up (healthy) 80/tcp, 9090/tcp - oai-smf /bin/bash /openair-smf/bin ... Up (healthy) 80/tcp, 8805/udp, 9090/tcp - oai-spgwu /openair-spgwu-tiny/bin/en ... Up (healthy) 2152/udp, 8805/udp - oai-udm /bin/bash /openair-udm/bin ... Up (healthy) 80/tcp - oai-udr /bin/bash /openair-udr/bin ... Up (healthy) 80/tcp - [2021-09-20 14:16:02,727] root:DEBUG: Checking if the containers are configured.... - [2021-09-20 14:16:02,727] root:DEBUG: Checking if SMF and UPF registered with nrf core network.... - [2021-09-20 14:16:02,762] root:DEBUG: For example: oai-smf Registration with oai-nrf can be checked on this url /nnrf-nfm/v1/nf-instances?nf-type="SMF" {"_links":{"item":[{"href":"192.168.70.133"}],"self":""}}.... - [2021-09-20 14:16:02,763] root:DEBUG: SMF and UPF are registered to NRF.... - [2021-09-20 14:16:02,763] root:DEBUG: Checking if SMF is able to connect with UPF.... - [2021-09-20 14:16:02,878] root:DEBUG: UPF receiving heathbeats from SMF.... - [2021-09-20 14:16:02,878] root:DEBUG: OAI 5G Core network is configured and healthy.... - ``` - -## 8. Executing the dsTest Scenario ## - -- **Scenario Execution**: On the dsTest host run the scenario either using the dsClient GUI or command line. Below are the commands to run it using the command line. - - ```bash - (dsTest-host)$ dsClient -d 127.0.0.1 -c "source dsTestScenario.xml" - ``` -- **Verify PDN session establishment**: To check if a PDN session is properly estabilished there is an extra external data network container only for this demo purpose. The dsTest UE can be reached using this container to validate the PDN session establishment. To understand the packet flow read the next analysis section. In our settings the UE network is 12.1.1.0/24 the configuration can be seen in smf.conf and spgw_u.conf. The allocated IP address to dsTest UE can be seen in smf logs. Generally, if there is a single UE then the allocated ip address will be 12.1.1.2. - - ```bash - (docker-compose-host)$ docker exec -it oai-ext-dn ping 12.1.1.2 - 64 bytes from 12.1.1.2: icmp_seq=3 ttl=63 time=0.565 ms - 64 bytes from 12.1.1.2: icmp_seq=4 ttl=63 time=0.629 ms - 64 bytes from 12.1.1.2: icmp_seq=5 ttl=63 time=0.542 ms - 64 bytes from 12.1.1.2: icmp_seq=6 ttl=63 time=0.559 ms - ^c - ``` - -- **Stop PCAP collection**: Stop the wireshark or tshark process on the docker-compose-host. - -- **Undeploy the core network**: Before undeploying collect all the logs from each component for analysis. - - ```bash - (docker-compose-host)$ docker logs oai-amf > amf.log 2>&1 - (docker-compose-host)$ docker logs oai-smf > smf.log 2>&1 - (docker-compose-host)$ docker logs oai-nrf > nrf.log 2>&1 - (docker-compose-host)$ docker logs oai-spgwu > spgwu.log 2>&1 - (docker-compose-host)$ docker logs oai-udr > udr.log 2>&1 - (docker-compose-host)$ docker logs oai-udm > udm.log 2>&1 - (docker-compose-host)$ docker logs oai-ausf > ausf.log 2>&1 - (docker-compose-host)$ python3 core-network.py --type stop-basic --fqdn yes --scenario 1 - [2021-09-20 14:18:26,489] root:DEBUG: UnDeploying OAI 5G core components.... - Stopping oai-ext-dn ... done - Stopping oai-spgwu ... done - Stopping oai-smf ... done - Stopping oai-amf ... done - Stopping oai-ausf ... done - Stopping oai-udm ... done - Stopping oai-udr ... done - Stopping oai-nrf ... done - Stopping mysql ... done - Removing oai-ext-dn ... done - Removing oai-spgwu ... done - Removing oai-smf ... done - Removing oai-amf ... done - Removing oai-ausf ... done - Removing oai-udm ... done - Removing oai-udr ... done - Removing oai-nrf ... done - Removing mysql ... done - Network demo-oai-public-net is external, skipping - - [2021-09-20 14:19:52,044] root:DEBUG: OAI 5G core components are UnDeployed.... - ``` - -## 9. Reference logs ## - - -| PCAP/LOG files for Basic w/ NRF | -|:---------------------------------------------------------------------------------------------- | -| [5gcn-basic-deployment-fqdn.pcap](./results/dsTest/basic-fqdn/5gcn-basic-deployment-fqdn.pcap) | -| [amf.log](./results/dsTest/basic-fqdn/amf.log) | -| [ausf.log](./results/dsTest/basic-fqdn/ausf.log) | -| [smf.log](./results/dsTest/basic-fqdn/smf.log) | -| [nrf.log](./results/dsTest/basic-fqdn/nrf.log) | -| [spgwu.log](./results/dsTest/basic-fqdn/spgwu.log) | -| [udm.log](./results/dsTest/basic-fqdn/udm.log) | -| [udr.log](./results/dsTest/basic-fqdn/udr.log) | - diff --git a/docs/DEPLOY_SA5G_BASIC_STATIC_UE_IP.md b/docs/DEPLOY_SA5G_BASIC_STATIC_UE_IP.md index a4514dc53597d16982ad5778140ddbc523781fbd..020a98a437789d2ba1b584eed0ceda1e2820fe32 100644 --- a/docs/DEPLOY_SA5G_BASIC_STATIC_UE_IP.md +++ b/docs/DEPLOY_SA5G_BASIC_STATIC_UE_IP.md @@ -13,7 +13,7 @@ </table> - + This tutorial shows how to configure OAI 5G core for providing static UE ip-addresses based on UE subscription data. In SMF configuration there is a parameter `USE_LOCAL_SUBSCRIPTION_INFO` which forces SMF to use local subscription information. For example using the DNN parameters (name,type and ip-address range) as defined in the configuration file. But all this information can be moved to mysql database and SMF can fetch it via communicating with UDM <--> UDR <--> MySql. @@ -25,13 +25,14 @@ In this tutorial you will learn how to change this parameter and configure an ip Please follow the tutorial step by step to create a stable working testbed. -**Reading time**: ~ 15 mins +**Reading time**: ~ 20 mins **Tutorial replication time**: ~ 40 mins **Note**: - The commands mentioned in the document assume that your present working directory is `./docker-compose`. Make sure in the terminal in which you copy and paste the commands or write the tutorial commands as `pwd` as `./docker-compose`. -- Best practice open this markdown file without favourite editor or online on gitlab and open a terminal separately +- Best practice open this markdown file with your favourite editor or online on gitlab and open a terminal separately +- Before reading this tutorial read this [one](./DEPLOY_SA5G_BASIC_DEPLOYMENT.md) **TABLE OF CONTENTS** @@ -109,7 +110,7 @@ In the previous tutorial we explain how to deploy the core network using our [py As a first timer, we recommend to first run without any PCAP capture. ``` console -docker-compose-host $: python3 core-network.py --type start-basic --fqdn yes --scenario 1 +docker-compose-host $: python3 core-network.py --type start-basic --scenario 1 ``` For CI purposes, we are deploying with an automated PCAP capture on the docker network. @@ -117,7 +118,7 @@ For CI purposes, we are deploying with an automated PCAP capture on the docker n **REMEMBER: if you are planning to run your CN5G deployment for a long time, the PCAP file can become huge!** ``` shell -docker-compose-host $: python3 core-network.py --type start-basic --fqdn yes --scenario 1 --capture /tmp/oai/static-ue-ip/static-ue-ip.pcap +docker-compose-host $: python3 core-network.py --type start-basic --scenario 1 --capture /tmp/oai/static-ue-ip/static-ue-ip.pcap [2022-02-08 15:49:14,903] root:DEBUG: Starting 5gcn components... Please wait.... [2022-02-08 15:49:14,903] root:DEBUG: docker-compose -f docker-compose-basic-nrf.yaml up -d mysql Creating network "demo-oai-public-net" with driver "bridge" @@ -173,13 +174,7 @@ oai-udr /bin/bash /openair-udr/bin ... Up (healthy) 80/tcp - Without nrf scenario ``` console -docker-compose-host $: python3 core-network.py --type start-basic --fqdn no --scenario 1 -``` - -- Start capturing packets on **demo-oai** bridge on another terminal. In case you don't have enough permission, please use `sudo`: - -``` console -docker-compose-host $: tshark -i demo-oai -f -w /tmp/oai/static-ue-ip/capture.pcap & +docker-compose-host $: python3 core-network.py --type start-basic --scenario 2 ``` @@ -298,15 +293,32 @@ Removing network demo-oai-public-net ## 8. Reference logs -| PCAP and Logs | -|:--------------------------------------------------- | +| PCAP and Logs | +|:-------------------| | [capture.pcap](./results/static-ue-ip/capture.pcap) | -| [amf.log](./results/static-ue-ip/amf.log) | -| [smf.log](./results/static-ue-ip/smf.log) | -| [nrf.log](./results/static-ue-ip/nrf.log) | -| [spgwu.log](./results/static-ue-ip/spgwu.log) | -| [udm.log](./results/static-ue-ip/udm.log) | -| [udr.log](./results/static-ue-ip/udr.log) | -| [ausf.log](./results/static-ue-ip/ausf.log) | - - +| [amf.log](./results/static-ue-ip/amf.log) | +| [smf.log](./results/static-ue-ip/smf.log) | +| [nrf.log](./results/static-ue-ip/nrf.log) | +| [spgwu.log](./results/static-ue-ip/spgwu.log) | +| [udm.log](./results/static-ue-ip/udm.log) | +| [udr.log](./results/static-ue-ip/udr.log) | +| [ausf.log](./results/static-ue-ip/ausf.log) | + + +## 9. Notes + +- The `oai-ext-dn` container is optional and is only required if the user wants to ping from the UE. In general this container is not required except for testing purposes. +- Using the python script from above you can perform minimum `AMF, SMF, UPF (SPGWU), NRF, MYSQL` and basic `AMF, SMF, UPF (SPGWU), NRF, UDM, UDR, AUSF, MYSQL` 5g core funtional testing with `FQDN/IP` based feature along with `NRF/noNRF`. Check the configuration before using the docker compose [files](../docker-compose/). +- This tutorial can be taken as reference to test the OAI 5G core with a COTS UE. The configuration files has to be changed according to the gNB and COTS UE information should be present in the mysql database. +- Generally, in a COTS UE two PDN sessions are created by default so configure the IMS in SMF properly. Currently some parameters can not be configured via [docker-compose-basic-nrf.yaml](../docker-compose/docker-compose-basic-nrf.yaml). We recommend you directly configure them in the conf file and mount the file in the docker during run time. +- It is not necessary to use [core-network.py](../docker-compose/core-network.py) bash script, it is possible to directly deploy using `docker-compose` command +- In case you want to deploy debuggers/developers core network environment with more logs please follow [this tutorial](./DEBUG_5G_CORE.md) + +``` bash +#To start the containers +docker-compose-host $: docker-compose -f <file-name> up -d +#To check their health status and wait till the time they are healthy, you ctrl + c to exit watch command +docker-compose-host $: watch docker-compose -f <file-name> ps -a +#To stop the containers +docker-compose-host $: docker-compose -f <file-name> down -t 0 +``` diff --git a/docs/DEPLOY_SA5G_MINI_DS_TESTER_DEPLOYMENT.md b/docs/DEPLOY_SA5G_MINI_DEPLOYMENT.md similarity index 95% rename from docs/DEPLOY_SA5G_MINI_DS_TESTER_DEPLOYMENT.md rename to docs/DEPLOY_SA5G_MINI_DEPLOYMENT.md index 704d456e6a807c2cf367043fa62e5395d9aa4acb..cf47ca5028a0020437737cea206823fe3f024f04 100644 --- a/docs/DEPLOY_SA5G_MINI_DS_TESTER_DEPLOYMENT.md +++ b/docs/DEPLOY_SA5G_MINI_DEPLOYMENT.md @@ -13,17 +13,13 @@ </table> - + **OVERVIEW** This tutorial will help in understanding how to deploy a `minimalist` OAI core network using docker-compose. -* In this tutorial we have used [dsTest](https://www.developingsolutions.com/products/dstest-5g-core-network-testing/), a commercial paid gNB emulator. -* Though, instead of this, readers can also use `gNBsim` (an opensource gNB emulator), you can follow another tutorial for [this](./DEPLOY_SA5G_WITH_GNBSIM.md). -* Readers could also replace the RAN emulator by a real RAN, it means the `so-called dsTest Host` could be a real `gNB`. - Please follow the tutorial step by step to create a stable working testbed. **Reading time: ~20mins** @@ -37,12 +33,9 @@ Please follow the tutorial step by step to create a stable working testbed. 3. [Network Function Container Images](#2-network-function-container-images) 4. [Configuring Host Machines](#4-configuring-host-machines) 5. [Configuring OAI 5G Core Network Functions](#5-configuring-the-oai-5g-core-network-functions) -6. [Configuring dsTest Scenario](#6-configuring-dstester-scenario) 7. [Deploying OAI 5G Core Network](#7-deploying-oai-5g-core-network) -8. [Executing dsTest Scenario](#8-executing-the-dstest-scenario) -9. [Analysing Scenario Results](#9-analysing-the-scenario-results) -10. [Demo Video](#10-demo-video) -11. [Notes](#11-notes) +8. [Demo Video](#8-demo-video) +9. [Notes](#11-notes) ## 1. Minimalist Deployment Flavours ## @@ -64,7 +57,6 @@ The requried softwares and their respected versions are listed below. To replica | docker-compose | 1.27.4, build 40524192 | | Host operating system | Ubuntu 18.04.4 LTS | | Container operating system | Ubuntu 18.04 | -| dsTest (Licensed) | 5.5 | | tshark | 3.4.4 (Git commit c33f6306cbb2) | | wireshark | 3.4.4 (Git commit c33f6306cbb2) | @@ -105,11 +97,11 @@ To know how to configure the machine with the above requirements vist [pre-requi | CNF Name | Branch Name | Tag | Ubuntu 18.04 | RHEL8 (UBI8) | | ----------- | ----------- | -------- | ------------ | ----------------| | AMF | `master` | `v1.3.0` | X | X | -| SMF | `master` | `v1.3.0` | X | X | -| NRF | `master` | `v1.3.0` | X | X | -| SPGW-U-TINY | `master` | `v1.1.3` | X | X | +| SMF | `master` | `v1.4.0` | X | X | +| NRF | `master` | `v1.4.0` | X | X | +| SPGW-U-TINY | `master` | `v1.3.0` | X | X | -- In case readers are interested in making images using different branch then **they have to build images from scratch they can't use the docker-hub images**. +- In case readers are interested in using different branch then develop or releases (example v1.4.0) **they have to build images from scratch they can't use the docker-hub images**. ## 4. Configuring Host Machines ## diff --git a/docs/DEPLOY_SA5G_WITH_GNBSIM.md b/docs/DEPLOY_SA5G_WITH_GNBSIM.md index 3a45e30b9ec2c7cc44a9a828a2d564941c2955f0..f4872255d94d23d484b0ee0fc2bbab2f49d52607 100644 --- a/docs/DEPLOY_SA5G_WITH_GNBSIM.md +++ b/docs/DEPLOY_SA5G_WITH_GNBSIM.md @@ -16,9 +16,9 @@  -**Reading time: ~ 30mins** +**Reading time: ~ 20mins** -**Tutorial replication time: ~ 1h30mins** +**Tutorial replication time: ~ 40mins** Note: In case readers are interested in deploying debuggers/developers core network environment with more logs please follow [this tutorial](./DEBUG_5G_CORE.md) @@ -39,7 +39,7 @@ Note: In case readers are interested in deploying debuggers/developers core netw | CNF Name | Branch Name | Commit at time of writing | Ubuntu 18.04 | RHEL8 | | ----------- |:----------------------- | ------------------------------------------ | ------------ | ---------------| -| AMF | `master` | `82ca64fe8d79dbadbb1a495124ee26352f81bd7a` | X | X | +| AMF | `master` | `` | X | X | | SMF | `master` | `0dba68d6a01e1dad050f47437647f62d40acaec6` | X | X | | NRF | `master` | `0e877cb5b80a9c74fa6abca60b95e2d3d22f7a52` | X | X | | SPGW-U-TINY | `master` | `b628036d2e6060da8ba77c5e4cdde35bf18a62a5` | X | X | @@ -84,7 +84,7 @@ docker-compose-host $: chmod 777 /tmp/oai/mini-gnbsim As a first timer, we recommend to first run without any PCAP capture. ``` console -docker-compose-host $: python3 ./core-network.py --type start-mini --fqdn no --scenario 1 +docker-compose-host $: python3 ./core-network.py --type start-mini --scenario 1 ... [2021-09-14 16:44:47,176] root:DEBUG: OAI 5G Core network is configured and healthy.... ``` @@ -94,7 +94,7 @@ For CI purposes, we are deploying with an automated PCAP capture on the docker n **REMEMBER: if you are planning to run your CN5G deployment for a long time, the PCAP file can become huge!** ``` shell -docker-compose-host $: python3 ./core-network.py --type start-mini --fqdn no --scenario 1 --capture /tmp/oai/mini-gnbsim/mini-gnbsim.pcap +docker-compose-host $: python3 ./core-network.py --type start-mini --scenario 1 --capture /tmp/oai/mini-gnbsim/mini-gnbsim.pcap ``` More details in [section 7 of the `minimalist` tutorial](./DEPLOY_SA5G_MINI_DS_TESTER_DEPLOYMENT.md#7-deploying-oai-5g-core-network). diff --git a/docs/DEPLOY_SA5G_WITH_UERANSIM.md b/docs/DEPLOY_SA5G_WITH_UERANSIM.md index 881acac6b473209ad72c80dfffc0fd76389149ac..fccecb2fd4aa6ee8aae80d0cfd05972e6e569dde 100644 --- a/docs/DEPLOY_SA5G_WITH_UERANSIM.md +++ b/docs/DEPLOY_SA5G_WITH_UERANSIM.md @@ -51,7 +51,7 @@ This tutorial is an extension of a previous tutorial: [testing a `basic` deploym Moreover, there are various other opensource gnb/ue simulator tools that are available for SA5G test. In this tutorial, we use an opensource simulator tool called `UERANSIM`. With the help of `UERANSIM` tool, we can perform very basic SA5G test by simulating one gnb and multiple ues. -##### About UERANSIM - +##### About UERANSIM - ##### [UERANSIM](https://github.com/aligungr/UERANSIM) is the open-source state-of-the-art 5G UE and RAN (gNodeB) implementation. It can be considered as a 5G mobile phone and a base station in basic terms. The project can be used for testing 5G Core Network and studying 5G System. UERANSIM can simulate multiple UEs and it also aims to simulate radio. Moreover for detailed feature set, please refer its [official page.](https://github.com/aligungr/UERANSIM/wiki/Feature-Set) @@ -62,10 +62,10 @@ Let's begin !! we did for dsTest-host. * Before we proceed further for end-to-end SA5G test, make sure you have healthy docker services for OAI cn5g -#### NOTE: #### +#### NOTE: #### UERANSIM currently does not support integraty and ciphering algorithm NIA0, NEA0 repectively. Hence we have to update AMF config in the docker-compose as below - -##### IMPORTANT: Add following parameters in oai-amf service of docker-compose, before deploying core network. +##### IMPORTANT: Add following parameters in oai-amf service of docker-compose, before deploying core network. ##### ```bash - INT_ALGO_LIST=["NIA1" , "NIA2"] @@ -290,7 +290,7 @@ iperf Done. Here we try some scaling test with ueransim. There are additional IMSIs added into database (208950000000031-208950000000131). Now we register 100 UEs using ueransim. -#### Note: We have to update `NUMBER_OF_UE` parameter in docker-compose of ueransim. +#### Note: We have to update `NUMBER_OF_UE` parameter in docker-compose of ueransim. #### ```bash NUMBER_OF_UE=100 ``` diff --git a/docs/DEPLOY_SA5G_WITH_VPP_UPF.md b/docs/DEPLOY_SA5G_WITH_VPP_UPF.md index 8462c213aba0574e7856faa0bca6c48b04ef2e82..cfa4b19d61d93eb52d5c27f208fb24353dc034ad 100644 --- a/docs/DEPLOY_SA5G_WITH_VPP_UPF.md +++ b/docs/DEPLOY_SA5G_WITH_VPP_UPF.md @@ -37,13 +37,13 @@ You can also retrieve the images from `docker-hub`. See [Retrieving images](./RE | CNF Name | Branch Name | Tag used at time of writing | Ubuntu 18.04 | RHEL8 | | ----------- |:-------------- | ----------------------------- | ------------ | ---------------| -| AMF | `master` | `v1.2.1` | X | X | -| AUSF | `master` | `v1.2.1` | X | X | -| NRF | `master` | `v1.2.1` | X | X | -| SMF | `master` | `v1.2.1` | X | X | -| UDR | `master` | `v1.2.1` | X | X | -| UDM | `master` | `v1.2.1` | X | X | -| UPF-VPP | `master` | `v1.2.1` | X | X | +| AMF | `master` | `v1.4.0` | X | X | +| AUSF | `master` | `v1.4.0` | X | X | +| NRF | `master` | `v1.4.0` | X | X | +| SMF | `master` | `v1.4.0` | X | X | +| UDR | `master` | `v1.4.0` | X | X | +| UDM | `master` | `v1.4.0` | X | X | +| UPF-VPP | `master` | `v1.4.0` | X | X | <br/> @@ -103,8 +103,6 @@ optional arguments: Functional type of 5g core network ("start- mini"|"start-basic"|"start-basic-vpp"|"stop- mini"|"stop-basic"|"stop-basic-vpp") - --fqdn {yes,no}, -fq {yes,no} - Deployment scenario with FQDN ("yes"|"no") --scenario {1,2}, -s {1,2} Scenario with NRF ("1") and without NRF ("2") --capture CAPTURE, -c CAPTURE @@ -115,8 +113,8 @@ example: python3 core-network.py --type start-basic python3 core-network.py --type start-basic-vpp python3 core-network.py --type stop-mini - python3 core-network.py --type start-mini --fqdn no --scenario 2 - python3 core-network.py --type start-basic --fqdn no --scenario 2 + python3 core-network.py --type start-mini --scenario 2 + python3 core-network.py --type start-basic --scenario 2 ``` @@ -129,7 +127,7 @@ For the moment, `FQDN` shall be set to `no`. As a first-timer, we recommend that you first deploy without any PCAP capture. We also recommend no capture if you plan to run your CN5G deployment for a long time. ``` console -docker-compose-host $: python3 ./core-network.py --type start-basic-vpp --fqdn no --scenario 1 +docker-compose-host $: python3 ./core-network.py --type start-basic-vpp --scenario 1 ``` For CI purposes, we are deploying with an automated PCAP capture on the docker networks. @@ -137,7 +135,7 @@ For CI purposes, we are deploying with an automated PCAP capture on the docker n **REMEMBER: if you are planning to run your CN5G deployment for a long time, the PCAP file can become huge!** ``` shell -docker-compose-host $: python3 ./core-network.py --type start-basic-vpp --fqdn no --scenario 1 --capture /tmp/oai/vpp-upf-gnbsim/vpp-upf-gnbsim.pcap +docker-compose-host $: python3 ./core-network.py --type start-basic-vpp --scenario 1 --capture /tmp/oai/vpp-upf-gnbsim/vpp-upf-gnbsim.pcap [2022-02-08 16:18:19,328] root:DEBUG: Starting 5gcn components... Please wait.... [2022-02-08 16:18:19,328] root:DEBUG: docker-compose -f docker-compose-basic-vpp-nrf.yaml up -d mysql Creating network "oai-public-cp" with the default driver @@ -273,7 +271,7 @@ $ docker logs oai-smf ... ``` -## 6. Stimuli with a RAN emulator +## 6. Simulate with a RAN emulator ### 6.1. Test with Gnbsim @@ -453,7 +451,7 @@ Network oai-public-access is external, skipping ### 8.2. Undeploy the Core Network ``` shell -docker-compose-host $: python3 ./core-network.py --type stop-basic-vpp --fqdn no --scenario 1 +docker-compose-host $: python3 ./core-network.py --type stop-basic-vpp --scenario 1 [2022-02-08 16:21:39,317] root:DEBUG: UnDeploying OAI 5G core components.... [2022-02-08 16:21:39,317] root:DEBUG: docker-compose -f docker-compose-basic-vpp-nrf.yaml down Stopping oai-smf ... done diff --git a/docs/dsTestScenarios/dsTestScenario.xml b/docs/dsTestScenarios/dsTestScenario.xml deleted file mode 100644 index e465a0f3489fbf2a544e05804c82a8772a146cc2..0000000000000000000000000000000000000000 --- a/docs/dsTestScenarios/dsTestScenario.xml +++ /dev/null @@ -1,235 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<dst:devsol xmlns:dst="http://www.developingsolutions.com/schema/dsTest" test_name="Local Library/SAGAR_docker-compose.dsx"> -<!-- XML generated by dsClientv5.5.20201109 on 03/17/2021 18:28:49 using dsTest schema v5.5.20210129 --> - <config> - <nodes> - <spr name="spr_gnb"> - <auto_start>true</auto_start> - <subscriber_database count="1" name="gnb_subs"> - <subscriber_profiles> - <access_profile name="access_profile"> - <new_radio_128_nea0_encryption>true</new_radio_128_nea0_encryption> - <new_radio_128_nia1_integrity>true</new_radio_128_nia1_integrity> - <requested_nssai> - <s_nssai> - <sst>222</sst> - <sd>123</sd> - </s_nssai> - <s_nssai> - <sst>75</sst> - <sd>2</sd> - </s_nssai> - </requested_nssai> - <ssc_mode>1</ssc_mode> - </access_profile> - <subscription_profile name="subscription_profile"> - <pdu_config> - <context_id>34</context_id> - <type>IPv4</type> - <dnn>default</dnn> - <s_nssai> - <sst>222</sst> - <sd>123</sd> - </s_nssai> - <up_transport_address>172.10.5.1</up_transport_address> - </pdu_config> - </subscription_profile> - <user_data_profile name="user_data_profile_1"> - <delay>500</delay> - <basic_data name="basic_data"> - <dest_ip>192.68.70.135</dest_ip> - <protocol>UDP</protocol> - <dport>5001</dport> - <sport>5001</sport> - <size>1024</size> - <rate>1</rate> - <auto_start>true</auto_start> - <auto_stop>500</auto_stop> - </basic_data> - </user_data_profile> - <SmartProfile name="SmartProfile"> - <SmartEvents> - <states> - <state start_point="133.6,81.6" width="100.0" height="60.0">idle</state> - <state start_point="366.1,81.6" width="100.0" height="60.0">pdu_setup</state> - <state start_point="510.1,193.6" width="100.0" height="60.0">pdu_delete</state> - <state start_point="381.6,337.6" width="100.0" height="60.0">detach</state> - <state start_point="157.6,341.6" width="100.0" height="60.0">ending</state> - </states> - <event_handlers> - <event_handler start_point="144.1,82.1" end_point="224.1,82.1" height="-68"> - <current_state>idle</current_state> - <transaction_start/> - <action> - <app>n2</app> - <event>registration</event> - <node>gnb_1</node> - </action> - </event_handler> - <event_handler start_point="234.1,112.1" end_point="366.6,112.1" height="-92"> - <current_state>idle</current_state> - <event_received app="n2" event="registration"/> - <next_state>pdu_setup</next_state> - <timer>2000</timer> - </event_handler> - <event_handler start_point="376.6,82.1" end_point="456.6,82.1" height="-92"> - <current_state>pdu_setup</current_state> - <timeout/> - <action> - <app>n2</app> - <event>pdu_session_establish</event> - <node>gnb_1</node> - <dnn>carrier.com</dnn> - </action> - </event_handler> - <event_handler start_point="466.6,112.1" end_point="560.6,194.1" height="-72"> - <current_state>pdu_setup</current_state> - <event_received app="n2" event="pdu_session_establish"/> - <next_state>pdu_delete</next_state> - <timer>30000</timer> - </event_handler> - <event_handler start_point="610.6,204.1" end_point="610.6,244.1" height="68"> - <current_state>pdu_delete</current_state> - <timeout/> - <action> - <app>n2</app> - <event>pdu_session_release</event> - <node>gnb_1</node> - <dnn>default</dnn> - </action> - </event_handler> - <event_handler start_point="560.6,254.1" end_point="482.1,368.1" height="-92"> - <current_state>pdu_delete</current_state> - <event_received app="n2" event="pdu_session_release"/> - <next_state>detach</next_state> - <timer>2000</timer> - </event_handler> - <event_handler start_point="382.1,368.1" end_point="258.1,372.1" height="-68"> - <current_state>detach</current_state> - <timeout/> - <action> - <app>n2</app> - <event>deregistration</event> - <node>gnb_1</node> - </action> - <next_state>ending</next_state> - </event_handler> - <event_handler start_point="208.1,342.1" end_point="184.1,142.1" height="-52"> - <current_state>ending</current_state> - <event_received app="n2" event="deregistration"/> - <transaction_complete/> - </event_handler> - <event_handler start_point="116.4,286.0" end_point="134.1,132.1" height="-72"> - <current_state>ANY</current_state> - <error/> - <transaction_failed/> - </event_handler> - </event_handlers> - </SmartEvents> - </SmartProfile> - </subscriber_profiles> - <subscriber_group start="1" end="1" name="subscriber_group"> - <group_profiles> - <access_profile>access_profile</access_profile> - <subscription_profile>subscription_profile</subscription_profile> - <user_data_profile>user_data_profile_1</user_data_profile> - <SmartProfile>SmartProfile</SmartProfile> - </group_profiles> - <identities> - <imsi>208950000000031</imsi> - <imei>55000000000001</imei> - <key>0x0C0A34601D4F07677303652C0462535B</key> - <opc>0x63bfa50ee6523365ff14c1f45f88737d</opc> - </identities> - <dynamic_information> - <sqn>0x40</sqn> - <vplmn>431-265</vplmn> - <cell_id>1485</cell_id> - </dynamic_information> - </subscriber_group> - </subscriber_database> - </spr> - <gnb name="gnb_1"> - <auto_start>true</auto_start> - <n2> - <interface name="interface_1" native="true"> - <sctp> - <ip_address>192.168.18.184</ip_address> - <dest_ip_address>192.168.70.132</dest_ip_address> - </sctp> - <user_socket> - <ip_address>192.168.18.184</ip_address> - </user_socket> - </interface> - <user_data> - <basic_data name="basic_data"/> - </user_data> - </n2> - <mcc>208</mcc> - <mnc>95</mnc> - <node_name>gnb-1</node_name> - <global_gnb_id>1048575</global_gnb_id> - <default_paging_drx>v32</default_paging_drx> - <supported_ta> - <tac>0xa000</tac> - <bplmn> - <mcc>208</mcc> - <mnc>95</mnc> - <slice_support_item> - <nssai_sst>222</nssai_sst> - <nssai_sd>123</nssai_sd> - </slice_support_item> - <slice_support_item> - <nssai_sst>0x27</nssai_sst> - <nssai_sd>0x385382</nssai_sd> - </slice_support_item> - </bplmn> - <bplmn> - <mcc>207</mcc> - <mnc>54</mnc> - <slice_support_item> - <nssai_sst>0x10</nssai_sst> - <nssai_sd>0x583922</nssai_sd> - </slice_support_item> - </bplmn> - </supported_ta> - <supported_ta> - <tac>0xa001</tac> - <bplmn> - <mcc>202</mcc> - <mnc>100</mnc> - <slice_support_item> - <nssai_sst>0x23</nssai_sst> - <nssai_sd>0x321236</nssai_sd> - </slice_support_item> - </bplmn> - <bplmn> - <mcc>203</mcc> - <mnc>001</mnc> - <slice_support_item> - <nssai_sst>0xFF</nssai_sst> - <nssai_sd>0x123483</nssai_sd> - </slice_support_item> - </bplmn> - </supported_ta> - <subscriber_database name="gnb_subs"/> - </gnb> - </nodes> - </config> - <command> - <wait>1000</wait> - </command> - <command> - <spr name="spr_gnb"> - <action> - <rate>1</rate> - <cycle>1</cycle> - <start>1</start> - <end>1</end> - <ready>gnb_1</ready> - <app>SmartEvents</app> - <event>start</event> - </action> - </spr> - </command> -</dst:devsol> diff --git a/docs/images/docker-compose/5gCN-basic-withue.jpg b/docs/images/docker-compose/5gCN-basic-withue.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ed6a2886e21b82bbb48f5afa904a6351ec2427d8 Binary files /dev/null and b/docs/images/docker-compose/5gCN-basic-withue.jpg differ diff --git a/docs/images/docker-compose/5gCN-basic.jpg b/docs/images/docker-compose/5gCN-basic.jpg index 4c7be05d558807fea5ead8e7fd03a92add521a4f..5bda05ca8bcde4eac631e8a38868f49ab17bc7ac 100644 Binary files a/docs/images/docker-compose/5gCN-basic.jpg and b/docs/images/docker-compose/5gCN-basic.jpg differ