Compare commits
	
		
			17 Commits
		
	
	
		
			improve_5g
			...
			roaming
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					fbf91ae624 | ||
| 
						 | 
					0ea151e67c | ||
| 
						 | 
					b3e9dad6d8 | ||
| 
						 | 
					b23582ecfd | ||
| 
						 | 
					d3dad64a28 | ||
| 
						 | 
					6805d68581 | ||
| 
						 | 
					9c17ece29a | ||
| 
						 | 
					82aad4e2bd | ||
| 
						 | 
					c0680a40b9 | ||
| 
						 | 
					5fb6af3b3d | ||
| 
						 | 
					ebee79f4e3 | ||
| 
						 | 
					b52e7e8e61 | ||
| 
						 | 
					aa78b74f0b | ||
| 
						 | 
					a6d7335043 | ||
| 
						 | 
					9caadf48cf | ||
| 
						 | 
					bf684b75c4 | ||
| 
						 | 
					75bb5d1b21 | 
							
								
								
									
										10
									
								
								.env
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								.env
									
									
									
									
									
								
							@@ -4,8 +4,12 @@
 | 
			
		||||
MCC=001
 | 
			
		||||
MNC=01
 | 
			
		||||
 | 
			
		||||
MCC_R=001
 | 
			
		||||
MNC_R=03
 | 
			
		||||
 | 
			
		||||
TEST_NETWORK=172.22.0.0/24
 | 
			
		||||
DOCKER_HOST_IP=192.168.1.223
 | 
			
		||||
DOCKER_HOST_IP_R=192.168.1.224
 | 
			
		||||
 | 
			
		||||
# MONGODB
 | 
			
		||||
MONGO_IP=172.22.0.2
 | 
			
		||||
@@ -127,8 +131,14 @@ METRICS_IP=172.22.0.36
 | 
			
		||||
# SRSRAN GNB
 | 
			
		||||
SRS_GNB_IP=172.22.0.37
 | 
			
		||||
 | 
			
		||||
# SEPP
 | 
			
		||||
SEPP_IP=172.22.0.38
 | 
			
		||||
 | 
			
		||||
# UE IPv4 Subnet Range for APN=internet
 | 
			
		||||
UE_IPV4_INTERNET=192.168.100.0/24
 | 
			
		||||
 | 
			
		||||
# UE IPv4 Subnet Range for APN=ims
 | 
			
		||||
UE_IPV4_IMS=192.168.101.0/24
 | 
			
		||||
 | 
			
		||||
# Maximum Number of UEs
 | 
			
		||||
MAX_NUM_UE=1024
 | 
			
		||||
 
 | 
			
		||||
@@ -321,9 +321,14 @@ services:
 | 
			
		||||
        ipv4_address: ${METRICS_IP}
 | 
			
		||||
networks:
 | 
			
		||||
  default:
 | 
			
		||||
    name: docker_open5gs_default
 | 
			
		||||
    ipam:
 | 
			
		||||
      config:
 | 
			
		||||
        - subnet: ${TEST_NETWORK}
 | 
			
		||||
volumes:
 | 
			
		||||
  mongodbdata: {}
 | 
			
		||||
  dbdata: {}
 | 
			
		||||
  grafana_data:
 | 
			
		||||
    name: grafana_data
 | 
			
		||||
  mongodbdata:
 | 
			
		||||
    name: docker_open5gs_mongodbdata
 | 
			
		||||
  dbdata:
 | 
			
		||||
    name: docker_open5gs_dbdata
 | 
			
		||||
 
 | 
			
		||||
@@ -457,9 +457,14 @@ services:
 | 
			
		||||
        ipv4_address: ${METRICS_IP}
 | 
			
		||||
networks:
 | 
			
		||||
  default:
 | 
			
		||||
    name: docker_open5gs_default
 | 
			
		||||
    ipam:
 | 
			
		||||
      config:
 | 
			
		||||
        - subnet: ${TEST_NETWORK}
 | 
			
		||||
volumes:
 | 
			
		||||
  mongodbdata: {}
 | 
			
		||||
  dbdata: {}
 | 
			
		||||
  grafana_data:
 | 
			
		||||
    name: grafana_data
 | 
			
		||||
  mongodbdata:
 | 
			
		||||
    name: docker_open5gs_mongodbdata
 | 
			
		||||
  dbdata:
 | 
			
		||||
    name: docker_open5gs_dbdata
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								README.md
									
									
									
									
									
								
							@@ -63,6 +63,7 @@ docker build --no-cache --force-rm -t docker_ueransim .
 | 
			
		||||
cd ..
 | 
			
		||||
set -a
 | 
			
		||||
source .env
 | 
			
		||||
set +a
 | 
			
		||||
sudo ufw disable
 | 
			
		||||
sudo sysctl -w net.ipv4.ip_forward=1
 | 
			
		||||
sudo cpupower frequency-set -g performance
 | 
			
		||||
@@ -250,7 +251,7 @@ docker compose -f nr-ue.yaml up -d && docker container attach nr_ue
 | 
			
		||||
 | 
			
		||||
### Provisioning of SIM information in open5gs HSS as follows:
 | 
			
		||||
 | 
			
		||||
