Here is my setup (free5gc v3.0.6, ueransim v3.2.4, everything is running in docker containers on Linux):
# smfcfg.yaml
info:
version: 1.0.2
description: SMF initial local configuration
configuration:
smfName: SMF1
sbi:
scheme: http
registerIPv4: smf1.sbi-net # IP used to register to NRF
bindingIPv4: 10.0.211.3 # IP used to bind the service
port: 8000
serviceNameList:
- nsmf-pdusession
- nsmf-event-exposure
- nsmf-oam
snssaiInfos:
- sNssai:
sst: 1
sd: 010203
dnnInfos:
- dnn: sliceA
dns:
ipv4: 10.0.224.3
ipv6: 2001:4860:4860::8888
pfcp:
addr: 10.0.210.2
userplane_information:
up_nodes:
ran-area1-1:
type: AN
an_ip: 10.0.214.2
upf-mec-area1:
type: UPF
node_id: 10.0.213.3
sNssaiUpfInfos:
- sNssai:
sst: 1
sd: 010203
dnnUpfInfoList:
- dnn: sliceA
interfaces:
- interfaceType: N3
endpoints:
- 10.0.201.3
networkInstance: sliceA
- interfaceType: N9
endpoints:
- 10.0.215.2
networkInstance: sliceA
upf-sliceA:
type: UPF
node_id: 10.0.210.3
sNssaiUpfInfos:
- sNssai:
sst: 1
sd: 010203
dnnUpfInfoList:
- dnn: sliceA
pools:
- cidr: 10.0.222.0/24
interfaces:
- interfaceType: N9
endpoints:
- 10.0.216.2
networkInstance: sliceA
links:
- A: ran-area1-1
B: upf-mec-area1
- A: upf-mec-area1
B: upf-sliceA
nrfUri: http://nrf.sbi-net:8000
locality: loc1
ulcl: true
# upf-mec-area1.yaml
info:
version: 1.0.0
description: UPF configuration
configuration:
debugLevel: info
ReportCaller: false
pfcp:
- addr: 10.0.213.3
gtpu:
- addr: 10.0.201.3
- addr: 10.0.215.2
dnn_list:
- dnn: sliceA
cidr: 10.0.222.0/24
# upf-sliceA.yaml
info:
version: 1.0.0
description: UPF configuration
configuration:
debugLevel: info
ReportCaller: false
pfcp:
- addr: 10.0.210.3
gtpu:
- addr: 10.0.216.2
dnn_list:
- dnn: sliceA
cidr: 10.0.222.0/24
- mec-upf-area1 container has routes to the subnet 10.0.223.0/24
- upf-sliceA has routes to subnet 10.0.224.0/24.
- IP pool used for UEs from sliceA is 10.0.222.0/24.
I try to:
- Access the subnet 10.0.224.0/24 using mec-upf-area1 and upf-sliceA
- Access other UEs from sliceA using only mec-upf-area1
- Access the subnet 10.0.223.0/24 using only mec-upf-area1
- (1) works well in any circumstances
- (2) works well with the following ue-routing file:
info:
version: 1.0.1
description: Routing information for UE
ueRoutingInfo: # the list of UE routing information
DN:
members:
- imsi-001010000000000
- imsi-001010000000001
topology:
- A: ran-area1-1
B: upf-mec-area1
- A: upf-mec-area1
B: upf-sliceA
specificPath:
- dest: 10.0.222.0/24
path: [upf-mec-area1, upf-mec-area1]
- (3) works partially with the following ue-routing file (depending on the first UE to send traffic to the subnet, upf-sliceA may be used but only for one UE, after restarting containers it may work correctly, but I have no idea why):
info:
version: 1.0.1
description: Routing information for UE
ueRoutingInfo: # the list of UE routing information
MEH:
members:
- imsi-001010000000000
- imsi-001010000000001
topology:
- A: ran-area1-1
B: upf-mec-area1
- A: upf-mec-area1
B: upf-sliceA
specificPath:
- dest: 10.0.223.0/24
path: [upf-mec-area1, upf-mec-area1]
- I am not able to get (2) and (3) work both at the same time.
What I tried:
info:
version: 1.0.1
description: Routing information for UE
ueRoutingInfo: # the list of UE routing information
MEH:
members:
- imsi-001010000000000
- imsi-001010000000001
topology:
- A: ran-area1-1
B: upf-mec-area1
- A: upf-mec-area1
B: upf-sliceA
specificPath:
- dest: 10.0.223.0/24
path: [upf-mec-area1, upf-mec-area1]
DN:
members:
- imsi-001010000000000
- imsi-001010000000001
topology:
- A: ran-area1-1
B: upf-mec-area1
- A: upf-mec-area1
B: upf-sliceA
specificPath:
- dest: 10.0.222.0/24
path: [upf-mec-area1, upf-mec-area1]
But only the first item of ueRoutingInfo
seems used (using DN
before MEH
, I have (2) but not (3); using MEH
before DN
, I have (3) but not (2)).
Another try:
info:
version: 1.0.1
description: Routing information for UE
ueRoutingInfo: # the list of UE routing information
MEH:
members:
- imsi-001010000000000
- imsi-001010000000001
topology:
- A: ran-area1-1
B: upf-mec-area1
- A: upf-mec-area1
B: upf-sliceA
specificPath:
- dest: 10.0.223.0/24
path: [upf-mec-area1, upf-mec-area1]
- dest: 10.0.222.0/24
path: [upf-mec-area1, upf-mec-area1]
Once again it depends on what dest
I put first.
Have I mistaken how uplinks classifier works?
Is anyone able to reproduce these 2 issues (routing using upf-mec-area while it should not, and unable to use 2 paths in ulcl) or is this something specific to my topology?.