Skip to content

Commit

Permalink
Merge pull request #120 from andy89923/feat/v3-4-2
Browse files Browse the repository at this point in the history
feat!: Upgrade to free5GC v3.4.2
  • Loading branch information
ianchen0119 authored Jul 3, 2024
2 parents 6178d79 + b51972e commit 42233b8
Show file tree
Hide file tree
Showing 15 changed files with 494 additions and 151 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# vscode
.vscode

mongodb
base/free5gc

Expand Down
42 changes: 22 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ docker exec -it mongodb mongosh
> exit # (Or Ctrl-D)
```

You can see logs for each service using `docker logs` command. For example, to access the logs of the *SMF* you can use:
You can see logs for each service using `docker logs` command. For example, to access the logs of the _SMF_ you can use:

```console
docker logs smf
Expand Down Expand Up @@ -118,22 +118,22 @@ By default, the provided UERANSIM service on this `docker-compose.yaml` will onl
1. Add an UE service on `docker-compose.yaml` as it follows:

```yaml
ue:
container_name: ue
image: free5gc/ueransim:latest
command: ./nr-ue -c ./config/uecfg.yaml
volumes:
- ./config/uecfg.yaml:/ueransim/config/uecfg.yaml
cap_add:
- NET_ADMIN
devices:
- "/dev/net/tun"
networks:
privnet:
aliases:
- ue.free5gc.org
depends_on:
- ueransim
ue:
container_name: ue
image: free5gc/ueransim:latest
command: ./nr-ue -c ./config/uecfg.yaml
volumes:
- ./config/uecfg.yaml:/ueransim/config/uecfg.yaml
cap_add:
- NET_ADMIN
devices:
- "/dev/net/tun"
networks:
privnet:
aliases:
- ue.free5gc.org
depends_on:
- ueransim
```
5. Run `docker-compose.yaml`
Expand All @@ -146,17 +146,19 @@ You can check this [issue](https://github.com/free5gc/free5gc-compose/issues/94)

Here you can find helpful guidelines on the integration of Nginx reverse proxy to set it in front of the WebUI: https://github.com/free5gc/free5gc-compose/issues/55#issuecomment-1146648600

## ULCL Configuration
To start the core with a i-UPF and two PSA UPFs ULCL configuration, use
## ULCL Configuration

To start the core with a I-UPF and PSA-UPF ULCL configuration, use

```bash
docker compose -f docker-compose-ulcl.yaml up
```

> Note: This configuration have been tested using release [free5gc-compose v3.4.1](https://github.com/free5gc/free5gc-compose/tree/v3.4.1)
> Note: This configuration have been tested using release [free5gc-compose v3.4.2](https://github.com/free5gc/free5gc-compose/tree/v3.4.2)

Check out the used configuration files at `config/ULCL`.

## Reference

- https://github.com/open5gs/nextepc/tree/master/docker
- https://github.com/abousselmi/docker-free5gc
34 changes: 7 additions & 27 deletions config/ULCL/smfcfg.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ configuration:
gNB1: # the name of the node
type: AN # the type of the node (AN or UPF)
nodeID: gnb.free5gc.org # the Node ID of this gNB
i-UPF: # the name of the node
I-UPF: # the name of the node
type: UPF # the type of the node (AN or UPF)
nodeID: i-upf.free5gc.org # the Node ID of this UPF
sNssaiUpfInfos: # S-NSSAI information list for this UPF
Expand All @@ -60,9 +60,9 @@ configuration:
- i-upf.free5gc.org
networkInstances: # Data Network Name (DNN)
- internet
UPF-1: # the name of the node
PSA-UPF: # the name of the node
type: UPF # the type of the node (AN or UPF)
nodeID: upf-1.free5gc.org # the Node ID of this UPF
nodeID: psa-upf.free5gc.org # the Node ID of this UPF
sNssaiUpfInfos: # S-NSSAI information list for this UPF
- sNssai: # S-NSSAI (Single Network Slice Selection Assistance Information)
sst: 1 # Slice/Service Type (uinteger, range: 0~255)
Expand All @@ -74,34 +74,14 @@ configuration:
interfaces: # Interface list for this UPF
- interfaceType: N9 # the type of the interface (N3 or N9)
endpoints: # the IP address of this N3/N9 interface on this UPF
- upf-1.free5gc.org
networkInstances: # Data Network Name (DNN)
- internet
UPF-2: # the name of the node
type: UPF # the type of the node (AN or UPF)
nodeID: upf-2.free5gc.org # the Node ID of this UPF
sNssaiUpfInfos: # S-NSSAI information list for this UPF
- sNssai: # S-NSSAI (Single Network Slice Selection Assistance Information)
sst: 1 # Slice/Service Type (uinteger, range: 0~255)
sd: 010203 # Slice Differentiator (3 bytes hex string, range: 000000~FFFFFF)
dnnUpfInfoList: # DNN information list for this S-NSSAI
- dnn: internet
pools:
- cidr: 10.61.0.1/32
interfaces: # Interface list for this UPF
- interfaceType: N9 # the type of the interface (N3 or N9)
endpoints: # the IP address of this N3/N9 interface on this UPF
- upf-2.free5gc.org
- psa-upf.free5gc.org
networkInstances: # Data Network Name (DNN)
- internet
links: # the topology graph of userplane, A and B represent the two nodes of each link
- A: gNB1
B: i-UPF
- A: i-UPF
B: UPF-1
- A: i-UPF
B: UPF-2
ulcl: true
B: I-UPF
- A: I-UPF
B: PSA-UPF
# retransmission timer for pdu session modification command
t3591:
enable: true # true or false
Expand Down
12 changes: 6 additions & 6 deletions config/ULCL/uerouting.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ info:
ueRoutingInfo: # the list of UE routing information
UE1: # Group Name
members:
- imsi-208930000000001 # Subscription Permanent Identifier of the UE
- imsi-208930000000001 # Subscription Permanent Identifier of the UE
topology: # Network topology for this group (Uplink: A->B, Downlink: B->A)
# default path derived from this topology
# node name should be consistent with smfcfg.yaml
# default path derived from this topology
# node name should be consistent with smfcfg.yaml
- A: gNB1
B: i-UPF
- A: i-UPF
B: UPF-1
B: I-UPF
- A: I-UPF
B: PSA-UPF
27 changes: 0 additions & 27 deletions config/ULCL/upfcfg-2.yaml

This file was deleted.

4 changes: 2 additions & 2 deletions config/ULCL/upfcfg-i-upf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ gtpu:
# The DNN list supported by UPF
dnnList:
- dnn: internet # Data Network Name
cidr: 10.60.0.0/24 # Classless Inter-Domain Routing for assigned IPv4 pool of UE
cidr: 10.60.0.0/16 # Classless Inter-Domain Routing for assigned IPv4 pool of UE
- dnn: internet # Data Network Name
cidr: 10.61.0.0/24 # Classless Inter-Domain Routing for assigned IPv4 pool of UE
cidr: 10.61.0.0/16 # Classless Inter-Domain Routing for assigned IPv4 pool of UE

logger: # log output setting
enable: true # true or false
Expand Down
8 changes: 4 additions & 4 deletions config/ULCL/upfcfg-1.yaml → config/ULCL/upfcfg-psa-upf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ description: UPF initial local configuration

# The listen IP and nodeID of the N4 interface on this UPF (Can't set to 0.0.0.0)
pfcp:
addr: upf-1.free5gc.org # IP addr for listening
nodeID: upf-1.free5gc.org # External IP or FQDN can be reached
addr: psa-upf.free5gc.org # IP addr for listening
nodeID: psa-upf.free5gc.org # External IP or FQDN can be reached
retransTimeout: 1s # retransmission timeout
maxRetrans: 3 # the max number of retransmission

Expand All @@ -13,13 +13,13 @@ gtpu:
# The IP list of the N3/N9 interfaces on this UPF
# If there are multiple connection, set addr to 0.0.0.0 or list all the addresses
ifList:
- addr: upf-1.free5gc.org
- addr: psa-upf.free5gc.org
type: N9

# The DNN list supported by UPF
dnnList:
- dnn: internet # Data Network Name
cidr: 10.60.0.0/24 # Classless Inter-Domain Routing for assigned IPv4 pool of UE
cidr: 10.60.0.0/16 # Classless Inter-Domain Routing for assigned IPv4 pool of UE

logger: # log output setting
enable: true # true or false
Expand Down
3 changes: 2 additions & 1 deletion config/udrcfg.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
info:
version: 1.0.2
version: 1.1.0
description: UDR initial local configuration

configuration:
Expand All @@ -11,6 +11,7 @@ configuration:
tls: # the local path of TLS key
pem: cert/udr.pem # UDR TLS Certificate
key: cert/udr.key # UDR TLS Private key
dbConnectorType: mongodb
mongodb:
name: free5gc # Database name in MongoDB
url: mongodb://db:27017 # URL of MongoDB
Expand Down
73 changes: 73 additions & 0 deletions config/uecfg-ulcl.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# IMSI number of the UE. IMSI = [MCC|MNC|MSISDN] (In total 15 digits)
supi: "imsi-208930000000001"
# Mobile Country Code value of HPLMN
mcc: "208"
# Mobile Network Code value of HPLMN (2 or 3 digits)
mnc: "93"

# Permanent subscription key
key: "8baf473f2f8fd09487cccbd7097c6862"
# Operator code (OP or OPC) of the UE
op: "8e27b6af0e692e750f32667a3b14605d"
# This value specifies the OP type and it can be either 'OP' or 'OPC'
opType: "OPC"
# Authentication Management Field (AMF) value
amf: "8000"
# IMEI number of the device. It is used if no SUPI is provided
imei: "356938035643803"
# IMEISV number of the device. It is used if no SUPI and IMEI is provided
imeiSv: "4370816125816151"

# List of gNB IP addresses for Radio Link Simulation
gnbSearchList:
- 127.0.0.1
- gnb.free5gc.org

# UAC Access Identities Configuration
uacAic:
mps: false
mcs: false

# UAC Access Control Class
uacAcc:
normalClass: 0
class11: false
class12: false
class13: false
class14: false
class15: false

# Initial PDU sessions to be established
sessions:
- type: "IPv4"
apn: "internet"
slice:
sst: 0x01
sd: 0x010203

# Configured NSSAI for this UE by HPLMN
configured-nssai:
- sst: 0x01
sd: 0x010203

# Default Configured NSSAI for this UE
default-nssai:
- sst: 1
sd: 1

# Supported integrity algorithms by this UE
integrity:
IA1: true
IA2: true
IA3: true

# Supported encryption algorithms by this UE
ciphering:
EA1: true
EA2: true
EA3: true

# Integrity protection maximum data rate for user plane
integrityMaxRate:
uplink: "full"
downlink: "full"
21 changes: 11 additions & 10 deletions config/uerouting.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,27 @@ info:
ueRoutingInfo: # the list of UE routing information
UE1: # Group Name
members:
- imsi-208930000007487 # Subscription Permanent Identifier of the UE
- imsi-208930000000001 # Subscription Permanent Identifier of the UE
- imsi-208930000007487 # Subscription Permanent Identifier of the UE
topology: # Network topology for this group (Uplink: A->B, Downlink: B->A)
# default path derived from this topology
# node name should be consistent with smfcfg.yaml
# default path derived from this topology
# node name should be consistent with smfcfg.yaml
- A: gNB1
B: BranchingUPF
- A: BranchingUPF
B: AnchorUPF1
B: I-UPF
- A: I-UPF
B: PSA-UPF
specificPath:
- dest: 10.60.0.103/32 # the destination IP address on Data Network (DN)
# the order of UPF nodes in this path. We use the UPF's name to represent each UPF node.
# The UPF's name should be consistent with smfcfg.yaml
path: [BranchingUPF, AnchorUPF2]
path: [I-UPF]

UE2: # Group Name
members:
- imsi-208930000007486 # Subscription Permanent Identifier of the UE
- imsi-208930000007486 # Subscription Permanent Identifier of the UE
topology: # Network topology for this group (Uplink: A->B, Downlink: B->A)
# default path derived from this topology
# node name should be consistent with smfcfg.yaml
# default path derived from this topology
# node name should be consistent with smfcfg.yaml
- A: gNB1
B: BranchingUPF
- A: BranchingUPF
Expand Down
4 changes: 2 additions & 2 deletions config/upfcfg.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ gtpu:
# The DNN list supported by UPF
dnnList:
- dnn: internet # Data Network Name
cidr: 10.60.0.0/24 # Classless Inter-Domain Routing for assigned IPv4 pool of UE
cidr: 10.60.0.0/16 # Classless Inter-Domain Routing for assigned IPv4 pool of UE
# natifname: eth0
- dnn: internet # Data Network Name
cidr: 10.61.0.0/24 # Classless Inter-Domain Routing for assigned IPv4 pool of UE
cidr: 10.61.0.0/16 # Classless Inter-Domain Routing for assigned IPv4 pool of UE
# natifname: eth0

logger: # log output setting
Expand Down
6 changes: 5 additions & 1 deletion config/webuicfg.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
info:
version: 1.0.2
version: 1.0.3
description: WebUI initial local configuration

configuration:
Expand All @@ -16,6 +16,10 @@ configuration:
enable: true
hostIPv4: webui
listenPort: 2121
portRange: # passive port range
start: 2123
end: 2130
basePath: /tmp/webconsole
port: 2122
tls:
pem: cert/chf.pem
Expand Down
Loading

0 comments on commit 42233b8

Please sign in to comment.