Open (http://<DOCKER_HOST_IP>:3000) in a web browser, where <DOCKER_HOST_IP> is the IP of the machine/VM running the open5gs containers. Login with following credentials
 | 
			
		||||
Open (http://<DOCKER_HOST_IP>:9999) in a web browser, where <DOCKER_HOST_IP> is the IP of the machine/VM running the open5gs containers. Login with following credentials
 | 
			
		||||
```
 | 
			
		||||
Username : admin
 | 
			
		||||
Password : 1423
 | 
			
		||||
@@ -258,6 +259,13 @@ Password : 1423
 | 
			
		||||
 | 
			
		||||
Using Web UI, add a subscriber
 | 
			
		||||
 | 
			
		||||
#### or using cli 
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
sudo docker exec -it hss misc/db/open5gs-dbctl add 001010123456790 8baf473f2f8fd09487cccbd7097c6862 8E27B6AF0E692E750F32667A3B14605D
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### Provisioning of IMSI and MSISDN with OsmoHLR as follows:
 | 
			
		||||
 | 
			
		||||
1. First, login to the osmohlr container
 | 
			
		||||
@@ -338,7 +346,7 @@ Take note of **auc_id** specified in **Response body** under **Server response**
 | 
			
		||||
  "enabled": true,
 | 
			
		||||
  "auc_id": 1,
 | 
			
		||||
  "default_apn": 1,
 | 
			
		||||
  "apn_list": "0,1",
 | 
			
		||||
  "apn_list": "1,2",
 | 
			
		||||
  "msisdn": "9076543210",
 | 
			
		||||
  "ue_ambr_dl": 0,
 | 
			
		||||
  "ue_ambr_ul": 0
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										50
									
								
								amf/amf.yaml
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								amf/amf.yaml
									
									
									
									
									
								
							@@ -1,5 +1,6 @@
 | 
			
		||||
logger:
 | 
			
		||||
    file: /open5gs/install/var/log/open5gs/amf.log
 | 
			
		||||
    file:
 | 
			
		||||
      path: /open5gs/install/var/log/open5gs/amf.log
 | 
			
		||||
 | 
			
		||||
sbi:
 | 
			
		||||
    server:
 | 
			
		||||
@@ -7,14 +8,30 @@ sbi:
 | 
			
		||||
    client:
 | 
			
		||||
      no_tls: true
 | 
			
		||||
 | 
			
		||||
parameter:
 | 
			
		||||
global:
 | 
			
		||||
  max:
 | 
			
		||||
    ue: MAX_NUM_UE
 | 
			
		||||
 | 
			
		||||
amf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: AMF_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
      server:
 | 
			
		||||
        - address: AMF_IP
 | 
			
		||||
          port: 7777
 | 
			
		||||
      client:
 | 
			
		||||
        nrf:
 | 
			
		||||
          - uri: http://NRF_IP:7777
 | 
			
		||||
        scp:
 | 
			
		||||
          - uri: http://SCP_IP:7777
 | 
			
		||||
    ngap:
 | 
			
		||||
      - addr: AMF_IP
 | 
			
		||||
      server:
 | 
			
		||||
        - address: AMF_IP
 | 
			
		||||
    access_control: #Home Network and Visited Networks
 | 
			
		||||
      - plmn_id: 
 | 
			
		||||
          mcc: MCC
 | 
			
		||||
          mnc: MNC
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: MCC_R
 | 
			
		||||
          mnc: MNC_R
 | 
			
		||||
    guami:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: MCC
 | 
			
		||||
@@ -40,21 +57,10 @@ amf:
 | 
			
		||||
        full: Open5GS
 | 
			
		||||
    amf_name: open5gs-amf0
 | 
			
		||||
    metrics:
 | 
			
		||||
      - addr: AMF_IP
 | 
			
		||||
        port: 9091
 | 
			
		||||
      server:
 | 
			
		||||
        - address: AMF_IP
 | 
			
		||||
          port: 9091
 | 
			
		||||
    time:
 | 
			
		||||
      t3512:
 | 
			
		||||
        value: 540
 | 
			
		||||
 | 
			
		||||
scp:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - SCP_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - NRF_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
time:
 | 
			
		||||
  t3512:
 | 
			
		||||
    value: 540
 | 
			
		||||
 
 | 
			
		||||
@@ -30,8 +30,11 @@ cp /mnt/amf/amf.yaml install/etc/open5gs
 | 
			
		||||
sed -i 's|AMF_IP|'$AMF_IP'|g' install/etc/open5gs/amf.yaml
 | 
			
		||||
sed -i 's|SCP_IP|'$SCP_IP'|g' install/etc/open5gs/amf.yaml
 | 
			
		||||
sed -i 's|NRF_IP|'$NRF_IP'|g' install/etc/open5gs/amf.yaml
 | 
			
		||||
sed -i 's|MNC_R|'$MNC_R'|g' install/etc/open5gs/amf.yaml
 | 
			
		||||
sed -i 's|MCC_R|'$MCC_R'|g' install/etc/open5gs/amf.yaml
 | 
			
		||||
sed -i 's|MNC|'$MNC'|g' install/etc/open5gs/amf.yaml
 | 
			
		||||
sed -i 's|MCC|'$MCC'|g' install/etc/open5gs/amf.yaml
 | 
			
		||||
sed -i 's|MAX_NUM_UE|'$MAX_NUM_UE'|g' install/etc/open5gs/amf.yaml
 | 
			
		||||
 | 
			
		||||
# Sync docker time
 | 
			
		||||
#ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,6 @@
 | 
			
		||||
logger:
 | 
			
		||||
    file: /open5gs/install/var/log/open5gs/ausf.log
 | 
			
		||||
    file:
 | 
			
		||||
      path: /open5gs/install/var/log/open5gs/ausf.log
 | 
			
		||||
 | 
			
		||||
sbi:
 | 
			
		||||
    server:
 | 
			
		||||
@@ -7,21 +8,17 @@ sbi:
 | 
			
		||||
    client:
 | 
			
		||||
      no_tls: true
 | 
			
		||||
 | 
			
		||||
parameter:
 | 
			
		||||
global:
 | 
			
		||||
  max:
 | 
			
		||||
    ue: MAX_NUM_UE
 | 
			
		||||
 | 
			
		||||
ausf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: AUSF_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
scp:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - SCP_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - NRF_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
      server:
 | 
			
		||||
        - address: ausf.FIVEGC_DOMAIN
 | 
			
		||||
          #port: 7777
 | 
			
		||||
      client:
 | 
			
		||||
        nrf:
 | 
			
		||||
          - uri: http://NRF_IP:7777
 | 
			
		||||
        scp:
 | 
			
		||||
          - uri: http://SCP_IP:7777
 | 
			
		||||
 
 | 
			
		||||
@@ -26,10 +26,14 @@
 | 
			
		||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
			
		||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
 | 
			
		||||
[ ${#MNC} == 3 ] && FIVEGC_DOMAIN="5gc.mnc${MNC}.mcc${MCC}.3gppnetwork.org" || FIVEGC_DOMAIN="5gc.mnc0${MNC}.mcc${MCC}.3gppnetwork.org"
 | 
			
		||||
 | 
			
		||||
cp /mnt/ausf/ausf.yaml install/etc/open5gs
 | 
			
		||||
sed -i 's|AUSF_IP|'$AUSF_IP'|g' install/etc/open5gs/ausf.yaml
 | 
			
		||||
sed -i 's|SCP_IP|'$SCP_IP'|g' install/etc/open5gs/ausf.yaml
 | 
			
		||||
sed -i 's|NRF_IP|'$NRF_IP'|g' install/etc/open5gs/ausf.yaml
 | 
			
		||||
sed -i 's|MAX_NUM_UE|'$MAX_NUM_UE'|g' install/etc/open5gs/ausf.yaml
 | 
			
		||||
sed -i 's|FIVEGC_DOMAIN|'$FIVEGC_DOMAIN'|g' install/etc/open5gs/ausf.yaml
 | 
			
		||||
 | 
			
		||||
# Sync docker time
 | 
			
		||||
#ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 | 
			
		||||
 
 | 
			
		||||
@@ -68,7 +68,7 @@ RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg -
 | 
			
		||||
 | 
			
		||||
# Get open5gs code and install
 | 
			
		||||
RUN git clone --recursive https://github.com/open5gs/open5gs && cd open5gs && \
 | 
			
		||||
    git checkout tags/v2.6.6 && meson build --prefix=`pwd`/install && \
 | 
			
		||||
    git checkout 04ec945e1d334ca5917705a885eff80ad30e1e38 && meson build --prefix=`pwd`/install && \
 | 
			
		||||
    ninja -C build && cd build && ninja install && \
 | 
			
		||||
    mkdir -p /open5gs/install/include
 | 
			
		||||
 | 
			
		||||
@@ -102,6 +102,7 @@ RUN apt-get update && \
 | 
			
		||||
        python3-pip \
 | 
			
		||||
        iptables \
 | 
			
		||||
        iperf \
 | 
			
		||||
        mongodb-clients \
 | 
			
		||||
        gnupg && \
 | 
			
		||||
    apt-get autoremove -y && apt-get autoclean
 | 
			
		||||
 | 
			
		||||
@@ -120,6 +121,7 @@ COPY --from=builder /open5gs/install/etc /open5gs/install/etc
 | 
			
		||||
COPY --from=builder /open5gs/install/include /open5gs/install/include
 | 
			
		||||
COPY --from=builder /open5gs/install/lib /open5gs/install/lib
 | 
			
		||||
COPY --from=builder /open5gs/webui /open5gs/webui
 | 
			
		||||
COPY --from=builder /open5gs/misc/db /open5gs/misc/db
 | 
			
		||||
 | 
			
		||||
# Set the working directory to open5gs
 | 
			
		||||
WORKDIR open5gs
 | 
			
		||||
 
 | 
			
		||||
@@ -97,6 +97,10 @@ elif [[ "$COMPONENT_NAME" =~ ^(upf-[[:digit:]]+$) ]]; then
 | 
			
		||||
elif [[ "$COMPONENT_NAME" =~ ^(webui) ]]; then
 | 
			
		||||
	echo "Deploying component: '$COMPONENT_NAME'"
 | 
			
		||||
	sleep 10 && /mnt/webui/webui_init.sh
 | 
			
		||||
elif [[ "$COMPONENT_NAME" =~ ^(sepp-[[:digit:]]+$) ]]; then
 | 
			
		||||
	echo "Deploying component: '$COMPONENT_NAME'"
 | 
			
		||||
	/mnt/sepp/sepp_init.sh  && sleep 10 && \
 | 
			
		||||
    cd install/bin && ./open5gs-seppd
 | 
			
		||||
else
 | 
			
		||||
	echo "Error: Invalid component name: '$COMPONENT_NAME'"
 | 
			
		||||
fi
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										29
									
								
								bsf/bsf.yaml
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								bsf/bsf.yaml
									
									
									
									
									
								
							@@ -1,7 +1,8 @@
 | 
			
		||||
db_uri: mongodb://MONGO_IP/open5gs
 | 
			
		||||
 | 
			
		||||
logger:
 | 
			
		||||
    file: /open5gs/install/var/log/open5gs/bsf.log
 | 
			
		||||
    file:
 | 
			
		||||
      path: /open5gs/install/var/log/open5gs/bsf.log
 | 
			
		||||
 | 
			
		||||
sbi:
 | 
			
		||||
    server:
 | 
			
		||||
@@ -9,21 +10,17 @@ sbi:
 | 
			
		||||
    client:
 | 
			
		||||
      no_tls: true
 | 
			
		||||
 | 
			
		||||
parameter:
 | 
			
		||||
global:
 | 
			
		||||
  max:
 | 
			
		||||
    ue: MAX_NUM_UE
 | 
			
		||||
 | 
			
		||||
bsf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: BSF_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
scp:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - SCP_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - NRF_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
      server:
 | 
			
		||||
        - address: BSF_IP
 | 
			
		||||
          port: 7777
 | 
			
		||||
      client:
 | 
			
		||||
        nrf:
 | 
			
		||||
          - uri: http://NRF_IP:7777
 | 
			
		||||
        scp:
 | 
			
		||||
          - uri: http://SCP_IP:7777
 | 
			
		||||
 
 | 
			
		||||
@@ -33,6 +33,7 @@ sed -i 's|BSF_IP|'$BSF_IP'|g' install/etc/open5gs/bsf.yaml
 | 
			
		||||
sed -i 's|SCP_IP|'$SCP_IP'|g' install/etc/open5gs/bsf.yaml
 | 
			
		||||
sed -i 's|NRF_IP|'$NRF_IP'|g' install/etc/open5gs/bsf.yaml
 | 
			
		||||
sed -i 's|MONGO_IP|'$MONGO_IP'|g' install/etc/open5gs/bsf.yaml
 | 
			
		||||
sed -i 's|MAX_NUM_UE|'$MAX_NUM_UE'|g' install/etc/open5gs/bsf.yaml
 | 
			
		||||
 | 
			
		||||
# Sync docker time
 | 
			
		||||
#ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 | 
			
		||||
 
 | 
			
		||||
@@ -665,9 +665,15 @@ services:
 | 
			
		||||
        ipv4_address: ${METRICS_IP}
 | 
			
		||||
networks:
 | 
			
		||||
  default:
 | 
			
		||||
    name: docker_open5gs_default
 | 
			
		||||
    ipam:
 | 
			
		||||
      config:
 | 
			
		||||
        - subnet: ${TEST_NETWORK}
 | 
			
		||||
volumes:
 | 
			
		||||
  mongodbdata: {}
 | 
			
		||||
  dbdata: {}
 | 
			
		||||
  grafana_data:
 | 
			
		||||
    name: grafana_data
 | 
			
		||||
  mongodbdata:
 | 
			
		||||
    name: docker_open5gs_mongodbdata
 | 
			
		||||
  dbdata:
 | 
			
		||||
    name: docker_open5gs_dbdata
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16
									
								
								dns/5gc_zone
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								dns/5gc_zone
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
$ORIGIN FIVEGC_DOMAIN.
 | 
			
		||||
$TTL 1W
 | 
			
		||||
@                       1D IN SOA       localhost. root.localhost. (
 | 
			
		||||
                                        1		; serial
 | 
			
		||||
                                        3H              ; refresh
 | 
			
		||||
                                        15M             ; retry
 | 
			
		||||
                                        1W              ; expiry
 | 
			
		||||
                                        1D )            ; minimum
 | 
			
		||||
 | 
			
		||||
                        1D IN NS        5gcns
 | 
			
		||||
5gcns                   1D IN A         DNS_IP
 | 
			
		||||
 | 
			
		||||
nrf                     1D IN A         NRF_IP
 | 
			
		||||
ausf                    1D IN A         AUSF_IP
 | 
			
		||||
udm                     1D IN A         UDM_IP
 | 
			
		||||
sepp                    1D IN A         SEPP_IP
 | 
			
		||||
@@ -27,12 +27,14 @@
 | 
			
		||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
 | 
			
		||||
cp /mnt/dns/epc_zone /etc/bind
 | 
			
		||||
cp /mnt/dns/5gc_zone /etc/bind
 | 
			
		||||
cp /mnt/dns/ims_zone /etc/bind
 | 
			
		||||
cp /mnt/dns/pub_3gpp_zone /etc/bind
 | 
			
		||||
cp /mnt/dns/e164.arpa /etc/bind
 | 
			
		||||
cp /mnt/dns/named.conf /etc/bind
 | 
			
		||||
 | 
			
		||||
[ ${#MNC} == 3 ] && EPC_DOMAIN="epc.mnc${MNC}.mcc${MCC}.3gppnetwork.org" || EPC_DOMAIN="epc.mnc0${MNC}.mcc${MCC}.3gppnetwork.org"
 | 
			
		||||
[ ${#MNC} == 3 ] && FIVEGC_DOMAIN="5gc.mnc${MNC}.mcc${MCC}.3gppnetwork.org" || FIVEGC_DOMAIN="5gc.mnc0${MNC}.mcc${MCC}.3gppnetwork.org"
 | 
			
		||||
[ ${#MNC} == 3 ] && IMS_DOMAIN="ims.mnc${MNC}.mcc${MCC}.3gppnetwork.org" || IMS_DOMAIN="ims.mnc0${MNC}.mcc${MCC}.3gppnetwork.org"
 | 
			
		||||
[ ${#MNC} == 3 ] && PUB_3GPP_DOMAIN="mnc${MNC}.mcc${MCC}.pub.3gppnetwork.org" || PUB_3GPP_DOMAIN="mnc0${MNC}.mcc${MCC}.pub.3gppnetwork.org"
 | 
			
		||||
 | 
			
		||||
@@ -40,6 +42,13 @@ sed -i 's|EPC_DOMAIN|'$EPC_DOMAIN'|g' /etc/bind/epc_zone
 | 
			
		||||
sed -i 's|DNS_IP|'$DNS_IP'|g' /etc/bind/epc_zone
 | 
			
		||||
[ -z "$PCRF_PUB_IP" ] && sed -i 's|PCRF_IP|'$PCRF_IP'|g' /etc/bind/epc_zone || sed -i 's|PCRF_IP|'$PCRF_PUB_IP'|g' /etc/bind/epc_zone
 | 
			
		||||
 | 
			
		||||
sed -i 's|FIVEGC_DOMAIN|'$FIVEGC_DOMAIN'|g' /etc/bind/5gc_zone
 | 
			
		||||
sed -i 's|DNS_IP|'$DNS_IP'|g' /etc/bind/5gc_zone
 | 
			
		||||
sed -i 's|NRF_IP|'$NRF_IP'|g' /etc/bind/5gc_zone
 | 
			
		||||
sed -i 's|AUSF_IP|'$AUSF_IP'|g' /etc/bind/5gc_zone
 | 
			
		||||
sed -i 's|UDM_IP|'$UDM_IP'|g' /etc/bind/5gc_zone
 | 
			
		||||
sed -i 's|SEPP_IP|'$SEPP_IP'|g' /etc/bind/5gc_zone
 | 
			
		||||
 | 
			
		||||
sed -i 's|IMS_DOMAIN|'$IMS_DOMAIN'|g' /etc/bind/ims_zone
 | 
			
		||||
sed -i 's|DNS_IP|'$DNS_IP'|g' /etc/bind/ims_zone
 | 
			
		||||
sed -i 's|PCSCF_IP|'$PCSCF_IP'|g' /etc/bind/ims_zone
 | 
			
		||||
@@ -56,6 +65,7 @@ sed -i 's|IMS_DOMAIN|'$IMS_DOMAIN'|g' /etc/bind/e164.arpa
 | 
			
		||||
sed -i 's|DNS_IP|'$DNS_IP'|g' /etc/bind/e164.arpa
 | 
			
		||||
 | 
			
		||||
sed -i 's|EPC_DOMAIN|'$EPC_DOMAIN'|g' /etc/bind/named.conf
 | 
			
		||||
sed -i 's|FIVEGC_DOMAIN|'$FIVEGC_DOMAIN'|g' /etc/bind/named.conf
 | 
			
		||||
sed -i 's|IMS_DOMAIN|'$IMS_DOMAIN'|g' /etc/bind/named.conf
 | 
			
		||||
sed -i 's|PUB_3GPP_DOMAIN|'$PUB_3GPP_DOMAIN'|g' /etc/bind/named.conf
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -51,3 +51,8 @@ zone "e164.arpa" {
 | 
			
		||||
        type master;
 | 
			
		||||
        file "/etc/bind/e164.arpa";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
zone "FIVEGC_DOMAIN" {
 | 
			
		||||
        type master;
 | 
			
		||||
        file "/etc/bind/5gc_zone";
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -173,7 +173,7 @@ TLS_CA = "/open5gs/install/etc/freeDiameter/cacert.pem";
 | 
			
		||||
# algorithms. In addition the "0xffffff" application is advertised in CER/CEA 
 | 
			
		||||
# exchanges.
 | 
			
		||||
# Default: Relaying is enabled.
 | 
			
		||||
#NoRelay;
 | 
			
		||||
NoRelay;
 | 
			
		||||
 | 
			
		||||
# Number of server threads that can handle incoming messages at the same time.
 | 
			
		||||
# Default: 4
 | 
			
		||||
 
 | 
			
		||||
@@ -32,14 +32,14 @@ ENV DEBIAN_FRONTEND=noninteractive
 | 
			
		||||
RUN apt-get update && \
 | 
			
		||||
	apt-get -y install mysql-server tcpdump screen tmux ntp ntpdate git-core dkms \
 | 
			
		||||
					gcc flex bison libmysqlclient-dev make libssl-dev libcurl4-openssl-dev \
 | 
			
		||||
					libxml2-dev libpcre3-dev bash-completion g++ autoconf libmnl-dev \
 | 
			
		||||
					libxml2-dev libpcre2-dev bash-completion g++ autoconf libmnl-dev \
 | 
			
		||||
					libsctp-dev libradcli-dev libradcli4 libjson-c-dev pkg-config iproute2 net-tools \
 | 
			
		||||
					iputils-ping
 | 
			
		||||
 | 
			
		||||
# Fetch Kamailio code (branch 5.3)
 | 
			
		||||
RUN mkdir -p /usr/local/src/ && cd /usr/local/src/ && \
 | 
			
		||||
	git clone https://github.com/herlesupreeth/kamailio && \
 | 
			
		||||
	cd kamailio && git checkout 5.3
 | 
			
		||||
	git clone https://github.com/kamailio/kamailio && \
 | 
			
		||||
	cd kamailio && git checkout 4df92312166d8aad700007ef0898d0a7c6ba40b7
 | 
			
		||||
 | 
			
		||||
# Build and Install Kamailio
 | 
			
		||||
RUN cd /usr/local/src/kamailio && make cfg
 | 
			
		||||
 
 | 
			
		||||
@@ -10,13 +10,13 @@ cfg_group_include=
 | 
			
		||||
include_modules= cdp cdp_avp db_mysql dialplan enum json http_client ims_auth ims_charging ims_dialog ims_diameter_server ims_icscf ims_ipsec_pcscf ims_isc ims_ocs ims_qos ims_registrar_pcscf ims_registrar_scscf ims_usrloc_pcscf ims_usrloc_scscf outbound presence presence_conference presence_dialoginfo presence_mwi presence_profile presence_reginfo presence_xml pua pua_bla pua_dialoginfo pua_reginfo pua_rpc pua_usrloc pua_xmpp sctp tls utils xcap_client xcap_server xmlops xmlrpc
 | 
			
		||||
 | 
			
		||||
# the list of static modules
 | 
			
		||||
static_modules=
 | 
			
		||||
static_modules= 
 | 
			
		||||
 | 
			
		||||
# the list of modules to skip from compile list
 | 
			
		||||
skip_modules=
 | 
			
		||||
skip_modules= 
 | 
			
		||||
 | 
			
		||||
# the list of modules to exclude from compile list
 | 
			
		||||
exclude_modules= acc_json acc_radius app_java app_lua app_lua_sr app_mono app_perl app_python app_python3 app_ruby auth_ephemeral auth_identity auth_radius cnxcc cplc crypto db2_ldap db_berkeley db_cassandra db_mongodb db_oracle db_perlvdb db_postgres db_redis db_sqlite db_unixodbc dnssec erlang evapi geoip geoip2 gzcompress h350 http_async_client jansson janssonrpcc jsonrpcc jwt kafka kazoo lcr ldap log_systemd lost lwsc memcached misc_radius ndb_cassandra mqtt ndb_mongodb ndb_redis nsq osp peering phonenum pua_json rabbitmq regex rls rtp_media_server secsipid secsipid_proc snmpstats stirshaken systemdops topos_redis uuid websocket xhttp_pi xmpp $(skip_modules)
 | 
			
		||||
exclude_modules= malloc_test app_sqlang acc_json acc_radius app_java app_lua app_lua_sr app_mono app_perl app_python app_python3 app_python3s app_ruby app_ruby_proc auth_ephemeral auth_identity auth_radius cnxcc cplc crypto db2_ldap db_berkeley db_cassandra db_mongodb db_oracle db_perlvdb db_postgres db_redis db_sqlite db_unixodbc dnssec erlang evapi geoip geoip2 gzcompress h350 http_async_client http_client jansson janssonrpcc json jsonrpcc jwt kafka kazoo lcr ldap log_systemd lost lwsc memcached microhttpd misc_radius mqtt nats ndb_cassandra ndb_mongodb ndb_redis nsq osp peering phonenum rabbitmq regex rls rtp_media_server ruxc secsipid secsipid_proc slack snmpstats stirshaken systemdops tls_wolfssl tlsa topos_redis uuid websocket xhttp_pi xmpp $(skip_modules)
 | 
			
		||||
 | 
			
		||||
modules_all= $(filter-out modules/CVS,$(wildcard modules/*))
 | 
			
		||||
modules_noinc= $(filter-out $(addprefix modules/, $(exclude_modules) $(static_modules)), $(modules_all)) 
 | 
			
		||||
 
 | 
			
		||||
@@ -174,7 +174,7 @@ TLS_CA = "/open5gs/install/etc/freeDiameter/cacert.pem";
 | 
			
		||||
# algorithms. In addition the "0xffffff" application is advertised in CER/CEA 
 | 
			
		||||
# exchanges.
 | 
			
		||||
# Default: Relaying is enabled.
 | 
			
		||||
#NoRelay;
 | 
			
		||||
NoRelay;
 | 
			
		||||
 | 
			
		||||
# Number of server threads that can handle incoming messages at the same time.
 | 
			
		||||
# Default: 4
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										82
									
								
								mme/mme.yaml
									
									
									
									
									
								
							
							
						
						
									
										82
									
								
								mme/mme.yaml
									
									
									
									
									
								
							@@ -1,38 +1,49 @@
 | 
			
		||||
logger:
 | 
			
		||||
    file: /open5gs/install/var/log/open5gs/mme.log
 | 
			
		||||
    file:
 | 
			
		||||
      path: /open5gs/install/var/log/open5gs/mme.log
 | 
			
		||||
 | 
			
		||||
parameter:
 | 
			
		||||
global:
 | 
			
		||||
  max:
 | 
			
		||||
    ue: MAX_NUM_UE
 | 
			
		||||
 | 
			
		||||
mme:
 | 
			
		||||
    freeDiameter: /open5gs/install/etc/freeDiameter/mme.conf
 | 
			
		||||
    s1ap:
 | 
			
		||||
      dev: MME_IF
 | 
			
		||||
      server:
 | 
			
		||||
        - dev: MME_IF
 | 
			
		||||
    gtpc:
 | 
			
		||||
      dev: MME_IF
 | 
			
		||||
      server:
 | 
			
		||||
        - dev: MME_IF
 | 
			
		||||
      client:
 | 
			
		||||
        sgwc:
 | 
			
		||||
          - address: SGWC_IP
 | 
			
		||||
        smf:
 | 
			
		||||
          - address: SMF_IP
 | 
			
		||||
    sgsap:
 | 
			
		||||
      addr: OSMOMSC_IP
 | 
			
		||||
      map:
 | 
			
		||||
        tai:
 | 
			
		||||
          plmn_id:
 | 
			
		||||
            mcc: MCC
 | 
			
		||||
            mnc: MNC
 | 
			
		||||
          tac: 1
 | 
			
		||||
        lai:
 | 
			
		||||
          plmn_id:
 | 
			
		||||
            mcc: MCC
 | 
			
		||||
            mnc: MNC
 | 
			
		||||
          lac: 1
 | 
			
		||||
      server:
 | 
			
		||||
        - address: OSMOMSC_IP
 | 
			
		||||
          map:
 | 
			
		||||
            tai:
 | 
			
		||||
              plmn_id:
 | 
			
		||||
                mcc: MCC
 | 
			
		||||
                mnc: MNC
 | 
			
		||||
              tac: 1
 | 
			
		||||
            lai:
 | 
			
		||||
              plmn_id:
 | 
			
		||||
                mcc: MCC
 | 
			
		||||
                mnc: MNC
 | 
			
		||||
              lac: 1
 | 
			
		||||
    gummei: 
 | 
			
		||||
      plmn_id:
 | 
			
		||||
        mcc: MCC
 | 
			
		||||
        mnc: MNC
 | 
			
		||||
      mme_gid: 2
 | 
			
		||||
      mme_code: 1
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: MCC
 | 
			
		||||
          mnc: MNC
 | 
			
		||||
        mme_gid: 2
 | 
			
		||||
        mme_code: 1
 | 
			
		||||
    tai:
 | 
			
		||||
      plmn_id:
 | 
			
		||||
        mcc: MCC
 | 
			
		||||
        mnc: MNC
 | 
			
		||||
      tac: 1
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: MCC
 | 
			
		||||
          mnc: MNC
 | 
			
		||||
        tac: 1
 | 
			
		||||
    security:
 | 
			
		||||
        integrity_order : [ EIA2, EIA1, EIA0 ]
 | 
			
		||||
        ciphering_order : [ EEA0, EEA1, EEA2 ]
 | 
			
		||||
@@ -40,18 +51,9 @@ mme:
 | 
			
		||||
        full: Open5GS
 | 
			
		||||
    mme_name: open5gs-mme0
 | 
			
		||||
    metrics:
 | 
			
		||||
      - addr: MME_IP
 | 
			
		||||
        port: 9091
 | 
			
		||||
 | 
			
		||||
sgwc:
 | 
			
		||||
    gtpc:
 | 
			
		||||
      addr: SGWC_IP
 | 
			
		||||
 | 
			
		||||
smf:
 | 
			
		||||
    gtpc:
 | 
			
		||||
      - addr:
 | 
			
		||||
        - SMF_IP
 | 
			
		||||
 | 
			
		||||
time:
 | 
			
		||||
  t3412:
 | 
			
		||||
    value: 540
 | 
			
		||||
      server:
 | 
			
		||||
        - address: MME_IP
 | 
			
		||||
          port: 9091
 | 
			
		||||
    time:
 | 
			
		||||
      t3412:
 | 
			
		||||
        value: 540
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,7 @@ sed -i 's|MME_IF|'$IF_NAME'|g' install/etc/open5gs/mme.yaml
 | 
			
		||||
sed -i 's|OSMOMSC_IP|'$OSMOMSC_IP'|g' install/etc/open5gs/mme.yaml
 | 
			
		||||
sed -i 's|SGWC_IP|'$SGWC_IP'|g' install/etc/open5gs/mme.yaml
 | 
			
		||||
sed -i 's|SMF_IP|'$SMF_IP'|g' install/etc/open5gs/mme.yaml
 | 
			
		||||
sed -i 's|MAX_NUM_UE|'$MAX_NUM_UE'|g' install/etc/open5gs/mme.yaml
 | 
			
		||||
sed -i 's|MME_IP|'$MME_IP'|g' install/etc/freeDiameter/mme.conf
 | 
			
		||||
sed -i 's|HSS_IP|'$HSS_IP'|g' install/etc/freeDiameter/mme.conf
 | 
			
		||||
sed -i 's|EPC_DOMAIN|'$EPC_DOMAIN'|g' install/etc/freeDiameter/mme.conf
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										23
									
								
								nrf/nrf.yaml
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								nrf/nrf.yaml
									
									
									
									
									
								
							@@ -1,5 +1,6 @@
 | 
			
		||||
logger:
 | 
			
		||||
    file: /open5gs/install/var/log/open5gs/nrf.log
 | 
			
		||||
    file:
 | 
			
		||||
      path: /open5gs/install/var/log/open5gs/nrf.log
 | 
			
		||||
 | 
			
		||||
sbi:
 | 
			
		||||
    server:
 | 
			
		||||
@@ -7,16 +8,16 @@ sbi:
 | 
			
		||||
    client:
 | 
			
		||||
      no_tls: true
 | 
			
		||||
 | 
			
		||||
parameter:
 | 
			
		||||
global:
 | 
			
		||||
  max:
 | 
			
		||||
    ue: MAX_NUM_UE
 | 
			
		||||
 | 
			
		||||
nrf:
 | 
			
		||||
    serving:  # 5G roaming requires PLMN in NRF
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: MCC
 | 
			
		||||
          mnc: MNC
 | 
			
		||||
    sbi:
 | 
			
		||||
      addr:
 | 
			
		||||
        - NRF_IP
 | 
			
		||||
      port: 7777
 | 
			
		||||
 | 
			
		||||
scp:
 | 
			
		||||
    sbi:
 | 
			
		||||
      addr:
 | 
			
		||||
        - SCP_IP
 | 
			
		||||
      port: 7777
 | 
			
		||||
      server:
 | 
			
		||||
      - address: nrf.FIVEGC_DOMAIN
 | 
			
		||||
        #port: 7777
 | 
			
		||||
 
 | 
			
		||||
@@ -26,9 +26,15 @@
 | 
			
		||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
			
		||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
 | 
			
		||||
[ ${#MNC} == 3 ] && FIVEGC_DOMAIN="5gc.mnc${MNC}.mcc${MCC}.3gppnetwork.org" || FIVEGC_DOMAIN="5gc.mnc0${MNC}.mcc${MCC}.3gppnetwork.org"
 | 
			
		||||
 | 
			
		||||
cp /mnt/nrf/nrf.yaml install/etc/open5gs
 | 
			
		||||
sed -i 's|NRF_IP|'$NRF_IP'|g' install/etc/open5gs/nrf.yaml
 | 
			
		||||
sed -i 's|SCP_IP|'$SCP_IP'|g' install/etc/open5gs/nrf.yaml
 | 
			
		||||
sed -i 's|MCC|'$MCC'|g' install/etc/open5gs/nrf.yaml
 | 
			
		||||
sed -i 's|MNC|'$MNC'|g' install/etc/open5gs/nrf.yaml
 | 
			
		||||
sed -i 's|MAX_NUM_UE|'$MAX_NUM_UE'|g' install/etc/open5gs/nrf.yaml
 | 
			
		||||
sed -i 's|FIVEGC_DOMAIN|'$FIVEGC_DOMAIN'|g' install/etc/open5gs/nrf.yaml
 | 
			
		||||
 | 
			
		||||
# Sync docker time
 | 
			
		||||
#ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,6 @@
 | 
			
		||||
logger:
 | 
			
		||||
    file: /open5gs/install/var/log/open5gs/nssf.log
 | 
			
		||||
    file:
 | 
			
		||||
      path: /open5gs/install/var/log/open5gs/nssf.log
 | 
			
		||||
 | 
			
		||||
sbi:
 | 
			
		||||
    server:
 | 
			
		||||
@@ -7,26 +8,22 @@ sbi:
 | 
			
		||||
    client:
 | 
			
		||||
      no_tls: true
 | 
			
		||||
 | 
			
		||||
parameter:
 | 
			
		||||
global:
 | 
			
		||||
  max:
 | 
			
		||||
    ue: MAX_NUM_UE
 | 
			
		||||
 | 
			
		||||
nssf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: NSSF_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
    nsi:
 | 
			
		||||
      - addr: NRF_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
        s_nssai:
 | 
			
		||||
          sst: 1
 | 
			
		||||
      server:
 | 
			
		||||
        - address: NSSF_IP
 | 
			
		||||
          port: 7777
 | 
			
		||||
      client:
 | 
			
		||||
        nrf:
 | 
			
		||||
          - uri: http://NRF_IP:7777
 | 
			
		||||
        scp:
 | 
			
		||||
          - uri: http://SCP_IP:7777
 | 
			
		||||
        nsi:
 | 
			
		||||
          - uri: http://nrf.FIVEGC_DOMAIN
 | 
			
		||||
            s_nssai:
 | 
			
		||||
              sst: 1
 | 
			
		||||
 | 
			
		||||
scp:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - SCP_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - NRF_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
 
 | 
			
		||||
@@ -26,11 +26,15 @@
 | 
			
		||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
			
		||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
 | 
			
		||||
[ ${#MNC} == 3 ] && FIVEGC_DOMAIN="5gc.mnc${MNC}.mcc${MCC}.3gppnetwork.org" || FIVEGC_DOMAIN="5gc.mnc0${MNC}.mcc${MCC}.3gppnetwork.org"
 | 
			
		||||
 | 
			
		||||
cp /mnt/nssf/nssf.yaml install/etc/open5gs
 | 
			
		||||
sed -i 's|NSSF_IP|'$NSSF_IP'|g' install/etc/open5gs/nssf.yaml
 | 
			
		||||
sed -i 's|NRF_IP|'$NRF_IP'|g' install/etc/open5gs/nssf.yaml
 | 
			
		||||
sed -i 's|SCP_IP|'$SCP_IP'|g' install/etc/open5gs/nssf.yaml
 | 
			
		||||
sed -i 's|NRF_IP|'$NRF_IP'|g' install/etc/open5gs/nssf.yaml
 | 
			
		||||
sed -i 's|MAX_NUM_UE|'$MAX_NUM_UE'|g' install/etc/open5gs/nssf.yaml
 | 
			
		||||
sed -i 's|FIVEGC_DOMAIN|'$FIVEGC_DOMAIN'|g' install/etc/open5gs/nssf.yaml
 | 
			
		||||
 | 
			
		||||
# Sync docker time
 | 
			
		||||
#ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										59
									
								
								pcf/pcf.yaml
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								pcf/pcf.yaml
									
									
									
									
									
								
							@@ -1,7 +1,8 @@
 | 
			
		||||
db_uri: mongodb://MONGO_IP/open5gs
 | 
			
		||||
 | 
			
		||||
logger:
 | 
			
		||||
    file: /open5gs/install/var/log/open5gs/pcf.log
 | 
			
		||||
    file:
 | 
			
		||||
      path: /open5gs/install/var/log/open5gs/pcf.log
 | 
			
		||||
 | 
			
		||||
sbi:
 | 
			
		||||
    server:
 | 
			
		||||
@@ -9,24 +10,48 @@ sbi:
 | 
			
		||||
    client:
 | 
			
		||||
      no_tls: true
 | 
			
		||||
 | 
			
		||||
parameter:
 | 
			
		||||
global:
 | 
			
		||||
  max:
 | 
			
		||||
    ue: MAX_NUM_UE
 | 
			
		||||
 | 
			
		||||
pcf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: PCF_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
      server:
 | 
			
		||||
        - address: PCF_IP
 | 
			
		||||
          port: 7777
 | 
			
		||||
      client:
 | 
			
		||||
        nrf:
 | 
			
		||||
          - uri: http://NRF_IP:7777
 | 
			
		||||
        scp:
 | 
			
		||||
          - uri: http://SCP_IP:7777
 | 
			
		||||
    metrics:
 | 
			
		||||
      - addr: PCF_IP
 | 
			
		||||
        port: 9091
 | 
			
		||||
      server:
 | 
			
		||||
        - address: PCF_IP
 | 
			
		||||
          port: 9091
 | 
			
		||||
  
 | 
			
		||||
  #For Visited Network
 | 
			
		||||
    policy: 
 | 
			
		||||
    - plmn_id:
 | 
			
		||||
        mcc: MCC_R
 | 
			
		||||
        mnc: MNC_R
 | 
			
		||||
      slice:
 | 
			
		||||
        - sst: 1
 | 
			
		||||
          default_indicator: true
 | 
			
		||||
          session:
 | 
			
		||||
            - name: internet
 | 
			
		||||
              type: 1
 | 
			
		||||
              ambr:
 | 
			
		||||
                downlink:
 | 
			
		||||
                  value: 1
 | 
			
		||||
                  unit: 3
 | 
			
		||||
                uplink:
 | 
			
		||||
                  value: 1
 | 
			
		||||
                  unit: 3
 | 
			
		||||
              qos:
 | 
			
		||||
                index: 9
 | 
			
		||||
                arp:
 | 
			
		||||
                  priority_level: 8
 | 
			
		||||
                  pre_emption_vulnerability: 1
 | 
			
		||||
                  pre_emption_capability: 1
 | 
			
		||||
 | 
			
		||||
scp:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - SCP_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - NRF_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
        
 | 
			
		||||
@@ -32,7 +32,10 @@ cp /mnt/pcf/pcf.yaml install/etc/open5gs
 | 
			
		||||
sed -i 's|PCF_IP|'$PCF_IP'|g' install/etc/open5gs/pcf.yaml
 | 
			
		||||
sed -i 's|SCP_IP|'$SCP_IP'|g' install/etc/open5gs/pcf.yaml
 | 
			
		||||
sed -i 's|NRF_IP|'$NRF_IP'|g' install/etc/open5gs/pcf.yaml
 | 
			
		||||
sed -i 's|MNC_R|'$MNC_R'|g' install/etc/open5gs/pcf.yaml
 | 
			
		||||
sed -i 's|MCC_R|'$MCC_R'|g' install/etc/open5gs/pcf.yaml
 | 
			
		||||
sed -i 's|MONGO_IP|'$MONGO_IP'|g' install/etc/open5gs/pcf.yaml
 | 
			
		||||
sed -i 's|MAX_NUM_UE|'$MAX_NUM_UE'|g' install/etc/open5gs/pcf.yaml
 | 
			
		||||
 | 
			
		||||
# Sync docker time
 | 
			
		||||
#ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 | 
			
		||||
 
 | 
			
		||||
@@ -175,7 +175,7 @@ TLS_CA = "/open5gs/install/etc/freeDiameter/cacert.pem";
 | 
			
		||||
# algorithms. In addition the "0xffffff" application is advertised in CER/CEA 
 | 
			
		||||
# exchanges.
 | 
			
		||||
# Default: Relaying is enabled.
 | 
			
		||||
#NoRelay;
 | 
			
		||||
NoRelay;
 | 
			
		||||
 | 
			
		||||
# Number of server threads that can handle incoming messages at the same time.
 | 
			
		||||
# Default: 4
 | 
			
		||||
 
 | 
			
		||||
@@ -396,6 +396,7 @@ modparam("ims_registrar_pcscf", "ignore_reg_state", 1)
 | 
			
		||||
modparam("ims_registrar_pcscf", "ignore_contact_rxport_check", 1)
 | 
			
		||||
modparam("ims_registrar_pcscf", "pending_reg_expires", 30)
 | 
			
		||||
modparam("ims_registrar_pcscf", "subscription_expires", 36000)
 | 
			
		||||
modparam("ims_registrar_pcscf", "delete_delay", CONTACT_DELETE_DELAY)
 | 
			
		||||
modparam("ims_usrloc_pcscf", "expires_grace", 120)
 | 
			
		||||
 | 
			
		||||
#!ifdef WITH_REGINFO
 | 
			
		||||
@@ -427,6 +428,8 @@ modparam("ims_qos", "authorize_video_flow", 1)
 | 
			
		||||
modparam("ims_qos", "af_signaling_ip", RX_AF_SIGNALING_IP)
 | 
			
		||||
modparam("ims_qos", "include_rtcp_fd", 1)
 | 
			
		||||
modparam("ims_qos", "rx_auth_expiry", 36000)
 | 
			
		||||
modparam("ims_qos", "recv_mode", 1)
 | 
			
		||||
modparam("ims_qos", "dialog_direction", RX_IMS_REG_DIALOG_DIRECTION)
 | 
			
		||||
#!endif
 | 
			
		||||
 | 
			
		||||
# -- pua params --
 | 
			
		||||
 
 | 
			
		||||
@@ -16,6 +16,21 @@ listen=tcp:PCSCF_IP:5060
 | 
			
		||||
#!define IPSEC_SERVER_PORT 6100
 | 
			
		||||
#!define IPSEC_MAX_CONN 10
 | 
			
		||||
 | 
			
		||||
# Value: 1 for true and 0 for false
 | 
			
		||||
#!define IPSEC_DELETE_UNUSED_TUNNELS 1
 | 
			
		||||
 | 
			
		||||
# Delay in seconds to delete contact from registrar
 | 
			
		||||
#!define CONTACT_DELETE_DELAY 10
 | 
			
		||||
 | 
			
		||||
# Logical OR of following flags:
 | 
			
		||||
# - IPSEC_SEND_FORCE_SOCKET 1
 | 
			
		||||
# - IPSEC_SETDSTURI_FULL 128
 | 
			
		||||
# - IPSEC_FORWARD_USEVIA 256
 | 
			
		||||
# - IPSEC_FORWARD_TRYTCP 512
 | 
			
		||||
#!define IPSEC_FORWARD_FLAGS 897
 | 
			
		||||
 | 
			
		||||
#!define RX_IMS_REG_DIALOG_DIRECTION 3
 | 
			
		||||
 | 
			
		||||
# IP used in Rx_AAR_Register - IP of this P-CSCF, to be used in the flow for the AF-signaling
 | 
			
		||||
#!define RX_AF_SIGNALING_IP "PCSCF_IP"
 | 
			
		||||
# Uncomment the below line only when UE is behind double NAT (e.g. VoIP calling over WiFi/ CN behind a NAT)
 | 
			
		||||
 
 | 
			
		||||
@@ -111,7 +111,7 @@ onreply_route[MO_reply] {
 | 
			
		||||
		append_hf("Contact: $ct;$hdr(C-Params)\r\n");
 | 
			
		||||
	}
 | 
			
		||||
#!ifdef WITH_IPSEC
 | 
			
		||||
	ipsec_forward("location");
 | 
			
		||||
	ipsec_forward("location", IPSEC_FORWARD_FLAGS);
 | 
			
		||||
#!endif
 | 
			
		||||
	# In case of 1xx and 2xx do NAT
 | 
			
		||||
	if(status=~"[12][0-9][0-9]")
 | 
			
		||||
@@ -177,7 +177,7 @@ route[MO_indialog] {
 | 
			
		||||
#!ifdef WITH_IPSEC
 | 
			
		||||
	if ($dd != "" && $rd != "" && $fs != "") {
 | 
			
		||||
        if ($rd =~ ".*" + $dd + ".*") {
 | 
			
		||||
			ipsec_forward("location");
 | 
			
		||||
			ipsec_forward("location", IPSEC_FORWARD_FLAGS);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
#!endif
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ route[MT] {
 | 
			
		||||
    xnotice("Contact header: $ct\n");
 | 
			
		||||
    set_dlg_profile("term");
 | 
			
		||||
#!ifdef WITH_IPSEC
 | 
			
		||||
    ipsec_forward("location");
 | 
			
		||||
    ipsec_forward("location", IPSEC_FORWARD_FLAGS);
 | 
			
		||||
#!endif
 | 
			
		||||
	t_on_reply("MT_reply");
 | 
			
		||||
}
 | 
			
		||||
@@ -96,7 +96,7 @@ route[MT_indialog] {
 | 
			
		||||
#!ifdef WITH_IPSEC
 | 
			
		||||
    if ($dd != "" && $rd != "" && $fs != "") {
 | 
			
		||||
        if ($rd =~ ".*" + $dd + ".*") {
 | 
			
		||||
            ipsec_forward("location");
 | 
			
		||||
            ipsec_forward("location", IPSEC_FORWARD_FLAGS);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
#!endif
 | 
			
		||||
 
 | 
			
		||||
@@ -257,11 +257,11 @@ onreply_route[REGISTER_reply]
 | 
			
		||||
		update_stat("register_success", "+1");
 | 
			
		||||
		update_stat("register_time", "$var(stat_add)");
 | 
			
		||||
#!ifdef WITH_IPSEC
 | 
			
		||||
            ipsec_forward("location");
 | 
			
		||||
            ipsec_forward("location", IPSEC_FORWARD_FLAGS);
 | 
			
		||||
   	}
 | 
			
		||||
	else {
 | 
			
		||||
		if (t_check_status("401")) {
 | 
			
		||||
			if($(T_req($hdr(Security-Client))) != $null && ipsec_create("location")!=1) {
 | 
			
		||||
			if($(T_req($hdr(Security-Client))) != $null && ipsec_create("location", IPSEC_DELETE_UNUSED_TUNNELS)!=1) {
 | 
			
		||||
				send_reply("503", "Service Unavailable (Create ipsec failed)");
 | 
			
		||||
			}
 | 
			
		||||
			if ($sht(ipsec_clients=>$(T_req($ct){nameaddr.uri})) != $null) {
 | 
			
		||||
 
 | 
			
		||||
@@ -130,6 +130,14 @@ route[NATMANAGE] {
 | 
			
		||||
		return;
 | 
			
		||||
#!endif
 | 
			
		||||
 | 
			
		||||
	# Fix for calling between UEs not supporting preconditioning
 | 
			
		||||
	if(sdp_get_line_startswith("$avp(mline)", "a=inactive")) {
 | 
			
		||||
		xlog("m-line: $avp(mline)\n");
 | 
			
		||||
		sdp_remove_line_by_prefix("a=inactive");
 | 
			
		||||
		$sdp(body) = $sdp(body) + "a=sendrecv\r\n";
 | 
			
		||||
		msg_apply_changes();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if ((is_reply() && ($T_req($tt) != $null)) || (is_request() && has_totag())) {
 | 
			
		||||
		if (($fU != $null && is_in_profile("caller", "$fU")) ||
 | 
			
		||||
			($tU != $null && is_in_profile("callee", "$tU"))) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
version: '3'
 | 
			
		||||
services:
 | 
			
		||||
  mongo:
 | 
			
		||||
    image: mongo:6.0
 | 
			
		||||
    image: mongo:4.2
 | 
			
		||||
    container_name: mongo
 | 
			
		||||
    command: --bind_ip 0.0.0.0
 | 
			
		||||
    env_file:
 | 
			
		||||
@@ -31,15 +31,16 @@ services:
 | 
			
		||||
      - /etc/timezone:/etc/timezone:ro
 | 
			
		||||
      - /etc/localtime:/etc/localtime:ro
 | 
			
		||||
    expose:
 | 
			
		||||
      - "3000/tcp"
 | 
			
		||||
      - "9999/tcp"
 | 
			
		||||
    ports:
 | 
			
		||||
      - "3000:3000/tcp"
 | 
			
		||||
      - "9999:9999/tcp"
 | 
			
		||||
    networks:
 | 
			
		||||
      default:
 | 
			
		||||
        ipv4_address: ${WEBUI_IP}
 | 
			
		||||
  nrf:
 | 
			
		||||
    image: docker_open5gs
 | 
			
		||||
    container_name: nrf
 | 
			
		||||
    dns: ${DNS_IP}
 | 
			
		||||
    env_file:
 | 
			
		||||
      - .env
 | 
			
		||||
    environment:
 | 
			
		||||
@@ -54,6 +55,8 @@ services:
 | 
			
		||||
    networks:
 | 
			
		||||
      default:
 | 
			
		||||
        ipv4_address: ${NRF_IP}
 | 
			
		||||
        aliases:
 | 
			
		||||
          - nrf.5gc.mnc0${MNC}.mcc${MCC}.3gppnetwork.org
 | 
			
		||||
  scp:
 | 
			
		||||
    image: docker_open5gs
 | 
			
		||||
    container_name: scp
 | 
			
		||||
@@ -68,6 +71,7 @@ services:
 | 
			
		||||
      - /etc/localtime:/etc/localtime:ro
 | 
			
		||||
    expose:
 | 
			
		||||
      - "7777/tcp"
 | 
			
		||||
      - "80/tcp"
 | 
			
		||||
    networks:
 | 
			
		||||
      default:
 | 
			
		||||
        ipv4_address: ${SCP_IP}
 | 
			
		||||
@@ -77,6 +81,7 @@ services:
 | 
			
		||||
      - nrf
 | 
			
		||||
      - scp
 | 
			
		||||
    container_name: ausf
 | 
			
		||||
    dns: ${DNS_IP}
 | 
			
		||||
    env_file:
 | 
			
		||||
      - .env
 | 
			
		||||
    environment:
 | 
			
		||||
@@ -91,6 +96,8 @@ services:
 | 
			
		||||
    networks:
 | 
			
		||||
      default:
 | 
			
		||||
        ipv4_address: ${AUSF_IP}
 | 
			
		||||
        aliases:
 | 
			
		||||
          - ausf.5gc.mnc0${MNC}.mcc${MCC}.3gppnetwork.org
 | 
			
		||||
  udr:
 | 
			
		||||
    image: docker_open5gs
 | 
			
		||||
    depends_on:
 | 
			
		||||
@@ -118,6 +125,7 @@ services:
 | 
			
		||||
      - nrf
 | 
			
		||||
      - scp
 | 
			
		||||
    container_name: udm
 | 
			
		||||
    dns: ${DNS_IP}
 | 
			
		||||
    env_file:
 | 
			
		||||
      - .env
 | 
			
		||||
    environment:
 | 
			
		||||
@@ -132,6 +140,8 @@ services:
 | 
			
		||||
    networks:
 | 
			
		||||
      default:
 | 
			
		||||
        ipv4_address: ${UDM_IP}
 | 
			
		||||
        aliases:
 | 
			
		||||
          - udm.5gc.mnc0${MNC}.mcc${MCC}.3gppnetwork.org
 | 
			
		||||
  smf:
 | 
			
		||||
    image: docker_open5gs
 | 
			
		||||
    depends_on:
 | 
			
		||||
@@ -183,8 +193,8 @@ services:
 | 
			
		||||
      - "2152/udp"
 | 
			
		||||
      - "8805/udp"
 | 
			
		||||
      - "9091/tcp"
 | 
			
		||||
    # ports:
 | 
			
		||||
    #   - "2152:2152/udp"
 | 
			
		||||
    ports:
 | 
			
		||||
      - "2152:2152/udp"
 | 
			
		||||
    cap_add:
 | 
			
		||||
      - NET_ADMIN
 | 
			
		||||
    privileged: true
 | 
			
		||||
@@ -218,8 +228,8 @@ services:
 | 
			
		||||
      - "38412/sctp"
 | 
			
		||||
      - "7777/tcp"
 | 
			
		||||
      - "9091/tcp"
 | 
			
		||||
    # ports:
 | 
			
		||||
    #   - "38412:38412/sctp"
 | 
			
		||||
    ports:
 | 
			
		||||
      - "38412:38412/sctp"
 | 
			
		||||
    networks:
 | 
			
		||||
      default:
 | 
			
		||||
        ipv4_address: ${AMF_IP}
 | 
			
		||||
@@ -287,27 +297,58 @@ services:
 | 
			
		||||
    networks:
 | 
			
		||||
      default:
 | 
			
		||||
        ipv4_address: ${NSSF_IP}
 | 
			
		||||
  metrics:
 | 
			
		||||
    build: ./metrics
 | 
			
		||||
    image: docker_metrics
 | 
			
		||||
    container_name: metrics
 | 
			
		||||
  sepp:
 | 
			
		||||
    image: docker_open5gs
 | 
			
		||||
    depends_on:
 | 
			
		||||
      - nrf
 | 
			
		||||
      - scp
 | 
			
		||||
      - dns
 | 
			
		||||
    container_name: sepp
 | 
			
		||||
    dns: ${DNS_IP}
 | 
			
		||||
    env_file:
 | 
			
		||||
      - .env
 | 
			
		||||
    environment:
 | 
			
		||||
      - COMPONENT_NAME=sepp-1
 | 
			
		||||
    volumes:
 | 
			
		||||
      - ./metrics:/mnt/metrics
 | 
			
		||||
      - ./sepp:/mnt/sepp
 | 
			
		||||
      - ./log:/open5gs/install/var/log/open5gs
 | 
			
		||||
      - /etc/timezone:/etc/timezone:ro
 | 
			
		||||
      - /etc/localtime:/etc/localtime:ro
 | 
			
		||||
    expose:
 | 
			
		||||
      - "9090/tcp"
 | 
			
		||||
      - "7777/tcp"
 | 
			
		||||
      - "7779/tcp"
 | 
			
		||||
      - "7780/tcp"
 | 
			
		||||
    ports:
 | 
			
		||||
      - "9090:9090/tcp"
 | 
			
		||||
      # - "7779:7779/tcp"
 | 
			
		||||
      - "7777:7777/tcp"
 | 
			
		||||
    networks:
 | 
			
		||||
      default:
 | 
			
		||||
        ipv4_address: ${METRICS_IP}
 | 
			
		||||
        ipv4_address: ${SEPP_IP}
 | 
			
		||||
        aliases:
 | 
			
		||||
          - sepp.5gc.mnc0${MNC}.mcc${MCC}.3gppnetwork.org
 | 
			
		||||
  dns:
 | 
			
		||||
    build: ./dns
 | 
			
		||||
    image: docker_dns
 | 
			
		||||
    container_name: dns
 | 
			
		||||
    env_file:
 | 
			
		||||
      - .env
 | 
			
		||||
    volumes:
 | 
			
		||||
      - ./dns:/mnt/dns
 | 
			
		||||
      - /etc/timezone:/etc/timezone:ro
 | 
			
		||||
      - /etc/localtime:/etc/localtime:ro
 | 
			
		||||
    expose:
 | 
			
		||||
      - "53/udp"
 | 
			
		||||
    networks:
 | 
			
		||||
      default:
 | 
			
		||||
        ipv4_address: ${DNS_IP}
 | 
			
		||||
networks:
 | 
			
		||||
  default:
 | 
			
		||||
    name: docker_open5gs_default
 | 
			
		||||
    ipam:
 | 
			
		||||
      config:
 | 
			
		||||
        - subnet: ${TEST_NETWORK}
 | 
			
		||||
volumes:
 | 
			
		||||
  mongodbdata: {}
 | 
			
		||||
  grafana_data:
 | 
			
		||||
    name: grafana_data
 | 
			
		||||
  mongodbdata:
 | 
			
		||||
    name: docker_open5gs_mongodbdata
 | 
			
		||||
 
 | 
			
		||||
@@ -491,9 +491,14 @@ services:
 | 
			
		||||
        ipv4_address: ${SMSC_IP}
 | 
			
		||||
networks:
 | 
			
		||||
  default:
 | 
			
		||||
    name: docker_open5gs_default
 | 
			
		||||
    ipam:
 | 
			
		||||
      config:
 | 
			
		||||
        - subnet: ${TEST_NETWORK}
 | 
			
		||||
volumes:
 | 
			
		||||
  mongodbdata: {}
 | 
			
		||||
  dbdata: {}
 | 
			
		||||
  grafana_data:
 | 
			
		||||
    name: grafana_data
 | 
			
		||||
  mongodbdata:
 | 
			
		||||
    name: docker_open5gs_mongodbdata
 | 
			
		||||
  dbdata:
 | 
			
		||||
    name: docker_open5gs_dbdata
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										22
									
								
								scp/scp.yaml
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								scp/scp.yaml
									
									
									
									
									
								
							@@ -1,5 +1,6 @@
 | 
			
		||||
logger:
 | 
			
		||||
    file: /open5gs/install/var/log/open5gs/scp.log
 | 
			
		||||
    file:
 | 
			
		||||
      path: /open5gs/install/var/log/open5gs/scp.log
 | 
			
		||||
 | 
			
		||||
sbi:
 | 
			
		||||
    server:
 | 
			
		||||
@@ -7,16 +8,15 @@ sbi:
 | 
			
		||||
    client:
 | 
			
		||||
      no_tls: true
 | 
			
		||||
 | 
			
		||||
parameter:
 | 
			
		||||
global:
 | 
			
		||||
  max:
 | 
			
		||||
    ue: MAX_NUM_UE
 | 
			
		||||
 | 
			
		||||
scp:
 | 
			
		||||
    sbi:
 | 
			
		||||
      addr:
 | 
			
		||||
        - SCP_IP
 | 
			
		||||
      port: 7777
 | 
			
		||||
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - NRF_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
      server:
 | 
			
		||||
        - address: SCP_IP
 | 
			
		||||
          port: 7777
 | 
			
		||||
      client:
 | 
			
		||||
        nrf:
 | 
			
		||||
          - uri: http://nrf.FIVEGC_DOMAIN
 | 
			
		||||
 
 | 
			
		||||
@@ -26,9 +26,13 @@
 | 
			
		||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
			
		||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
 | 
			
		||||
[ ${#MNC} == 3 ] && FIVEGC_DOMAIN="5gc.mnc${MNC}.mcc${MCC}.3gppnetwork.org" || FIVEGC_DOMAIN="5gc.mnc0${MNC}.mcc${MCC}.3gppnetwork.org"
 | 
			
		||||
 | 
			
		||||
cp /mnt/scp/scp.yaml install/etc/open5gs
 | 
			
		||||
sed -i 's|SCP_IP|'$SCP_IP'|g' install/etc/open5gs/scp.yaml
 | 
			
		||||
sed -i 's|NRF_IP|'$NRF_IP'|g' install/etc/open5gs/scp.yaml
 | 
			
		||||
sed -i 's|MAX_NUM_UE|'$MAX_NUM_UE'|g' install/etc/open5gs/scp.yaml
 | 
			
		||||
sed -i 's|FIVEGC_DOMAIN|'$FIVEGC_DOMAIN'|g' install/etc/open5gs/scp.yaml
 | 
			
		||||
 | 
			
		||||
# Sync docker time
 | 
			
		||||
#ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 | 
			
		||||
 
 | 
			
		||||
@@ -291,6 +291,7 @@ modparam("ims_auth", "auth_data_timeout", 600000)
 | 
			
		||||
modparam("ims_auth", "auth_used_vector_timeout", 600000)
 | 
			
		||||
modparam("ims_auth", "av_request_at_once", 1)
 | 
			
		||||
modparam("ims_auth", "av_request_at_sync", 1)
 | 
			
		||||
modparam("ims_auth", "registration_qop", "auth")
 | 
			
		||||
 | 
			
		||||
# -- ims_registrar_scscf params --
 | 
			
		||||
#!ifdef WITH_DEBUG
 | 
			
		||||
@@ -1168,7 +1169,7 @@ route[PSTN_handling]
 | 
			
		||||
	# $ru:           tel:+(34)-999-888-777
 | 
			
		||||
	# $fu:           sip:test@foo.com
 | 
			
		||||
	# becomes $ru:   sip:+34999888777@foo.com;user=phone
 | 
			
		||||
	if (tel2sip("$ru", "$fd", "$ru") < 0)
 | 
			
		||||
	if (tel2sip2("$ru", "$fd", "$ru") < 0)
 | 
			
		||||
		xlog("L_WARN","Failed to convert $ru to a sip:-URI - M=$rm R=$ru F=$fu T=$tu IP=$si:$sp ID=$ci\n\n");
 | 
			
		||||
 | 
			
		||||
	if ($rU =~ "\+[0-9]+") {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										32
									
								
								sepp/sepp.yaml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										32
									
								
								sepp/sepp.yaml
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
logger:
 | 
			
		||||
  file: /open5gs/install/var/log/open5gs/sepp.log
 | 
			
		||||
 | 
			
		||||
sbi:
 | 
			
		||||
    server:
 | 
			
		||||
      no_tls: true
 | 
			
		||||
    client:
 | 
			
		||||
      no_tls: true
 | 
			
		||||
 | 
			
		||||
global:
 | 
			
		||||
  max:
 | 
			
		||||
    ue: 1024
 | 
			
		||||
 | 
			
		||||
sepp:
 | 
			
		||||
  sbi:
 | 
			
		||||
    server:
 | 
			
		||||
      - address: SEPP_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
    client:
 | 
			
		||||
      nrf:
 | 
			
		||||
        - uri: http://NRF_IP:7777
 | 
			
		||||
      scp:
 | 
			
		||||
        - uri: http://SCP_IP:7777
 | 
			
		||||
  n32:
 | 
			
		||||
    server:
 | 
			
		||||
      - sender: sepp.FIVEGC_DOMAIN
 | 
			
		||||
#        address: SEPP_IP
 | 
			
		||||
#        port: 7778
 | 
			
		||||
    client:
 | 
			
		||||
      sepp:
 | 
			
		||||
        - receiver: sepp.FIVEGC_DOMAIN_R
 | 
			
		||||
          uri: http://DOCKER_HOST_IP_R:7777
 | 
			
		||||
							
								
								
									
										47
									
								
								sepp/sepp_init.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										47
									
								
								sepp/sepp_init.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
# BSD 2-Clause License
 | 
			
		||||
 | 
			
		||||
# Copyright (c) 2020, Supreeth Herle
 | 
			
		||||
# All rights reserved.
 | 
			
		||||
 | 
			
		||||
# Redistribution and use in source and binary forms, with or without
 | 
			
		||||
# modification, are permitted provided that the following conditions are met:
 | 
			
		||||
 | 
			
		||||
# 1. Redistributions of source code must retain the above copyright notice, this
 | 
			
		||||
#    list of conditions and the following disclaimer.
 | 
			
		||||
 | 
			
		||||
# 2. Redistributions in binary form must reproduce the above copyright notice,
 | 
			
		||||
#    this list of conditions and the following disclaimer in the documentation
 | 
			
		||||
#    and/or other materials provided with the distribution.
 | 
			
		||||
 | 
			
		||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 | 
			
		||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
			
		||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 | 
			
		||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 | 
			
		||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
			
		||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 | 
			
		||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 | 
			
		||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 | 
			
		||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
			
		||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
 | 
			
		||||
[ ${#MNC} == 3 ] && FIVEGC_DOMAIN="5gc.mnc${MNC}.mcc${MCC}.3gppnetwork.org" || FIVEGC_DOMAIN="5gc.mnc0${MNC}.mcc${MCC}.3gppnetwork.org"
 | 
			
		||||
[ ${#MNC} == 3 ] && FIVEGC_DOMAIN_R="5gc.mnc${MNC_R}.mcc${MCC_R}.3gppnetwork.org" || FIVEGC_DOMAIN_R="5gc.mnc0${MNC_R}.mcc${MCC_R}.3gppnetwork.org"
 | 
			
		||||
 | 
			
		||||
cp /mnt/sepp/sepp.yaml install/etc/open5gs
 | 
			
		||||
sed -i 's|SEPP_IP|'$SEPP_IP'|g' install/etc/open5gs/sepp.yaml
 | 
			
		||||
sed -i 's|NRF_IP|'$NRF_IP'|g' install/etc/open5gs/sepp.yaml
 | 
			
		||||
sed -i 's|MNC_R|'$MNC_R'|g' install/etc/open5gs/sepp.yaml
 | 
			
		||||
sed -i 's|MCC_R|'$MCC_R'|g' install/etc/open5gs/sepp.yaml
 | 
			
		||||
sed -i 's|MCC|'$MCC'|g' install/etc/open5gs/sepp.yaml
 | 
			
		||||
sed -i 's|MNC|'$MNC'|g' install/etc/open5gs/sepp.yaml
 | 
			
		||||
sed -i 's|SCP_IP|'$SCP_IP'|g' install/etc/open5gs/sepp.yaml
 | 
			
		||||
sed -i 's|DOCKER_HOST_IP_R|'$DOCKER_HOST_IP_R'|g' install/etc/open5gs/sepp.yaml
 | 
			
		||||
sed -i 's|FIVEGC_DOMAIN_R|'$FIVEGC_DOMAIN_R'|g' install/etc/open5gs/sepp.yaml
 | 
			
		||||
sed -i 's|FIVEGC_DOMAIN|'$FIVEGC_DOMAIN'|g' install/etc/open5gs/sepp.yaml
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Sync docker time
 | 
			
		||||
#ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 | 
			
		||||
 | 
			
		||||
@@ -5,10 +5,11 @@ parameter:
 | 
			
		||||
 | 
			
		||||
sgwc:
 | 
			
		||||
    gtpc:
 | 
			
		||||
      - addr: SGWC_IP
 | 
			
		||||
      server:
 | 
			
		||||
        - address: SGWC_IP
 | 
			
		||||
    pfcp:
 | 
			
		||||
      - addr: SGWC_IP
 | 
			
		||||
 | 
			
		||||
sgwu:
 | 
			
		||||
    pfcp:
 | 
			
		||||
      - addr: SGWU_IP
 | 
			
		||||
      server:
 | 
			
		||||
        - address: SGWC_IP
 | 
			
		||||
      client:
 | 
			
		||||
        sgwu:
 | 
			
		||||
          - address: SGWU_IP
 | 
			
		||||
 
 | 
			
		||||
@@ -5,11 +5,12 @@ parameter:
 | 
			
		||||
 | 
			
		||||
sgwu:
 | 
			
		||||
    gtpu:
 | 
			
		||||
      - addr: SGWU_IP
 | 
			
		||||
        advertise: SGWU_ADVERTISE_IP
 | 
			
		||||
      server:
 | 
			
		||||
        - address: SGWU_IP
 | 
			
		||||
          advertise: SGWU_ADVERTISE_IP
 | 
			
		||||
    pfcp:
 | 
			
		||||
      - addr: SGWU_IP
 | 
			
		||||
 | 
			
		||||
sgwc:
 | 
			
		||||
    pfcp:
 | 
			
		||||
      - addr: SGWC_IP
 | 
			
		||||
      server:
 | 
			
		||||
        - address: SGWU_IP
 | 
			
		||||
      client:
 | 
			
		||||
        sgwc:
 | 
			
		||||
          - address: SGWC_IP
 | 
			
		||||
 
 | 
			
		||||
@@ -60,8 +60,7 @@ def start(ip_range):
 | 
			
		||||
        raise ValueError('Invalid UE IPv4 range. Only one IP given')
 | 
			
		||||
    else:
 | 
			
		||||
        first_ip_addr = first_ip_addr.exploded
 | 
			
		||||
        ip_netmask_prefix = ip_range.prefixlen
 | 
			
		||||
        print(str(first_ip_addr) + '/' + str(ip_netmask_prefix))
 | 
			
		||||
        print(str(first_ip_addr))
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    try:
 | 
			
		||||
 
 | 
			
		||||
@@ -174,7 +174,7 @@ TLS_CA = "/open5gs/install/etc/freeDiameter/cacert.pem";
 | 
			
		||||
# algorithms. In addition the "0xffffff" application is advertised in CER/CEA 
 | 
			
		||||
# exchanges.
 | 
			
		||||
# Default: Relaying is enabled.
 | 
			
		||||
#NoRelay;
 | 
			
		||||
NoRelay;
 | 
			
		||||
 | 
			
		||||
# Number of server threads that can handle incoming messages at the same time.
 | 
			
		||||
# Default: 4
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										71
									
								
								smf/smf.yaml
									
									
									
									
									
								
							
							
						
						
									
										71
									
								
								smf/smf.yaml
									
									
									
									
									
								
							@@ -1,5 +1,6 @@
 | 
			
		||||
logger:
 | 
			
		||||
    file: /open5gs/install/var/log/open5gs/smf.log
 | 
			
		||||
    file:
 | 
			
		||||
      path: /open5gs/install/var/log/open5gs/smf.log
 | 
			
		||||
 | 
			
		||||
sbi:
 | 
			
		||||
    server:
 | 
			
		||||
@@ -7,33 +8,48 @@ sbi:
 | 
			
		||||
    client:
 | 
			
		||||
      no_tls: true
 | 
			
		||||
 | 
			
		||||
parameter:
 | 
			
		||||
    no_ipv4v6_local_addr_in_packet_filter: true
 | 
			
		||||
global:
 | 
			
		||||
  max:
 | 
			
		||||
    ue: MAX_NUM_UE
 | 
			
		||||
  parameter:
 | 
			
		||||
      no_ipv4v6_local_addr_in_packet_filter: true
 | 
			
		||||
 | 
			
		||||
smf:
 | 
			
		||||
    freeDiameter: /open5gs/install/etc/freeDiameter/smf.conf
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: SMF_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
      server:
 | 
			
		||||
        - address: SMF_IP
 | 
			
		||||
          port: 7777
 | 
			
		||||
      client:
 | 
			
		||||
        nrf:
 | 
			
		||||
          - uri: http://NRF_IP:7777
 | 
			
		||||
        scp:
 | 
			
		||||
          - uri: http://SCP_IP:7777
 | 
			
		||||
    gtpc:
 | 
			
		||||
      - addr: SMF_IP
 | 
			
		||||
      server:
 | 
			
		||||
        - address: SMF_IP
 | 
			
		||||
    gtpu:
 | 
			
		||||
      - addr: SMF_IP
 | 
			
		||||
      server:
 | 
			
		||||
        - address: SMF_IP
 | 
			
		||||
    pfcp:
 | 
			
		||||
      - addr: SMF_IP
 | 
			
		||||
    subnet:
 | 
			
		||||
      - addr: UE_IPV4_INTERNET_TUN_IP
 | 
			
		||||
      server:
 | 
			
		||||
        - address: SMF_IP
 | 
			
		||||
      client:
 | 
			
		||||
        upf:
 | 
			
		||||
          - address: UPF_IP
 | 
			
		||||
    session:
 | 
			
		||||
      - subnet: UE_IPV4_INTERNET_SUBNET
 | 
			
		||||
        gateway: UE_IPV4_INTERNET_TUN_IP
 | 
			
		||||
        dnn: internet
 | 
			
		||||
        dev: ogstun
 | 
			
		||||
      - addr: 2001:230:cafe::1/48
 | 
			
		||||
        dev: ogstun
 | 
			
		||||
      - subnet: 2001:230:cafe::/48
 | 
			
		||||
        gateway: 2001:230:cafe::1
 | 
			
		||||
        dnn: internet
 | 
			
		||||
      - addr: UE_IPV4_IMS_TUN_IP
 | 
			
		||||
      - subnet: UE_IPV4_IMS_SUBNET
 | 
			
		||||
        gateway: UE_IPV4_IMS_TUN_IP
 | 
			
		||||
        dnn: ims
 | 
			
		||||
        dev: ogstun2
 | 
			
		||||
      - addr: 2001:230:babe::1/48
 | 
			
		||||
      - subnet: 2001:230:babe::/48
 | 
			
		||||
        gateway: 2001:230:babe::1
 | 
			
		||||
        dnn: ims
 | 
			
		||||
        dev: ogstun2
 | 
			
		||||
    dns:
 | 
			
		||||
      - SMF_DNS1
 | 
			
		||||
      - SMF_DNS2
 | 
			
		||||
@@ -43,21 +59,6 @@ smf:
 | 
			
		||||
      - PCSCF_IP
 | 
			
		||||
    mtu: 1450
 | 
			
		||||
    metrics:
 | 
			
		||||
      - addr: SMF_IP
 | 
			
		||||
        port: 9091
 | 
			
		||||
 | 
			
		||||
scp:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - SCP_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - NRF_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
upf:
 | 
			
		||||
    pfcp:
 | 
			
		||||
      - addr: UPF_IP
 | 
			
		||||
      server:
 | 
			
		||||
        - address: SMF_IP
 | 
			
		||||
          port: 9091
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,6 @@
 | 
			
		||||
logger:
 | 
			
		||||
    file: /open5gs/install/var/log/open5gs/smf.log
 | 
			
		||||
    file:
 | 
			
		||||
      path: /open5gs/install/var/log/open5gs/smf.log
 | 
			
		||||
 | 
			
		||||
sbi:
 | 
			
		||||
    server:
 | 
			
		||||
@@ -7,30 +8,39 @@ sbi:
 | 
			
		||||
    client:
 | 
			
		||||
      no_tls: true
 | 
			
		||||
 | 
			
		||||
parameter:
 | 
			
		||||
    no_ipv4v6_local_addr_in_packet_filter: true
 | 
			
		||||
global:
 | 
			
		||||
  max:
 | 
			
		||||
    ue: MAX_NUM_UE
 | 
			
		||||
  parameter:
 | 
			
		||||
      no_ipv4v6_local_addr_in_packet_filter: true
 | 
			
		||||
 | 
			
		||||
smf:
 | 
			
		||||
    freeDiameter: /open5gs/install/etc/freeDiameter/smf.conf
 | 
			
		||||
    gtpc:
 | 
			
		||||
      - addr: SMF_IP
 | 
			
		||||
      server:
 | 
			
		||||
        - address: SMF_IP
 | 
			
		||||
    gtpu:
 | 
			
		||||
      - addr: SMF_IP
 | 
			
		||||
      server:
 | 
			
		||||
        - address: SMF_IP
 | 
			
		||||
    pfcp:
 | 
			
		||||
      - addr: SMF_IP
 | 
			
		||||
    subnet:
 | 
			
		||||
      - addr: UE_IPV4_INTERNET_TUN_IP
 | 
			
		||||
      server:
 | 
			
		||||
        - address: SMF_IP
 | 
			
		||||
      client:
 | 
			
		||||
        upf:
 | 
			
		||||
          - address: UPF_IP
 | 
			
		||||
    session:
 | 
			
		||||
      - subnet: UE_IPV4_INTERNET_SUBNET
 | 
			
		||||
        gateway: UE_IPV4_INTERNET_TUN_IP
 | 
			
		||||
        dnn: internet
 | 
			
		||||
        dev: ogstun
 | 
			
		||||
      - addr: 2001:230:cafe::1/48
 | 
			
		||||
        dev: ogstun
 | 
			
		||||
      - subnet: 2001:230:cafe::/48
 | 
			
		||||
        gateway: 2001:230:cafe::1
 | 
			
		||||
        dnn: internet
 | 
			
		||||
      - addr: UE_IPV4_IMS_TUN_IP
 | 
			
		||||
      - subnet: UE_IPV4_IMS_SUBNET
 | 
			
		||||
        gateway: UE_IPV4_IMS_TUN_IP
 | 
			
		||||
        dnn: ims
 | 
			
		||||
        dev: ogstun2
 | 
			
		||||
      - addr: 2001:230:babe::1/48
 | 
			
		||||
      - subnet: 2001:230:babe::/48
 | 
			
		||||
        gateway: 2001:230:babe::1
 | 
			
		||||
        dnn: ims
 | 
			
		||||
        dev: ogstun2
 | 
			
		||||
    dns:
 | 
			
		||||
      - SMF_DNS1
 | 
			
		||||
      - SMF_DNS2
 | 
			
		||||
@@ -40,9 +50,7 @@ smf:
 | 
			
		||||
      - PCSCF_IP
 | 
			
		||||
    mtu: 1450
 | 
			
		||||
    metrics:
 | 
			
		||||
      - addr: SMF_IP
 | 
			
		||||
        port: 9091
 | 
			
		||||
      server:
 | 
			
		||||
        - address: SMF_IP
 | 
			
		||||
          port: 9091
 | 
			
		||||
 | 
			
		||||
upf:
 | 
			
		||||
    pfcp:
 | 
			
		||||
      - addr: UPF_IP
 | 
			
		||||
 
 | 
			
		||||
@@ -51,8 +51,11 @@ sed -i 's|UPF_IP|'$UPF_IP'|g' install/etc/open5gs/smf.yaml
 | 
			
		||||
sed -i 's|SMF_DNS1|'$SMF_DNS1'|g' install/etc/open5gs/smf.yaml
 | 
			
		||||
sed -i 's|SMF_DNS2|'$SMF_DNS2'|g' install/etc/open5gs/smf.yaml
 | 
			
		||||
sed -i 's|UE_IPV4_INTERNET_TUN_IP|'$UE_IPV4_INTERNET_TUN_IP'|g' install/etc/open5gs/smf.yaml
 | 
			
		||||
sed -i 's|UE_IPV4_INTERNET_SUBNET|'$UE_IPV4_INTERNET'|g' install/etc/open5gs/smf.yaml
 | 
			
		||||
sed -i 's|UE_IPV4_IMS_TUN_IP|'$UE_IPV4_IMS_TUN_IP'|g' install/etc/open5gs/smf.yaml
 | 
			
		||||
sed -i 's|UE_IPV4_IMS_SUBNET|'$UE_IPV4_IMS'|g' install/etc/open5gs/smf.yaml
 | 
			
		||||
sed -i 's|PCSCF_IP|'$PCSCF_IP'|g' install/etc/open5gs/smf.yaml
 | 
			
		||||
sed -i 's|MAX_NUM_UE|'$MAX_NUM_UE'|g' install/etc/open5gs/smf.yaml
 | 
			
		||||
sed -i 's|SMF_IP|'$SMF_IP'|g' install/etc/freeDiameter/smf.conf
 | 
			
		||||
sed -i 's|PCRF_IP|'$PCRF_IP'|g' install/etc/freeDiameter/smf.conf
 | 
			
		||||
sed -i 's|EPC_DOMAIN|'$EPC_DOMAIN'|g' install/etc/freeDiameter/smf.conf
 | 
			
		||||
 
 | 
			
		||||
@@ -69,7 +69,7 @@ loadmodule "pua"
 | 
			
		||||
loadmodule "pua_reginfo"
 | 
			
		||||
 | 
			
		||||
modparam("sqlops", "sqlcon", SMS_DB_URL)
 | 
			
		||||
modparam("dialplan|pua", "db_url", DIALPLAN_PUA_DB_URL)
 | 
			
		||||
modparam("dialplan", "db_url", DIALPLAN_PUA_DB_URL)
 | 
			
		||||
modparam("uac", "restore_mode", "none")
 | 
			
		||||
 | 
			
		||||
modparam("htable", "htable", "publish_sent=>size=8;autoexpire=SUBSCRIBE_EXPIRE")
 | 
			
		||||
@@ -81,6 +81,7 @@ modparam("rtimer", "exec", "timer=sms;route=SMS_WORKER")
 | 
			
		||||
 | 
			
		||||
modparam("pua_reginfo", "server_address", "sip:SMSC_SERVER")
 | 
			
		||||
modparam("pua_reginfo", "publish_reginfo", 0)
 | 
			
		||||
modparam("pua", "db_url", DIALPLAN_PUA_DB_URL)
 | 
			
		||||
 | 
			
		||||
####### Routing Logic ########
 | 
			
		||||
# Main SIP request routing logic
 | 
			
		||||
 
 | 
			
		||||
@@ -68,7 +68,7 @@ RUN git clone https://github.com/srsran/srsGUI && \
 | 
			
		||||
# Get srsLTE, compile and install
 | 
			
		||||
RUN git clone https://github.com/srsran/srsRAN_4G.git && \
 | 
			
		||||
    cd srsRAN_4G && \
 | 
			
		||||
    git checkout release_23_04_1 && \
 | 
			
		||||
    git checkout 4eb990c9c6ad9b0af943bba71d0f8355b3ebb259 && \
 | 
			
		||||
    mkdir build && cd build && \
 | 
			
		||||
    cmake ../ && make -j`nproc` && make install && \
 | 
			
		||||
    ldconfig
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										426
									
								
								srslte/gnb_zmq.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										426
									
								
								srslte/gnb_zmq.conf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,426 @@
 | 
			
		||||
#####################################################################
 | 
			
		||||
#                   srsENB configuration file
 | 
			
		||||
#####################################################################
 | 
			
		||||
 | 
			
		||||
#####################################################################
 | 
			
		||||
# eNB configuration
 | 
			
		||||
#
 | 
			
		||||
# enb_id:               20-bit eNB identifier.
 | 
			
		||||
# mcc:                  Mobile Country Code
 | 
			
		||||
# mnc:                  Mobile Network Code
 | 
			
		||||
# mme_addr:             IP address of MME for S1 connnection
 | 
			
		||||
# gtp_bind_addr:        Local IP address to bind for GTP connection
 | 
			
		||||
# gtp_advertise_addr:   IP address of eNB to advertise for DL GTP-U Traffic
 | 
			
		||||
# s1c_bind_addr:        Local IP address to bind for S1AP connection
 | 
			
		||||
# s1c_bind_port:        Source port for S1AP connection (0 means any)
 | 
			
		||||
# n_prb:                Number of Physical Resource Blocks (6,15,25,50,75,100)
 | 
			
		||||
# tm:                   Transmission mode 1-4 (TM1 default)
 | 
			
		||||
# nof_ports:            Number of Tx ports (1 port default, set to 2 for TM2/3/4)
 | 
			
		||||
#
 | 
			
		||||
#####################################################################
 | 
			
		||||
[enb]
 | 
			
		||||
enb_id = 0x19B
 | 
			
		||||
mcc = MCC
 | 
			
		||||
mnc = MNC
 | 
			
		||||
mme_addr = MME_IP
 | 
			
		||||
gtp_bind_addr = SRS_ENB_IP
 | 
			
		||||
s1c_bind_addr = SRS_ENB_IP
 | 
			
		||||
s1c_bind_port = 0
 | 
			
		||||
n_prb = 100
 | 
			
		||||
#tm = 4
 | 
			
		||||
#nof_ports = 2
 | 
			
		||||
 | 
			
		||||
#####################################################################
 | 
			
		||||
# eNB configuration files
 | 
			
		||||
#
 | 
			
		||||
# sib_config:  SIB1, SIB2 and SIB3 configuration file 
 | 
			
		||||
# note: When enabling MBMS, use the sib.conf.mbsfn configuration file which includes SIB13
 | 
			
		||||
# rr_config:   Radio Resources configuration file 
 | 
			
		||||
# rb_config:   SRB/DRB configuration file 
 | 
			
		||||
#####################################################################
 | 
			
		||||
[enb_files]
 | 
			
		||||
sib_config = /etc/srsran/sib.conf
 | 
			
		||||
rr_config  = /etc/srsran/rr.conf
 | 
			
		||||
rb_config = /etc/srsran/rb.conf
 | 
			
		||||
 | 
			
		||||
#####################################################################
 | 
			
		||||
# RF configuration
 | 
			
		||||
#
 | 
			
		||||
# dl_earfcn: EARFCN code for DL (only valid if a single cell is configured in rr.conf)
 | 
			
		||||
# tx_gain: Transmit gain (dB).
 | 
			
		||||
# rx_gain: Optional receive gain (dB). If disabled, AGC if enabled
 | 
			
		||||
#
 | 
			
		||||
# Optional parameters:
 | 
			
		||||
# dl_freq:            Override DL frequency corresponding to dl_earfcn
 | 
			
		||||
# ul_freq:            Override UL frequency corresponding to dl_earfcn (must be set if dl_freq is set)
 | 
			
		||||
# device_name:        Device driver family
 | 
			
		||||
#                     Supported options: "auto" (uses first driver found), "UHD", "bladeRF", "soapy", "zmq" or "Sidekiq"
 | 
			
		||||
# device_args:        Arguments for the device driver. Options are "auto" or any string.
 | 
			
		||||
#                     Default for UHD: "recv_frame_size=9232,send_frame_size=9232"
 | 
			
		||||
#                     Default for bladeRF: ""
 | 
			
		||||
# time_adv_nsamples:  Transmission time advance (in number of samples) to compensate for RF delay
 | 
			
		||||
#                     from antenna to timestamp insertion.
 | 
			
		||||
#                     Default "auto". B210 USRP: 100 samples, bladeRF: 27
 | 
			
		||||
#####################################################################
 | 
			
		||||
[rf]
 | 
			
		||||
#dl_earfcn = 3150
 | 
			
		||||
tx_gain = 80
 | 
			
		||||
rx_gain = 40
 | 
			
		||||
 | 
			
		||||
#device_name = auto
 | 
			
		||||
 | 
			
		||||
# For best performance in 2x2 MIMO and >= 15 MHz use the following device_args settings:
 | 
			
		||||
#     USRP B210: num_recv_frames=64,num_send_frames=64
 | 
			
		||||
#     And for 75 PRBs, also append ",master_clock_rate=15.36e6" to the device args
 | 
			
		||||
 | 
			
		||||
# For best performance when BW<5 MHz (25 PRB), use the following device_args settings:
 | 
			
		||||
#     USRP B210: send_frame_size=512,recv_frame_size=512
 | 
			
		||||
 | 
			
		||||
#device_args = auto
 | 
			
		||||
#time_adv_nsamples = auto
 | 
			
		||||
 | 
			
		||||
# Example for ZMQ-based operation with TCP transport for I/Q samples
 | 
			
		||||
device_name = zmq
 | 
			
		||||
device_args = fail_on_disconnect=true,tx_port=tcp://SRS_ENB_IP:2000,rx_port=tcp://SRS_UE_IP:2001,id=enb,base_srate=23.04e6
 | 
			
		||||
 | 
			
		||||
#####################################################################
 | 
			
		||||
# Packet capture configuration
 | 
			
		||||
#
 | 
			
		||||
# MAC-layer packets are captured to a file in the compact format which can
 | 
			
		||||
# be decoded by Wireshark. For decoding, use the UDP dissector and the UDP 
 | 
			
		||||
# heuristic dissection. Edit the preferences (Edit > Preferences > 
 | 
			
		||||
# Protocols > DLT_USER) for DLT_USER to add an entry for DLT=149 with 
 | 
			
		||||
# Protocol=udp. Further, enable the heuristic dissection in UDP under:
 | 
			
		||||
# Analyze > Enabled Protocols > MAC-LTE > mac_lte_udp and MAC-NR > mac_nr_udp
 | 
			
		||||
# For more information see: https://wiki.wireshark.org/MAC-LTE
 | 
			
		||||
# Configuring this Wireshark preferences is needed for decoding the MAC PCAP
 | 
			
		||||
# files as well as for the live network capture option.
 | 
			
		||||
#
 | 
			
		||||
# Please note that this setting will by default only capture MAC
 | 
			
		||||
# frames on dedicated channels, and not SIB.  You have to build with
 | 
			
		||||
# WRITE_SIB_PCAP enabled in srsenb/src/stack/mac/mac.cc if you want
 | 
			
		||||
# SIB to be part of the MAC pcap file.
 | 
			
		||||
#
 | 
			
		||||
# S1AP Packets are captured to a file in the compact format which can
 | 
			
		||||
# be decoded by the Wireshark s1ap dissector with DLT 150. 
 | 
			
		||||
# To use the dissector, edit the preferences for DLT_USER to 
 | 
			
		||||
# add an entry with DLT=150, Payload Protocol=s1ap.
 | 
			
		||||
#
 | 
			
		||||
# mac_enable:    Enable MAC layer packet captures (true/false)
 | 
			
		||||
# filename:      File path to use for LTE MAC packet captures
 | 
			
		||||
# nr_filename:   File path to use for NR MAC packet captures
 | 
			
		||||
# s1ap_enable:   Enable or disable the PCAP.
 | 
			
		||||
# s1ap_filename: File name where to save the PCAP.
 | 
			
		||||
#
 | 
			
		||||
# mac_net_enable: Enable MAC layer packet captures sent over the network (true/false default: false)
 | 
			
		||||
# bind_ip: Bind IP address for MAC network trace (default: "0.0.0.0")
 | 
			
		||||
# bind_port: Bind port for MAC network trace (default: 5687)
 | 
			
		||||
# client_ip: Client IP address for MAC network trace (default: "127.0.0.1")
 | 
			
		||||
# client_port Client IP address for MAC network trace (default: 5847)
 | 
			
		||||
#####################################################################
 | 
			
		||||
[pcap]
 | 
			
		||||
#enable = false
 | 
			
		||||
#filename = /mnt/srslte/enb_mac.pcap
 | 
			
		||||
#nr_filename = /mnt/srslte/enb_mac_nr.pcap
 | 
			
		||||
#s1ap_enable = false
 | 
			
		||||
#s1ap_filename = /mnt/srslte/enb_s1ap.pcap
 | 
			
		||||
 | 
			
		||||
#mac_net_enable = false
 | 
			
		||||
#bind_ip = 0.0.0.0
 | 
			
		||||
#bind_port = 5687
 | 
			
		||||
#client_ip = 127.0.0.1
 | 
			
		||||
#client_port = 5847
 | 
			
		||||
 | 
			
		||||
#####################################################################
 | 
			
		||||
# Log configuration
 | 
			
		||||
#
 | 
			
		||||
# Log levels can be set for individual layers. "all_level" sets log
 | 
			
		||||
# level for all layers unless otherwise configured.
 | 
			
		||||
# Format: e.g. phy_level = info
 | 
			
		||||
#
 | 
			
		||||
# In the same way, packet hex dumps can be limited for each level.
 | 
			
		||||
# "all_hex_limit" sets the hex limit for all layers unless otherwise
 | 
			
		||||
# configured.
 | 
			
		||||
# Format: e.g. phy_hex_limit = 32
 | 
			
		||||
#
 | 
			
		||||
# Logging layers: rf, phy, phy_lib, mac, rlc, pdcp, rrc, gtpu, s1ap, stack, all
 | 
			
		||||
# Logging levels: debug, info, warning, error, none
 | 
			
		||||
#
 | 
			
		||||
# filename: File path to use for log output. Can be set to stdout
 | 
			
		||||
#           to print logs to standard output
 | 
			
		||||
# file_max_size: Maximum file size (in kilobytes). When passed, multiple files are created.
 | 
			
		||||
#                If set to negative, a single log file will be created.
 | 
			
		||||
#####################################################################
 | 
			
		||||
[log]
 | 
			
		||||
all_level = warning
 | 
			
		||||
all_hex_limit = 32
 | 
			
		||||
filename = /mnt/srslte/enb.log
 | 
			
		||||
file_max_size = -1
 | 
			
		||||
 | 
			
		||||
[gui]
 | 
			
		||||
enable = false
 | 
			
		||||
 | 
			
		||||
#####################################################################
 | 
			
		||||
# Scheduler configuration options
 | 
			
		||||
#
 | 
			
		||||
# sched_policy:      User MAC scheduling policy (E.g. time_rr, time_pf)
 | 
			
		||||
# min_aggr_level:    Optional minimum aggregation level index (l=log2(L) can be 0, 1, 2 or 3)
 | 
			
		||||
# max_aggr_level:    Optional maximum aggregation level index (l=log2(L) can be 0, 1, 2 or 3)
 | 
			
		||||
# adaptive_aggr_level: Boolean flag to enable/disable adaptive aggregation level based on target BLER
 | 
			
		||||
# pdsch_mcs:         Optional fixed PDSCH MCS (ignores reported CQIs if specified)
 | 
			
		||||
# pdsch_max_mcs:     Optional PDSCH MCS limit
 | 
			
		||||
# pusch_mcs:         Optional fixed PUSCH MCS (ignores reported CQIs if specified)
 | 
			
		||||
# pusch_max_mcs:     Optional PUSCH MCS limit
 | 
			
		||||
# min_nof_ctrl_symbols: Minimum number of control symbols
 | 
			
		||||
# max_nof_ctrl_symbols: Maximum number of control symbols
 | 
			
		||||
# pucch_multiplex_enable: Allow PUCCH HARQ to collide with PUSCH and other PUCCH
 | 
			
		||||
# pucch_harq_max_rb: Maximum number of RB to be used for PUCCH on the edges of the grid.
 | 
			
		||||
#                    If defined and greater than 0, the scheduler will avoid DL PDCCH allocations if
 | 
			
		||||
#                    PUCCH HARQ falls outside this region
 | 
			
		||||
# target_bler:       Target BLER (in decimal) to achieve via adaptive link
 | 
			
		||||
# max_delta_dl_cqi:  Maximum shift in CQI for adaptive DL link
 | 
			
		||||
# max_delta_ul_snr:  Maximum shift in UL SNR for adaptive UL link
 | 
			
		||||
# adaptive_dl_mcs_step_size: Step size or learning rate used in adaptive DL MCS link
 | 
			
		||||
# adaptive_ul_mcs_step_size: Step size or learning rate used in adaptive UL MCS link
 | 
			
		||||
# min_tpc_tti_interval: Minimum TTI interval between TPCs different than 1
 | 
			
		||||
# ul_snr_avg_alpha:  Exponential Average alpha coefficient used in estimation of UL SNR
 | 
			
		||||
# init_ul_snr_value: Initial UL SNR value used for computing MCS in the first UL grant
 | 
			
		||||
# init_dl_cqi:       DL CQI value used before any CQI report is available to the eNB
 | 
			
		||||
# max_sib_coderate:  Upper bound on SIB and RAR grants coderate
 | 
			
		||||
# pdcch_cqi_offset:  CQI offset in derivation of PDCCH aggregation level
 | 
			
		||||
# nr_pdsch_mcs:      Optional fixed NR PDSCH MCS (ignores reported CQIs if specified)
 | 
			
		||||
# nr_pusch_mcs:      Optional fixed NR PUSCH MCS (ignores reported CQIs if specified)
 | 
			
		||||
#
 | 
			
		||||
#####################################################################
 | 
			
		||||
[scheduler]
 | 
			
		||||
#policy     = time_pf
 | 
			
		||||
#policy_args = 2
 | 
			
		||||
#min_aggr_level   = 0
 | 
			
		||||
#max_aggr_level   = 3
 | 
			
		||||
#adaptive_aggr_level = false
 | 
			
		||||
#pdsch_mcs        = -1
 | 
			
		||||
#pdsch_max_mcs    = -1
 | 
			
		||||
#pusch_mcs        = -1
 | 
			
		||||
#pusch_max_mcs    = 16
 | 
			
		||||
#min_nof_ctrl_symbols = 1
 | 
			
		||||
#max_nof_ctrl_symbols = 3
 | 
			
		||||
#pucch_multiplex_enable = false
 | 
			
		||||
#pucch_harq_max_rb = 0
 | 
			
		||||
#target_bler = 0.05
 | 
			
		||||
#max_delta_dl_cqi = 5
 | 
			
		||||
#max_delta_ul_snr = 5
 | 
			
		||||
#adaptive_dl_mcs_step_size = 0.001
 | 
			
		||||
#adaptive_ul_mcs_step_size = 0.001
 | 
			
		||||
#min_tpc_tti_interval = 1
 | 
			
		||||
#ul_snr_avg_alpha=0.05
 | 
			
		||||
#init_ul_snr_value=5
 | 
			
		||||
#init_dl_cqi=5
 | 
			
		||||
#max_sib_coderate=0.3
 | 
			
		||||
#pdcch_cqi_offset=0
 | 
			
		||||
nr_pdsch_mcs=28
 | 
			
		||||
#nr_pusch_mcs=28
 | 
			
		||||
 | 
			
		||||
#####################################################################
 | 
			
		||||
# eMBMS configuration options
 | 
			
		||||
#
 | 
			
		||||
# enable:               Enable MBMS transmission in the eNB
 | 
			
		||||
# m1u_multiaddr:        Multicast address the M1-U socket will register to
 | 
			
		||||
# m1u_if_addr:          Address of the interface the M1-U interface will listen to for multicast packets
 | 
			
		||||
# mcs:                  Modulation and Coding scheme for MBMS traffic
 | 
			
		||||
#
 | 
			
		||||
#####################################################################
 | 
			
		||||
[embms]
 | 
			
		||||
#enable = false
 | 
			
		||||
#m1u_multiaddr = 239.255.0.1
 | 
			
		||||
#m1u_if_addr = 127.0.1.201
 | 
			
		||||
#mcs = 20
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#####################################################################
 | 
			
		||||
# Channel emulator options:
 | 
			
		||||
# enable:            Enable/disable internal Downlink/Uplink channel emulator
 | 
			
		||||
#
 | 
			
		||||
# -- AWGN Generator
 | 
			
		||||
# awgn.enable:       Enable/disable AWGN generator
 | 
			
		||||
# awgn.snr:          Target SNR in dB
 | 
			
		||||
#
 | 
			
		||||
# -- Fading emulator
 | 
			
		||||
# fading.enable:     Enable/disable fading simulator
 | 
			
		||||
# fading.model:      Fading model + maximum doppler (E.g. none, epa5, eva70, etu300, etc)
 | 
			
		||||
#
 | 
			
		||||
# -- Delay Emulator     delay(t) = delay_min + (delay_max - delay_min) * (1 + sin(2pi*t/period)) / 2
 | 
			
		||||
#                       Maximum speed [m/s]: (delay_max - delay_min) * pi * 300 / period
 | 
			
		||||
# delay.enable:      Enable/disable delay simulator
 | 
			
		||||
# delay.period_s:    Delay period in seconds
 | 
			
		||||
# delay.init_time_s: Delay initial time in seconds
 | 
			
		||||
# delay.maximum_us:  Maximum delay in microseconds
 | 
			
		||||
# delay.minumum_us:  Minimum delay in microseconds
 | 
			
		||||
#
 | 
			
		||||
# -- Radio-Link Failure (RLF) Emulator
 | 
			
		||||
# rlf.enable:        Enable/disable RLF simulator
 | 
			
		||||
# rlf.t_on_ms:       Time for On state of the channel (ms)
 | 
			
		||||
# rlf.t_off_ms:      Time for Off state of the channel (ms)
 | 
			
		||||
#
 | 
			
		||||
# -- High Speed Train Doppler model simulator
 | 
			
		||||
# hst.enable:        Enable/disable HST simulator
 | 
			
		||||
# hst.period_s:      HST simulation period in seconds
 | 
			
		||||
# hst.fd_hz:         Doppler frequency in Hz
 | 
			
		||||
# hst.init_time_s:   Initial time in seconds
 | 
			
		||||
#####################################################################
 | 
			
		||||
[channel.dl]
 | 
			
		||||
#enable        = false
 | 
			
		||||
 | 
			
		||||
[channel.dl.awgn]
 | 
			
		||||
#enable        = false
 | 
			
		||||
#snr            = 30
 | 
			
		||||
 | 
			
		||||
[channel.dl.fading]
 | 
			
		||||
#enable        = false
 | 
			
		||||
#model         = none
 | 
			
		||||
 | 
			
		||||
[channel.dl.delay]
 | 
			
		||||
#enable        = false
 | 
			
		||||
#period_s      = 3600
 | 
			
		||||
#init_time_s   = 0
 | 
			
		||||
#maximum_us    = 100
 | 
			
		||||
#minimum_us    = 10
 | 
			
		||||
 | 
			
		||||
[channel.dl.rlf]
 | 
			
		||||
#enable        = false
 | 
			
		||||
#t_on_ms       = 10000
 | 
			
		||||
#t_off_ms      = 2000
 | 
			
		||||
 | 
			
		||||
[channel.dl.hst]
 | 
			
		||||
#enable        = false
 | 
			
		||||
#period_s      = 7.2
 | 
			
		||||
#fd_hz         = 750.0
 | 
			
		||||
#init_time_s   = 0.0
 | 
			
		||||
 | 
			
		||||
[channel.ul]
 | 
			
		||||
#enable        = false
 | 
			
		||||
 | 
			
		||||
[channel.ul.awgn]
 | 
			
		||||
#enable        = false
 | 
			
		||||
#n0            = -30
 | 
			
		||||
 | 
			
		||||
[channel.ul.fading]
 | 
			
		||||
#enable        = false
 | 
			
		||||
#model         = none
 | 
			
		||||
 | 
			
		||||
[channel.ul.delay]
 | 
			
		||||
#enable        = false
 | 
			
		||||
#period_s      = 3600
 | 
			
		||||
#init_time_s   = 0
 | 
			
		||||
#maximum_us    = 100
 | 
			
		||||
#minimum_us    = 10
 | 
			
		||||
 | 
			
		||||
[channel.ul.rlf]
 | 
			
		||||
#enable        = false
 | 
			
		||||
#t_on_ms       = 10000
 | 
			
		||||
#t_off_ms      = 2000
 | 
			
		||||
 | 
			
		||||
[channel.ul.hst]
 | 
			
		||||
#enable        = false
 | 
			
		||||
#period_s      = 7.2
 | 
			
		||||
#fd_hz         = -750.0
 | 
			
		||||
#init_time_s   = 0.0
 | 
			
		||||
 | 
			
		||||
#####################################################################
 | 
			
		||||
# CFR configuration options
 | 
			
		||||
#
 | 
			
		||||
# The CFR module provides crest factor reduction for the transmitted signal.
 | 
			
		||||
#
 | 
			
		||||
# enable:           Enable or disable the CFR. Default: disabled
 | 
			
		||||
#
 | 
			
		||||
# mode:             manual:   CFR threshold is set by cfr_manual_thres (default).
 | 
			
		||||
#                   auto_ema: CFR threshold is adaptive based on the signal PAPR. Power avg. with Exponential Moving Average.
 | 
			
		||||
#                             The time constant of the averaging can be tweaked with the ema_alpha parameter.
 | 
			
		||||
#                   auto_cma: CFR threshold is adaptive based on the signal PAPR. Power avg. with Cumulative Moving Average.
 | 
			
		||||
#                             Use with care, as CMA's increasingly slow response may be unsuitable for most use cases.
 | 
			
		||||
#
 | 
			
		||||
# strength:         Ratio between amplitude-limited vs unprocessed signal (0 to 1). Default: 1
 | 
			
		||||
# manual_thres:     Fixed manual clipping threshold for CFR manual mode. Default: 0.5
 | 
			
		||||
# auto_target_papr: Signal PAPR target (in dB) in CFR auto modes. output PAPR can be higher due to peak smoothing. Default: 8
 | 
			
		||||
# ema_alpha:        Alpha coefficient for the power average in auto_ema mode. Default: 1/7
 | 
			
		||||
#
 | 
			
		||||
#####################################################################
 | 
			
		||||
[cfr]
 | 
			
		||||
#enable           = false
 | 
			
		||||
#mode             = manual
 | 
			
		||||
#manual_thres     = 0.5
 | 
			
		||||
#strength         = 1
 | 
			
		||||
#auto_target_papr = 8
 | 
			
		||||
#ema_alpha        = 0.0143
 | 
			
		||||
 | 
			
		||||
#####################################################################
 | 
			
		||||
# Expert configuration options
 | 
			
		||||
#
 | 
			
		||||
# pusch_max_its:        Maximum number of turbo decoder iterations (default: 4)
 | 
			
		||||
# nr_pusch_max_its:     Maximum number of LDPC iterations for NR (Default 10)
 | 
			
		||||
# pusch_8bit_decoder:   Use 8-bit for LLR representation and turbo decoder trellis computation (experimental)
 | 
			
		||||
# nof_phy_threads:      Selects the number of PHY threads (maximum: 4, minimum: 1, default: 3)
 | 
			
		||||
# metrics_period_secs:  Sets the period at which metrics are requested from the eNB
 | 
			
		||||
# metrics_csv_enable:   Write eNB metrics to CSV file.
 | 
			
		||||
# metrics_csv_filename: File path to use for CSV metrics
 | 
			
		||||
# report_json_enable:   Write eNB report to JSON file (default: disabled)
 | 
			
		||||
# report_json_filename: Report JSON filename (default: /mnt/srslte/enb_report.json)
 | 
			
		||||
# report_json_asn1_oct: Prints ASN1 messages encoded as an octet string instead of plain text in the JSON report file
 | 
			
		||||
# alarms_log_enable:    Enable Alarms logging (default: disabled)
 | 
			
		||||
# alarms_filename:      Alarms logging filename (default: /mnt/srslte/alarms.log)
 | 
			
		||||
# tracing_enable:       Write source code tracing information to a file
 | 
			
		||||
# tracing_filename:     File path to use for tracing information
 | 
			
		||||
# tracing_buffcapacity: Maximum capacity in bytes the tracing framework can store
 | 
			
		||||
# stdout_ts_enable:     Prints once per second the timestamp into stdout
 | 
			
		||||
# tx_amplitude:         Transmit amplitude factor (set 0-1 to reduce PAPR)
 | 
			
		||||
# rrc_inactivity_timer  Inactivity timeout used to remove UE context from RRC (in milliseconds)
 | 
			
		||||
# max_mac_dl_kos:       Maximum number of consecutive KOs in DL before triggering the UE's release (default: 100)
 | 
			
		||||
# max_mac_ul_kos:       Maximum number of consecutive KOs in UL before triggering the UE's release (default: 100)
 | 
			
		||||
# max_prach_offset_us:  Maximum allowed RACH offset (in us)
 | 
			
		||||
# nof_prealloc_ues:     Number of UE memory resources to preallocate during eNB initialization for faster UE creation (default: 8)
 | 
			
		||||
# rlf_release_timer_ms: Time taken by eNB to release UE context after it detects an RLF
 | 
			
		||||
# eea_pref_list:        Ordered preference list for the selection of encryption algorithm (EEA) (default: EEA0, EEA2, EEA1)
 | 
			
		||||
# eia_pref_list:        Ordered preference list for the selection of integrity algorithm (EIA) (default: EIA2, EIA1, EIA0)
 | 
			
		||||
# gtpu_tunnel_timeout:  Time that GTPU takes to release indirect forwarding tunnel since the last received GTPU PDU (0 for no timer)
 | 
			
		||||
# ts1_reloc_prep_timeout: S1AP TS 36.413 TS1RelocPrep Expiry Timeout value in milliseconds
 | 
			
		||||
# ts1_reloc_overall_timeout: S1AP TS 36.413 TS1RelocOverall Expiry Timeout value in milliseconds
 | 
			
		||||
# rlf_release_timer_ms: Time taken by eNB to release UE context after it detects a RLF
 | 
			
		||||
# rlf_min_ul_snr_estim: SNR threshold in dB below which the enb is notified with RLF ko
 | 
			
		||||
# s1_setup_max_retries: Maximum amount of retries to setup the S1AP connection. If this value is exceeded, an alarm is written to the log. -1 means infinity.
 | 
			
		||||
# rx_gain_offset:       RX Gain offset to add to rx_gain to calibrate RSRP readings
 | 
			
		||||
#####################################################################
 | 
			
		||||
[expert]
 | 
			
		||||
#pusch_max_its        = 8 # These are half iterations
 | 
			
		||||
#nr_pusch_max_its     = 10
 | 
			
		||||
#pusch_8bit_decoder   = false
 | 
			
		||||
#nof_phy_threads      = 3
 | 
			
		||||
#metrics_period_secs  = 1
 | 
			
		||||
#metrics_csv_enable   = false
 | 
			
		||||
#metrics_csv_filename = /mnt/srslte/enb_metrics.csv
 | 
			
		||||
#report_json_enable   = true
 | 
			
		||||
#report_json_filename = /mnt/srslte/enb_report.json
 | 
			
		||||
#report_json_asn1_oct = false
 | 
			
		||||
#alarms_log_enable    = true
 | 
			
		||||
#alarms_filename      = /mnt/srslte/enb_alarms.log
 | 
			
		||||
#tracing_enable       = true
 | 
			
		||||
#tracing_filename     = /mnt/srslte/enb_tracing.log
 | 
			
		||||
#tracing_buffcapacity = 1000000
 | 
			
		||||
#stdout_ts_enable     = false
 | 
			
		||||
#tx_amplitude         = 0.6
 | 
			
		||||
#rrc_inactivity_timer = 30000
 | 
			
		||||
#max_mac_dl_kos       = 100
 | 
			
		||||
#max_mac_ul_kos       = 100
 | 
			
		||||
#max_prach_offset_us  = 30
 | 
			
		||||
#nof_prealloc_ues     = 8
 | 
			
		||||
#rlf_release_timer_ms = 4000
 | 
			
		||||
#lcid_padding         = 3
 | 
			
		||||
#eea_pref_list = EEA0, EEA2, EEA1
 | 
			
		||||
#eia_pref_list = EIA2, EIA1, EIA0
 | 
			
		||||
#gtpu_tunnel_timeout = 0
 | 
			
		||||
#extended_cp         = false
 | 
			
		||||
#ts1_reloc_prep_timeout = 10000
 | 
			
		||||
#ts1_reloc_overall_timeout = 10000
 | 
			
		||||
#rlf_release_timer_ms = 4000
 | 
			
		||||
#rlf_min_ul_snr_estim = -2
 | 
			
		||||
#s1_setup_max_retries = -1
 | 
			
		||||
#rx_gain_offset = 62
 | 
			
		||||
							
								
								
									
										70
									
								
								srslte/rr_gnb_zmq.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								srslte/rr_gnb_zmq.conf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,70 @@
 | 
			
		||||
mac_cnfg =
 | 
			
		||||
{
 | 
			
		||||
  phr_cnfg = 
 | 
			
		||||
  {
 | 
			
		||||
    dl_pathloss_change = "dB3"; // Valid: 1, 3, 6 or INFINITY
 | 
			
		||||
    periodic_phr_timer = 50;
 | 
			
		||||
    prohibit_phr_timer = 0;
 | 
			
		||||
  };
 | 
			
		||||
  ulsch_cnfg = 
 | 
			
		||||
  {
 | 
			
		||||
    max_harq_tx = 4;
 | 
			
		||||
    periodic_bsr_timer = 20; // in ms
 | 
			
		||||
    retx_bsr_timer = 320;   // in ms
 | 
			
		||||
  };
 | 
			
		||||
  
 | 
			
		||||
  time_alignment_timer = -1; // -1 is infinity
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
phy_cnfg =
 | 
			
		||||
{
 | 
			
		||||
  phich_cnfg = 
 | 
			
		||||
  {
 | 
			
		||||
    duration  = "Normal";
 | 
			
		||||
    resources = "1/6"; 
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  pusch_cnfg_ded =
 | 
			
		||||
  {
 | 
			
		||||
    beta_offset_ack_idx = 6;
 | 
			
		||||
    beta_offset_ri_idx  = 6;
 | 
			
		||||
    beta_offset_cqi_idx = 6;
 | 
			
		||||
  };
 | 
			
		||||
  
 | 
			
		||||
  // PUCCH-SR resources are scheduled on time-frequeny domain first, then multiplexed in the same resource. 
 | 
			
		||||
  sched_request_cnfg =
 | 
			
		||||
  {
 | 
			
		||||
    dsr_trans_max = 64;
 | 
			
		||||
    period = 20;          // in ms
 | 
			
		||||
    //subframe = [1, 11]; // Optional vector of subframe indices allowed for SR transmissions (default uses all)
 | 
			
		||||
    nof_prb = 1;          // number of PRBs on each extreme used for SR (total prb is twice this number)
 | 
			
		||||
  };
 | 
			
		||||
  cqi_report_cnfg =
 | 
			
		||||
  { 
 | 
			
		||||
    mode = "periodic";
 | 
			
		||||
    simultaneousAckCQI = true;
 | 
			
		||||
    period = 40;                   // in ms
 | 
			
		||||
    //subframe = [0, 10, 20, 30];  // Optional vector of subframe indices every period where CQI resources will be allocated (default uses all)
 | 
			
		||||
    m_ri = 8; // RI period in CQI period
 | 
			
		||||
    //subband_k = 1; // If enabled and > 0, configures sub-band CQI reporting and defines K (see 36.213 7.2.2). If disabled, configures wideband CQI
 | 
			
		||||
  };
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
cell_list =
 | 
			
		||||
(
 | 
			
		||||
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
nr_cell_list =
 | 
			
		||||
(
 | 
			
		||||
  {
 | 
			
		||||
    rf_port = 0;
 | 
			
		||||
    cell_id = 1;
 | 
			
		||||
    root_seq_idx = 1;
 | 
			
		||||
    tac = 1;
 | 
			
		||||
    pci = 500;
 | 
			
		||||
    dl_arfcn = 368500;
 | 
			
		||||
    coreset0_idx = 12;
 | 
			
		||||
    band = 3;	
 | 
			
		||||
  }
 | 
			
		||||
);
 | 
			
		||||
@@ -52,8 +52,8 @@ elif [[ "$COMPONENT_NAME" =~ ^(enb_zmq$) ]]; then
 | 
			
		||||
	sed -i 's|MME_IP|'$MME_IP'|g' /etc/srsran/enb.conf
 | 
			
		||||
elif [[ "$COMPONENT_NAME" =~ ^(gnb_zmq$) ]]; then
 | 
			
		||||
	echo "Configuring component: '$COMPONENT_NAME'"
 | 
			
		||||
	cp /mnt/srslte/rr_gnb.conf /etc/srsran/rr.conf
 | 
			
		||||
	cp /mnt/srslte/enb_zmq.conf /etc/srsran/enb.conf
 | 
			
		||||
	cp /mnt/srslte/rr_gnb_zmq.conf /etc/srsran/rr.conf
 | 
			
		||||
	cp /mnt/srslte/gnb_zmq.conf /etc/srsran/enb.conf
 | 
			
		||||
	sed -i 's|MME_IP|'$AMF_IP'|g' /etc/srsran/enb.conf
 | 
			
		||||
elif [[ "$COMPONENT_NAME" =~ ^(ue_zmq$) ]]; then
 | 
			
		||||
	echo "Configuring component: '$COMPONENT_NAME'"
 | 
			
		||||
 
 | 
			
		||||
@@ -27,7 +27,7 @@
 | 
			
		||||
freq_offset = 0
 | 
			
		||||
tx_gain = 80
 | 
			
		||||
#rx_gain = 40
 | 
			
		||||
srate = 11.52e6
 | 
			
		||||
srate = 23.04e6
 | 
			
		||||
 | 
			
		||||
#nof_antennas = 1
 | 
			
		||||
 | 
			
		||||
@@ -43,7 +43,7 @@ srate = 11.52e6
 | 
			
		||||
 | 
			
		||||
# Example for ZMQ-based operation with TCP transport for I/Q samples
 | 
			
		||||
device_name = zmq
 | 
			
		||||
device_args = tx_port=tcp://SRS_UE_IP:2001,rx_port=tcp://SRS_GNB_IP:2000,id=ue,base_srate=11.52e6
 | 
			
		||||
device_args = tx_port=tcp://SRS_UE_IP:2001,rx_port=tcp://SRS_GNB_IP:2000,id=ue,base_srate=23.04e6
 | 
			
		||||
 | 
			
		||||
#####################################################################
 | 
			
		||||
# EUTRA RAT configuration
 | 
			
		||||
@@ -69,6 +69,10 @@ nof_carriers = 0
 | 
			
		||||
[rat.nr]
 | 
			
		||||
bands = 3
 | 
			
		||||
nof_carriers = 1
 | 
			
		||||
dl_nr_arfcn = 368500
 | 
			
		||||
ssb_nr_arfcn = 368410
 | 
			
		||||
max_nof_prb = 106
 | 
			
		||||
nof_prb = 106
 | 
			
		||||
 | 
			
		||||
#####################################################################
 | 
			
		||||
# Packet capture configuration
 | 
			
		||||
 
 | 
			
		||||
@@ -40,7 +40,7 @@ RUN add-apt-repository ppa:ettusresearch/uhd && \
 | 
			
		||||
 | 
			
		||||
# Get srsRAN_Project, compile and install
 | 
			
		||||
RUN git clone https://github.com/srsran/srsRAN_Project.git && \
 | 
			
		||||
    cd srsRAN_Project && git checkout tags/release_23_10 && \
 | 
			
		||||
    cd srsRAN_Project && git checkout e5d5b44b92cf18d1bd1736da0148e5f9cce3721d && \
 | 
			
		||||
    mkdir build && cd build && \
 | 
			
		||||
    cmake ../ -DENABLE_EXPORT=ON -DENABLE_ZEROMQ=ON && make -j`nproc` && make install && \
 | 
			
		||||
    ldconfig
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,13 @@
 | 
			
		||||
amf:
 | 
			
		||||
  addr: AMF_IP                                                    # The address or hostname of the AMF.
 | 
			
		||||
  bind_addr: SRS_GNB_IP                                           # A local IP that the gNB binds to for traffic from the AMF.
 | 
			
		||||
cu_cp:
 | 
			
		||||
  amf:
 | 
			
		||||
    addr: AMF_IP                                                  # The address or hostname of the AMF.
 | 
			
		||||
    bind_addr: SRS_GNB_IP                                         # A local IP that the gNB binds to for traffic from the AMF.
 | 
			
		||||
    supported_tracking_areas:                                     # Sets the list of tracking areas supported by this AMF.
 | 
			
		||||
      - tac: 1                                                    # Tracking area code (needs to match the core configuration).
 | 
			
		||||
        plmn_list:                                                # The list of PLMN items supported for this Tracking Area.
 | 
			
		||||
          - plmn: "PLMN"                                          # PLMN broadcasted by the gNB.
 | 
			
		||||
            tai_slice_support_list:                               # The list of TAI slices for this PLMN item.
 | 
			
		||||
              - sst: 1                                            # Sets the Slice Service Type.
 | 
			
		||||
 | 
			
		||||
ru_sdr:
 | 
			
		||||
  device_driver: uhd                                            # The RF driver name.
 | 
			
		||||
@@ -35,6 +42,8 @@ pcap:
 | 
			
		||||
  e1ap_enable: false                                              # Set to true to enable E1AP PCAPs.
 | 
			
		||||
  e1ap_filename: /mnt/srsran/gnb_e1ap.pcap                        # Path where the E1AP PCAP is stored.
 | 
			
		||||
  e2ap_enable: false                                              # Set to true to enable E2AP PCAPs.
 | 
			
		||||
  e2ap_filename: /mnt/srsran/gnb_e2ap.pcap                        # Path where the E2AP PCAP is stored.
 | 
			
		||||
  gtpu_enable: false                                              # Set to true to enable GTP-U PCAPs.
 | 
			
		||||
  gtpu_filename: /mnt/srsran/gnb_gtpu.pcap                        # Path where the GTP-U PCAP is stored.
 | 
			
		||||
  e2ap_cu_cp_filename: /mnt/srsran/cu_cp_e2ap.pcap                # Path where E2AP CU-CP PCAP is stored.
 | 
			
		||||
  e2ap_cu_up_filename: /mnt/srsran/cu_up_e2ap.pcap                # Path where E2AP CU-UP PCAP is stored.
 | 
			
		||||
  e2ap_du_filename: /mnt/srsran/du_e2ap.pcap                      # Path where E2AP CU PCAP is stored.
 | 
			
		||||
  n3_enable: false                                                # Set to true to enable N3 PCAPs.
 | 
			
		||||
  n3_filename: /mnt/srsran/gnb_n3.pcap                            # Path where the N3 PCAP is stored.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,18 +1,25 @@
 | 
			
		||||
amf:
 | 
			
		||||
  addr: AMF_IP                                                                                # The address or hostname of the AMF.
 | 
			
		||||
  bind_addr: SRS_GNB_IP                                                                       # A local IP that the gNB binds to for traffic from the AMF.
 | 
			
		||||
cu_cp:
 | 
			
		||||
  amf:
 | 
			
		||||
    addr: AMF_IP                                                                              # The address or hostname of the AMF.
 | 
			
		||||
    bind_addr: SRS_GNB_IP                                                                     # A local IP that the gNB binds to for traffic from the AMF.
 | 
			
		||||
    supported_tracking_areas:                                                                 # Sets the list of tracking areas supported by this AMF.
 | 
			
		||||
      - tac: 1                                                                                # Tracking area code (needs to match the core configuration).
 | 
			
		||||
        plmn_list:                                                                            # The list of PLMN items supported for this Tracking Area.
 | 
			
		||||
          - plmn: "PLMN"                                                                      # PLMN broadcasted by the gNB.
 | 
			
		||||
            tai_slice_support_list:                                                           # The list of TAI slices for this PLMN item.
 | 
			
		||||
              - sst: 1                                                                        # Sets the Slice Service Type.
 | 
			
		||||
 | 
			
		||||
ru_sdr:
 | 
			
		||||
  device_driver: zmq                                                                          # The RF driver name.
 | 
			
		||||
  device_args: tx_port=tcp://SRS_GNB_IP:2000,rx_port=tcp://SRS_UE_IP:2001,base_srate=11.52e6  # Optionally pass arguments to the selected RF driver.
 | 
			
		||||
  srate: 11.52                                                                                # RF sample rate might need to be adjusted according to selected bandwidth.
 | 
			
		||||
  device_args: tx_port=tcp://SRS_GNB_IP:2000,rx_port=tcp://SRS_UE_IP:2001,base_srate=23.04e6  # Optionally pass arguments to the selected RF driver.
 | 
			
		||||
  srate: 23.04                                                                                # RF sample rate might need to be adjusted according to selected bandwidth.
 | 
			
		||||
  tx_gain: 75                                                                                 # Transmit gain of the RF might need to adjusted to the given situation.
 | 
			
		||||
  rx_gain: 75                                                                                 # Receive gain of the RF might need to adjusted to the given situation.
 | 
			
		||||
 | 
			
		||||
cell_cfg:
 | 
			
		||||
  dl_arfcn: 368500                                                                            # ARFCN of the downlink carrier (center frequency).
 | 
			
		||||
  band: 3                                                                                     # The NR band.
 | 
			
		||||
  channel_bandwidth_MHz: 10                                                                   # Bandwith in MHz. Number of PRBs will be automatically derived.
 | 
			
		||||
  channel_bandwidth_MHz: 20                                                                   # Bandwith in MHz. Number of PRBs will be automatically derived.
 | 
			
		||||
  common_scs: 15                                                                              # Subcarrier spacing in kHz used for data.
 | 
			
		||||
  plmn: "PLMN"                                                                                # PLMN broadcasted by the gNB.
 | 
			
		||||
  tac: 1                                                                                      # Tracking area code (needs to match the core configuration).
 | 
			
		||||
@@ -21,6 +28,9 @@ cell_cfg:
 | 
			
		||||
    dedicated:
 | 
			
		||||
      ss2_type: common                                                                        # Search Space type, has to be set to common
 | 
			
		||||
      dci_format_0_1_and_1_1: false                                                           # Set correct DCI format (fallback)
 | 
			
		||||
    common:
 | 
			
		||||
      ss0_index: 0
 | 
			
		||||
      coreset0_index: 13
 | 
			
		||||
  prach:
 | 
			
		||||
    prach_config_index: 1
 | 
			
		||||
 | 
			
		||||
@@ -38,6 +48,8 @@ pcap:
 | 
			
		||||
  e1ap_enable: false                                                                          # Set to true to enable E1AP PCAPs.
 | 
			
		||||
  e1ap_filename: /mnt/srsran/gnb_e1ap.pcap                                                    # Path where the E1AP PCAP is stored.
 | 
			
		||||
  e2ap_enable: false                                                                          # Set to true to enable E2AP PCAPs.
 | 
			
		||||
  e2ap_filename: /mnt/srsran/gnb_e2ap.pcap                                                    # Path where the E2AP PCAP is stored.
 | 
			
		||||
  gtpu_enable: false                                                                          # Set to true to enable GTP-U PCAPs.
 | 
			
		||||
  gtpu_filename: /mnt/srsran/gnb_gtpu.pcap                                                    # Path where the GTP-U PCAP is stored.
 | 
			
		||||
  e2ap_cu_cp_filename: /mnt/srsran/cu_cp_e2ap.pcap                                            # Path where E2AP CU-CP PCAP is stored.
 | 
			
		||||
  e2ap_cu_up_filename: /mnt/srsran/cu_up_e2ap.pcap                                            # Path where E2AP CU-UP PCAP is stored.
 | 
			
		||||
  e2ap_du_filename: /mnt/srsran/du_e2ap.pcap                                                  # Path where E2AP CU PCAP is stored.
 | 
			
		||||
  n3_enable: false                                                                            # Set to true to enable N3 PCAPs.
 | 
			
		||||
  n3_filename: /mnt/srsran/gnb_n3.pcap                                                        # Path where the N3 PCAP is stored.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										117
									
								
								srsran/qos.yml
									
									
									
									
									
								
							
							
						
						
									
										117
									
								
								srsran/qos.yml
									
									
									
									
									
								
							@@ -2,23 +2,12 @@
 | 
			
		||||
# Based on 5QI characteristics in TS 23.501 table 5.7.4-1 
 | 
			
		||||
 | 
			
		||||
# This is a supplementary configuration to modify the RLC and PDCP radio bearers on 
 | 
			
		||||
# a per 5QI basis. This file will be passed to the gNB along with the base configuration 
 | 
			
		||||
# at start-up. The following command may be used to run the gNB with this configuration file: 
 | 
			
		||||
#   sudo ./gnb -c gnb_ru_ran550_tdd_n78_100mhz_2x2.yml -c qos.yml
 | 
			
		||||
# a per 5QI basis.
 | 
			
		||||
 | 
			
		||||
qos:
 | 
			
		||||
  -
 | 
			
		||||
    five_qi: 1 # E.g. Conversational Voice
 | 
			
		||||
    rlc:
 | 
			
		||||
      mode: um-bidir
 | 
			
		||||
      um-bidir:
 | 
			
		||||
        tx:
 | 
			
		||||
          sn: 12
 | 
			
		||||
        rx:
 | 
			
		||||
          sn: 12
 | 
			
		||||
          t-reassembly: 50
 | 
			
		||||
    pdcp:
 | 
			
		||||
      integrity_required: false
 | 
			
		||||
      tx:
 | 
			
		||||
        sn: 12
 | 
			
		||||
        discard_timer: -1
 | 
			
		||||
@@ -27,22 +16,23 @@ qos:
 | 
			
		||||
        sn: 12
 | 
			
		||||
        t_reordering: 80
 | 
			
		||||
        out_of_order_delivery: false
 | 
			
		||||
    f1u_cu_up:
 | 
			
		||||
      backoff_timer: 10
 | 
			
		||||
    f1u_du:
 | 
			
		||||
      backoff_timer: 10
 | 
			
		||||
    f1u_cu_up:
 | 
			
		||||
      backoff_timer: 10     
 | 
			
		||||
    rlc:
 | 
			
		||||
      mode: um-bidir
 | 
			
		||||
      um-bidir:
 | 
			
		||||
        tx:
 | 
			
		||||
          sn: 12
 | 
			
		||||
          queue-size: 16384
 | 
			
		||||
          queue-bytes: 6172672
 | 
			
		||||
        rx:
 | 
			
		||||
          sn: 12
 | 
			
		||||
          t-reassembly: 50
 | 
			
		||||
  -
 | 
			
		||||
    five_qi: 2 # E.g. Conversational Video
 | 
			
		||||
    rlc:
 | 
			
		||||
      mode: um-bidir
 | 
			
		||||
      um-bidir:
 | 
			
		||||
        tx:
 | 
			
		||||
          sn: 12
 | 
			
		||||
        rx:
 | 
			
		||||
          sn: 12
 | 
			
		||||
          t-reassembly: 50
 | 
			
		||||
    pdcp:
 | 
			
		||||
      integrity_required: false
 | 
			
		||||
      tx:
 | 
			
		||||
        sn: 12
 | 
			
		||||
        discard_timer: -1
 | 
			
		||||
@@ -51,10 +41,20 @@ qos:
 | 
			
		||||
        sn: 12
 | 
			
		||||
        t_reordering: 80
 | 
			
		||||
        out_of_order_delivery: false
 | 
			
		||||
    f1u_cu_up:
 | 
			
		||||
      backoff_timer: 10
 | 
			
		||||
    f1u_du:
 | 
			
		||||
      backoff_timer: 10
 | 
			
		||||
    f1u_cu_up:
 | 
			
		||||
      backoff_timer: 10     
 | 
			
		||||
    rlc:
 | 
			
		||||
      mode: um-bidir
 | 
			
		||||
      um-bidir:
 | 
			
		||||
        tx:
 | 
			
		||||
          sn: 12
 | 
			
		||||
          queue-size: 16384
 | 
			
		||||
          queue-bytes: 6172672
 | 
			
		||||
        rx:
 | 
			
		||||
          sn: 12
 | 
			
		||||
          t-reassembly: 50
 | 
			
		||||
  -
 | 
			
		||||
    five_qi: 5 # E.g. IMS signaling
 | 
			
		||||
    rlc:
 | 
			
		||||
@@ -66,6 +66,8 @@ qos:
 | 
			
		||||
          max-retx-threshold: 4
 | 
			
		||||
          poll-pdu: 64
 | 
			
		||||
          poll-byte: 125
 | 
			
		||||
          queue-size: 16384
 | 
			
		||||
          queue-bytes: 6172672
 | 
			
		||||
        rx:
 | 
			
		||||
          sn: 12
 | 
			
		||||
          t-reassembly: 80
 | 
			
		||||
@@ -83,57 +85,60 @@ qos:
 | 
			
		||||
    f1u_du:
 | 
			
		||||
      backoff_timer: 10
 | 
			
		||||
    f1u_cu_up:
 | 
			
		||||
      backoff_timer: 10      
 | 
			
		||||
      backoff_timer: 10
 | 
			
		||||
  -
 | 
			
		||||
    five_qi: 7 # E.g. Voice, Video (live streaming)
 | 
			
		||||
    pdcp:
 | 
			
		||||
      integrity_required: false
 | 
			
		||||
      tx:
 | 
			
		||||
        sn: 12
 | 
			
		||||
        discard_timer: -1
 | 
			
		||||
        status_report_required: false
 | 
			
		||||
      rx:
 | 
			
		||||
        sn: 12
 | 
			
		||||
        t_reordering: 80
 | 
			
		||||
        out_of_order_delivery: false
 | 
			
		||||
    f1u_cu_up:
 | 
			
		||||
      backoff_timer: 10
 | 
			
		||||
    f1u_du:
 | 
			
		||||
      backoff_timer: 10
 | 
			
		||||
    rlc:
 | 
			
		||||
      mode: um-bidir
 | 
			
		||||
      um-bidir:
 | 
			
		||||
        tx:
 | 
			
		||||
          sn: 12
 | 
			
		||||
          queue-size: 16384
 | 
			
		||||
          queue-bytes: 6172672
 | 
			
		||||
        rx:
 | 
			
		||||
          sn: 12
 | 
			
		||||
          t-reassembly: 50
 | 
			
		||||
          t-reassembly: 100
 | 
			
		||||
  -
 | 
			
		||||
    five_qi: 9 # E.g. Buffered video streaming, TCP-based traffic
 | 
			
		||||
    pdcp:
 | 
			
		||||
      integrity_required: false
 | 
			
		||||
      tx:
 | 
			
		||||
        sn: 12
 | 
			
		||||
        sn: 18
 | 
			
		||||
        discard_timer: -1
 | 
			
		||||
        status_report_required: false
 | 
			
		||||
      rx:
 | 
			
		||||
        sn: 12
 | 
			
		||||
        t_reordering: 80
 | 
			
		||||
        sn: 18
 | 
			
		||||
        t_reordering: 220
 | 
			
		||||
        out_of_order_delivery: false
 | 
			
		||||
    f1u_cu_up:
 | 
			
		||||
      backoff_timer: 10
 | 
			
		||||
    f1u_du:
 | 
			
		||||
      backoff_timer: 10
 | 
			
		||||
    f1u_cu_up:
 | 
			
		||||
      backoff_timer: 10          
 | 
			
		||||
  -
 | 
			
		||||
    five_qi: 9 # E.g. Buffered video streaming, TCP-based traffic
 | 
			
		||||
    rlc:
 | 
			
		||||
      mode: am
 | 
			
		||||
      am:
 | 
			
		||||
        tx:
 | 
			
		||||
          sn: 12
 | 
			
		||||
          t-poll-retransmit: 80
 | 
			
		||||
          max-retx-threshold: 4
 | 
			
		||||
          poll-pdu: 64
 | 
			
		||||
          poll-byte: 125
 | 
			
		||||
          sn: 18
 | 
			
		||||
          t-poll-retransmit: 20
 | 
			
		||||
          max-retx-threshold: 32
 | 
			
		||||
          poll-pdu: 16
 | 
			
		||||
          poll-byte: -1
 | 
			
		||||
          queue-size: 16384
 | 
			
		||||
          queue-bytes: 6172672
 | 
			
		||||
        rx:
 | 
			
		||||
          sn: 12
 | 
			
		||||
          t-reassembly: 80
 | 
			
		||||
          sn: 18
 | 
			
		||||
          t-reassembly: 20
 | 
			
		||||
          t-status-prohibit: 10
 | 
			
		||||
    pdcp:
 | 
			
		||||
      integrity_required: false
 | 
			
		||||
      tx:
 | 
			
		||||
        sn: 12
 | 
			
		||||
        discard_timer: -1
 | 
			
		||||
        status_report_required: false
 | 
			
		||||
      rx:
 | 
			
		||||
        sn: 12
 | 
			
		||||
        t_reordering: 80
 | 
			
		||||
        out_of_order_delivery: false
 | 
			
		||||
    f1u_du:
 | 
			
		||||
      backoff_timer: 10
 | 
			
		||||
    f1u_cu_up:
 | 
			
		||||
      backoff_timer: 10
 | 
			
		||||
 
 | 
			
		||||
@@ -52,7 +52,7 @@ sed -i 's|SRS_UE_IP|'$SRS_UE_IP'|g' /etc/srsran/gnb.yml
 | 
			
		||||
# For dbus not started issue when host machine is running Ubuntu 22.04
 | 
			
		||||
service dbus start && service avahi-daemon start
 | 
			
		||||
 | 
			
		||||
gnb -c /etc/srsran/gnb.yml -c /etc/srsran/qos.yml
 | 
			
		||||
exec gnb -c /etc/srsran/gnb.yml -c /etc/srsran/qos.yml $@
 | 
			
		||||
 | 
			
		||||
# Sync docker time
 | 
			
		||||
#ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										29
									
								
								udm/udm.yaml
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								udm/udm.yaml
									
									
									
									
									
								
							@@ -1,5 +1,6 @@
 | 
			
		||||
logger:
 | 
			
		||||
    file: /open5gs/install/var/log/open5gs/udm.log
 | 
			
		||||
    file:
 | 
			
		||||
      path: /open5gs/install/var/log/open5gs/udm.log
 | 
			
		||||
 | 
			
		||||
sbi:
 | 
			
		||||
    server:
 | 
			
		||||
@@ -7,7 +8,9 @@ sbi:
 | 
			
		||||
    client:
 | 
			
		||||
      no_tls: true
 | 
			
		||||
 | 
			
		||||
parameter:
 | 
			
		||||
global:
 | 
			
		||||
  max:
 | 
			
		||||
    ue: MAX_NUM_UE
 | 
			
		||||
 | 
			
		||||
udm:
 | 
			
		||||
    hnet:
 | 
			
		||||
@@ -18,17 +21,11 @@ udm:
 | 
			
		||||
        scheme: 2
 | 
			
		||||
        key: /open5gs/install/etc/open5gs/hnet/secp256r1-2.key
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: UDM_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
scp:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - SCP_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - NRF_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
      server:
 | 
			
		||||
        - address: udm.FIVEGC_DOMAIN
 | 
			
		||||
          #port: 7777
 | 
			
		||||
      client:
 | 
			
		||||
        nrf:
 | 
			
		||||
          - uri: http://NRF_IP:7777
 | 
			
		||||
        scp:
 | 
			
		||||
          - uri: http://SCP_IP:7777
 | 
			
		||||
 
 | 
			
		||||
@@ -26,10 +26,15 @@
 | 
			
		||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
			
		||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
 | 
			
		||||
[ ${#MNC} == 3 ] && FIVEGC_DOMAIN="5gc.mnc${MNC}.mcc${MCC}.3gppnetwork.org" || FIVEGC_DOMAIN="5gc.mnc0${MNC}.mcc${MCC}.3gppnetwork.org"
 | 
			
		||||
 | 
			
		||||
cp /mnt/udm/udm.yaml install/etc/open5gs
 | 
			
		||||
sed -i 's|UDM_IP|'$UDM_IP'|g' install/etc/open5gs/udm.yaml
 | 
			
		||||
sed -i 's|SCP_IP|'$SCP_IP'|g' install/etc/open5gs/udm.yaml
 | 
			
		||||
sed -i 's|NRF_IP|'$NRF_IP'|g' install/etc/open5gs/udm.yaml
 | 
			
		||||
sed -i 's|MAX_NUM_UE|'$MAX_NUM_UE'|g' install/etc/open5gs/udm.yaml
 | 
			
		||||
sed -i 's|FIVEGC_DOMAIN|'$FIVEGC_DOMAIN'|g' install/etc/open5gs/udm.yaml
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
cp /mnt/udm/curve25519-1.key install/etc/open5gs/hnet
 | 
			
		||||
cp /mnt/udm/secp256r1-2.key install/etc/open5gs/hnet
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										31
									
								
								udr/udr.yaml
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								udr/udr.yaml
									
									
									
									
									
								
							@@ -6,24 +6,21 @@ sbi:
 | 
			
		||||
    client:
 | 
			
		||||
      no_tls: true
 | 
			
		||||
 | 
			
		||||
logger:
 | 
			
		||||
    file: /open5gs/install/var/log/open5gs/udr.log
 | 
			
		||||
global:
 | 
			
		||||
  max:
 | 
			
		||||
    ue: MAX_NUM_UE
 | 
			
		||||
 | 
			
		||||
parameter:
 | 
			
		||||
logger:
 | 
			
		||||
    file:
 | 
			
		||||
      path: /open5gs/install/var/log/open5gs/udr.log
 | 
			
		||||
 | 
			
		||||
udr:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: UDR_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
scp:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - SCP_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - NRF_IP
 | 
			
		||||
        port: 7777
 | 
			
		||||
      server:
 | 
			
		||||
        - address: UDR_IP
 | 
			
		||||
          port: 7777
 | 
			
		||||
      client:
 | 
			
		||||
        nrf:
 | 
			
		||||
          - uri: http://NRF_IP:7777
 | 
			
		||||
        scp:
 | 
			
		||||
          - uri: http://SCP_IP:7777
 | 
			
		||||
 
 | 
			
		||||
@@ -33,6 +33,7 @@ sed -i 's|UDR_IP|'$UDR_IP'|g' install/etc/open5gs/udr.yaml
 | 
			
		||||
sed -i 's|SCP_IP|'$SCP_IP'|g' install/etc/open5gs/udr.yaml
 | 
			
		||||
sed -i 's|NRF_IP|'$NRF_IP'|g' install/etc/open5gs/udr.yaml
 | 
			
		||||
sed -i 's|MONGO_IP|'$MONGO_IP'|g' install/etc/open5gs/udr.yaml
 | 
			
		||||
sed -i 's|MAX_NUM_UE|'$MAX_NUM_UE'|g' install/etc/open5gs/udr.yaml
 | 
			
		||||
 | 
			
		||||
# Sync docker time
 | 
			
		||||
#ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 | 
			
		||||
 
 | 
			
		||||
@@ -60,8 +60,7 @@ def start(ip_range):
 | 
			
		||||
        raise ValueError('Invalid UE IPv4 range. Only one IP given')
 | 
			
		||||
    else:
 | 
			
		||||
        first_ip_addr = first_ip_addr.exploded
 | 
			
		||||
        ip_netmask_prefix = ip_range.prefixlen
 | 
			
		||||
        print(str(first_ip_addr) + '/' + str(ip_netmask_prefix))
 | 
			
		||||
        print(str(first_ip_addr))
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    try:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										43
									
								
								upf/upf.yaml
									
									
									
									
									
								
							
							
						
						
									
										43
									
								
								upf/upf.yaml
									
									
									
									
									
								
							@@ -1,31 +1,40 @@
 | 
			
		||||
logger:
 | 
			
		||||
    file: /open5gs/install/var/log/open5gs/upf.log
 | 
			
		||||
    file:
 | 
			
		||||
      path: /open5gs/install/var/log/open5gs/upf.log
 | 
			
		||||
 | 
			
		||||
parameter:
 | 
			
		||||
global:
 | 
			
		||||
  max:
 | 
			
		||||
    ue: MAX_NUM_UE
 | 
			
		||||
 | 
			
		||||
upf:
 | 
			
		||||
    pfcp:
 | 
			
		||||
      - addr: UPF_IP
 | 
			
		||||
      server:
 | 
			
		||||
        - address: UPF_IP
 | 
			
		||||
      client:
 | 
			
		||||
        smf:
 | 
			
		||||
          - address: SMF_IP
 | 
			
		||||
    gtpu:
 | 
			
		||||
      - addr: UPF_IP
 | 
			
		||||
        advertise: UPF_ADVERTISE_IP
 | 
			
		||||
    subnet:
 | 
			
		||||
      - addr: UE_IPV4_INTERNET_TUN_IP
 | 
			
		||||
        dev: ogstun
 | 
			
		||||
      server:
 | 
			
		||||
        - address: UPF_IP
 | 
			
		||||
          advertise: UPF_ADVERTISE_IP
 | 
			
		||||
    session:
 | 
			
		||||
      - subnet: UE_IPV4_INTERNET_SUBNET
 | 
			
		||||
        gateway: UE_IPV4_INTERNET_TUN_IP
 | 
			
		||||
        dnn: internet
 | 
			
		||||
      - addr: 2001:230:cafe::1/48
 | 
			
		||||
        dev: ogstun
 | 
			
		||||
      - subnet: 2001:230:cafe::/48
 | 
			
		||||
        gateway: 2001:230:cafe::1
 | 
			
		||||
        dnn: internet
 | 
			
		||||
      - addr: UE_IPV4_IMS_TUN_IP
 | 
			
		||||
        dev: ogstun
 | 
			
		||||
      - subnet: UE_IPV4_IMS_SUBNET
 | 
			
		||||
        gateway: UE_IPV4_IMS_TUN_IP
 | 
			
		||||
        dnn: ims
 | 
			
		||||
        dev: ogstun2
 | 
			
		||||
      - addr: 2001:230:babe::1/48
 | 
			
		||||
      - subnet: 2001:230:babe::/48
 | 
			
		||||
        gateway: 2001:230:babe::1
 | 
			
		||||
        dnn: ims
 | 
			
		||||
        dev: ogstun2
 | 
			
		||||
    metrics:
 | 
			
		||||
      - addr: UPF_IP
 | 
			
		||||
        port: 9091
 | 
			
		||||
 | 
			
		||||
smf:
 | 
			
		||||
    pfcp:
 | 
			
		||||
      - addr: SMF_IP
 | 
			
		||||
      server:
 | 
			
		||||
        - address: UPF_IP
 | 
			
		||||
          port: 9091
 | 
			
		||||
 
 | 
			
		||||
@@ -41,8 +41,11 @@ cp /mnt/upf/upf.yaml install/etc/open5gs
 | 
			
		||||
sed -i 's|UPF_IP|'$UPF_IP'|g' install/etc/open5gs/upf.yaml
 | 
			
		||||
sed -i 's|SMF_IP|'$SMF_IP'|g' install/etc/open5gs/upf.yaml
 | 
			
		||||
sed -i 's|UE_IPV4_INTERNET_TUN_IP|'$UE_IPV4_INTERNET_TUN_IP'|g' install/etc/open5gs/upf.yaml
 | 
			
		||||
sed -i 's|UE_IPV4_INTERNET_SUBNET|'$UE_IPV4_INTERNET'|g' install/etc/open5gs/upf.yaml
 | 
			
		||||
sed -i 's|UE_IPV4_IMS_TUN_IP|'$UE_IPV4_IMS_TUN_IP'|g' install/etc/open5gs/upf.yaml
 | 
			
		||||
sed -i 's|UE_IPV4_IMS_SUBNET|'$UE_IPV4_IMS'|g' install/etc/open5gs/upf.yaml
 | 
			
		||||
sed -i 's|UPF_ADVERTISE_IP|'$UPF_ADVERTISE_IP'|g' install/etc/open5gs/upf.yaml
 | 
			
		||||
sed -i 's|MAX_NUM_UE|'$MAX_NUM_UE'|g' install/etc/open5gs/upf.yaml
 | 
			
		||||
 | 
			
		||||
# Sync docker time
 | 
			
		||||
#ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user