Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat!: Upgrade to free5GC v3.4.2 #120

Merged
merged 4 commits into from
Jul 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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