Giter Site home page Giter Site logo

my5g / my5g-rantester Goto Github PK

View Code? Open in Web Editor NEW
85.0 85.0 31.0 7.86 MB

my5G-RANTester is a gNB/UE simulator for studying 3GPP standards and stressing a 5G core.

License: Apache License 2.0

Go 99.72% Makefile 0.03% Shell 0.18% Dockerfile 0.07%
5g 5g-simulation amf free5gc gnb load-testing nas ngap open5gs sctp smf testing-tools

my5g-rantester's People

Contributors

baleeiro17 avatar cbboth avatar hccresende avatar klebercardoso avatar orion-belt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

my5g-rantester's Issues

Traffic test issue

HI
I am testing currently with oai-5gcn. UE is registered successfully to core network, but I am not able to perform traffic test.
I have used docker container with two different networks for control and data plane as shown below -

Is that okay to use different network interface for data plane as below ?

gnodeb:
  controlif:
    ip: "192.168.70.143"
    port: 9487
  dataif:
    ip: "192.168.72.143"
    port: 2152
  plmnlist:
    mcc: "208"
    mnc: "95"
    tac: "00a000"
    gnbid: "000003"
  slicesupportlist:
    sst: "de"
    sd: "00007b"
ue:
  msin: "0000000043"
  key: "0C0A34601D4F07677303652C0462535B"
  opc: "63bfa50ee6523365ff14c1f45f88737d"
  amf: "8000"
  sqn: "0000000"
  dnn: "default"
  hplmn:
    mcc: "208"
    mnc: "95"
  snssai:
    sst: 222
    sd: "00007b"
amfif:
  ip: "192.168.70.132"
  port: 38412

Logs at Tester ->

time="2022-03-08T08:49:27Z" level=info msg="[GNB][NGAP][UE] Uplink Teid: 213144499"
time="2022-03-08T08:49:27Z" level=info msg="[GNB][NGAP][UE] Downlink Teid: 1"
time="2022-03-08T08:49:27Z" level=info msg="[GNB][NGAP][UE] Non-Dynamic-5QI: 6"
time="2022-03-08T08:49:27Z" level=info msg="[GNB][NGAP][UE] Priority Level ARP: 1"
time="2022-03-08T08:49:27Z" level=info msg="[GNB][NGAP][UE] UPF Address: 192.168.72.202 :2152"
time="2022-03-08T08:49:27Z" level=info msg="[UE][NAS] Message with security header"
time="2022-03-08T08:49:27Z" level=info msg="[UE][NAS] Message with integrity and ciphered"
time="2022-03-08T08:49:27Z" level=info msg="[UE][NAS] successful NAS MAC verification"
time="2022-03-08T08:49:27Z" level=info msg="[UE][NAS] successful NAS CIPHERING"
time="2022-03-08T08:49:27Z" level=info msg="[UE][NAS] Receive DL NAS Transport"
time="2022-03-08T08:49:27Z" level=info msg="[UE][NAS] Receiving PDU Session Establishment Accept"
time="2022-03-08T08:49:32Z" level=info msg="[UE][DATA] UE is ready for using data plane"
time="2022-03-08T08:49:44Z" level=info msg="[GNB][GTP] N3 GTP/UDP is not setting"
time="2022-03-08T08:49:45Z" level=info msg="[GNB][GTP] N3 GTP/UDP is not setting"
time="2022-03-08T08:49:46Z" level=info msg="[GNB][GTP] N3 GTP/UDP is not setting"
time="2022-03-08T08:49:47Z" level=info msg="[GNB][GTP] N3 GTP/UDP is not setting"

Container Tester exiting immediately

Hi,
I'm using the docker environment (https://github.com/my5G/my5G-RANTester/wiki/Using-containers). When I run sudo docker-compose up -d the tester container exits immediately. When I try to run a new container, overriding the entrypoint and creating a shell, it doesn't have the uetun. Do you know how to solve this issue?

docker container logs tester:

  • time="2021-07-23T10:23:59Z" level=fatal msg="Could not read file in: /workspace/my5G-RANTester/config/config.yml"

I tried editing the tester container's volume in docker-compose.yml this way

volumes:
     - ./config/tester.yaml:/workspace/my5G-RANTester/config/tester.yml

But then I have this error:
immagine

[FEATURE REQUEST]: Roaming MCC And MNC

Hi,

Open5gs is in the process of adding roaming support to the 5G core open5gs/open5gs#2194, the implication of this is that the UE will have to use a different MCC/MNC for the UE instead of the one configured for the gNB.

Can you consider adding this feature?

Thanks

Crash in Additional5GSecurityInformation

On running app ue , get this crash:

ubuntu@ubuntu-server:~/my5G-RANTester/cmd$ ./app ue
INFO[0000] my5G-RANTester version 1.0.1
INFO[0000] ---------------------------------------
INFO[0000] [TESTER] Starting test function: Testing an ue attached with configuration
INFO[0000] [TESTER][UE] Number of UEs: 1
INFO[0000] [TESTER][GNB] Control interface IP/Port: 192.168.60.1/9487
INFO[0000] [TESTER][GNB] Data interface IP/Port: 192.168.60.1/2152
INFO[0000] [TESTER][AMF] AMF IP/Port: 192.168.60.142/38412
INFO[0000] ---------------------------------------
INFO[0000] [GNB] SCTP/NGAP service is running
INFO[0000] [GNB] UNIX/NAS service is running
INFO[0000] [GNB][SCTP] Receive message in 0 stream
INFO[0000] [GNB][NGAP] Receive Ng Setup Response
INFO[0000] [GNB][AMF] AMF Name: MAGMAAMF1
INFO[0000] [GNB][AMF] State of AMF: Active
INFO[0000] [GNB][AMF] Capacity of AMF: 11
INFO[0000] [GNB][AMF] PLMNs Identities Supported by AMF -- mcc: 001 mnc:01
INFO[0000] [GNB][AMF] List of AMF slices Supported by AMF -- sst:01 sd:was not informed
INFO[0001] [UE] UNIX/NAS service is running
INFO[0001] [GNB][SCTP] Receive message in 1 stream
INFO[0001] [GNB][NGAP] Receive Downlink NAS Transport
INFO[0001] [UE][NAS] Message without security header
INFO[0001] [UE][NAS] Receive Authentication Request
INFO[0001] [UE][NAS][MAC] Authenticity of the authentication request message: OK
INFO[0001] [UE][NAS][SQN] SQN of the authentication request message: VALID
INFO[0001] [UE][NAS] Send authentication response
INFO[0001] [GNB][SCTP] Receive message in 1 stream
INFO[0001] [GNB][NGAP] Receive Downlink NAS Transport
INFO[0001] [UE][NAS] Message with security header
INFO[0001] [UE][NAS] Message with integrity and with NEW 5G NAS SECURITY CONTEXT
INFO[0001] [UE][NAS] successful NAS MAC verification
INFO[0001] [UE][NAS] Receive Security Mode Command
INFO[0001] [UE][NAS] Type of ciphering algorithm is 5G-EA0
INFO[0001] [UE][NAS] Type of integrity protection algorithm is 128-5G-IA2
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x2 pc=0x69b7cc]

goroutine 38 [running]:
my5G-RANTester/lib/nas/nasType.(*Additional5GSecurityInformation).GetRINMR(...)
        /home/ubuntu/my5G-RANTester/lib/nas/nasType/NAS_Additional5GSecurityInformation.go:45
my5G-RANTester/internal/control_test_engine/ue/nas/handler.HandlerSecurityModeCommand(0xc0000b8000?, 0xc000217480)
        /home/ubuntu/my5G-RANTester/internal/control_test_engine/ue/nas/handler/handler.go:83 +0x28c
my5G-RANTester/internal/control_test_engine/ue/nas.DispatchNas(0xc00020a000, {0xc0002143f0, 0x12, 0x12})
        /home/ubuntu/my5G-RANTester/internal/control_test_engine/ue/nas/dispatcher.go:142 +0xc9a
my5G-RANTester/internal/control_test_engine/ue/state.DispatchState(0xc00010e680?, {0xc0002143f0?, 0x2a?, 0x2a?})
        /home/ubuntu/my5G-RANTester/internal/control_test_engine/ue/state/dispatch.go:15 +0x47
created by my5G-RANTester/internal/control_test_engine/ue/nas/service.UeListen
        /home/ubuntu/my5G-RANTester/internal/control_test_engine/ue/nas/service/service.go:59 +0x5b
ubuntu@ubuntu-server:~/my5G-RANTester/cmd$

Attaching the pcap of the packets exchanged with core, and config used.
crash-on-registration.zip

PacketRusher: fork of my5G-RANTester

Hi my5G-RANTester Team,

I've wanted to mention that we just released PacketRusher, our fork of my5G-RANTester dedicated to the performance testing of both user plane and control plane. We refactored quite a lot the control plane (and implemented more procedures eg. handover, deregistration, multiple UEs/gNodeB in a single tool..), and we now use the free5gc's gtp5g module of user plane.
We are also in the process of adding integration testing by mocking an AMF.
It's still in the early days, and we are missing documentation and stuff.

We release our code under the Apache 2.0 licence, so we hope our changes will help you, and that we could collaborate!

Thanks a lot for the nice project and cheers,
Valentin

Basic test Failed after installation

Hi,
I tried the earlier version of my5GRANtester a month ago and it used to work fine. Today I tried installing it in another computer and noticed there is an update to the code. However I am getting th efollowing error after installation, when I try running
./app ue

my5grantester.zip

manoj20@manoj20-Macmini:~/my5G-RANTester/cmd$ ./app ue
INFO[0000] my5G-RANTester version 0.1
INFO[0000] ---------------------------------------
INFO[0000] [TESTER] Starting test function: Testing an ue attached with configuration
INFO[0000] [TESTER][UE] Number of UEs: 1
INFO[0000] [TESTER][GNB] Control interface IP/Port: 127.0.0.1/9487
INFO[0000] [TESTER][GNB] Data interface IP/Port: 127.0.0.1/2152
INFO[0000] [TESTER][AMF] AMF IP/Port: 127.0.0.1/38412
INFO[0000] ---------------------------------------
INFO[0000] [GNB] SCTP/NGAP service is running
INFO[0000] [GNB] UNIX/NAS service is running
INFO[0000] [GNB][SCTP] Receive message in %d stream
0
panic: runtime error: invalid memory address or nil pointer dereference
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x6c5806]

goroutine 11 [running]:
my5G-RANTester/internal/control_test_engine/gnb/nas/service.gnbListen.func1(0x0, 0x0, 0xc000073a00)
/home/manoj20/my5G-RANTester/internal/control_test_engine/gnb/nas/service/service.go:43 +0x26
panic(0x87a040, 0xd50260)
/usr/local/go/src/runtime/panic.go:969 +0x166
my5G-RANTester/internal/control_test_engine/gnb/nas/service.gnbListen(0xc000073a00)
/home/manoj20/my5G-RANTester/internal/control_test_engine/gnb/nas/service/service.go:51 +0xeb
created by my5G-RANTester/internal/control_test_engine/gnb/nas/service.InitServer
/home/manoj20/my5G-RANTester/internal/control_test_engine/gnb/nas/service/service.go:33 +0x1d

Add latency test for PDU session establishment

Hi! Thank you for such a great project.
I like the part of latency test that can reflect the core's performance.
Currently it only supports latency testing for UE registration. Do you ever consider adding a new function of testing the latency of PDU session establishment?
I appreciate a lot if you can implement that!

Follow up on multiple UEs registration and other topics

Hello,

Following the guidance you have provided me about increasing the UPF's buffer size, it seems it worked fine to register 100 UEs. My problem was, indeed that I needed to "make UPF" again so many thanks for this, in Free5GC they do not specify this.

Following with this subject, I have been assinged to study Free5GC capabilities, one of them is to study its limits in terms of the number of UEs registrated that it can support. Since it seems that increasing such buffer increases the maximum number of UEs allowed, my question is this: Have you got to any conclusion abouta maximum number of UEs that can be registered? What about the maximum number of UEs to be registered at the same time? I do not know if I will get to a conlcussion if I just keep rising the buffer and the number of UEs to register, both simultaneously and consecutively.

On the other subject I commented in the forum with you, I'm trying to conect the core network to internet, first with a single ping to, for instance, Google DNS (8.8.8.8). I have tried to put such address in the config file but I do not get a response. I guess something is wrog with my network configuration but I cannot find my error. The following script is used in my run.sh for the core network where you can see how I create and delete my network interfaces and iptables . My laptopt local IP address is 102.168.1.60 in the wlp2s0 interface:

sudo ifconfig eno1:amf 10.100.200.3 up
sudo ifconfig eno1:gnbn 10.100.255.39 up
sudo ifconfig eno1:smfp 192.168.2.1 up
sudo ifconfig eno1:upfp 192.168.2.2 up
sudo ifconfig eno1:gnbg 10.200.200.1 up up
sudo ifconfig eno1:upfg 10.200.200.102 up
sudo ifconfig eno1:ue 60.60.0.101 up

sudo sysctl -w net.ipv4.ip_forward=1

sudo iptables -t nat -A POSTROUTING -s 60.60.0.0/24 -j SNAT --to-source 192.168.1.60

sudo systemctl stop ufw

Then I only change amfcfg.config, smfcfg.config and upfcfg.yaml according such interfaces.

amfcfg.config:

configuration:
amfName: AMF
ngapIpList:
- 10.100.200.3

smfcfg.config:

pfcp:
addr: 10.200.200.1
userplane_information:
up_nodes:
gNB1:
type: AN
an_ip: 192.188.2.3
UPF:
type: UPF
node_id: 10.200.200.101
links:
- A: gNB1
B: UPF
ue_subnet: 60.60.0.0/16

upfcfg.yaml:

pfcp:
- addr: 192.168.2.2

gtpu:
- addr: 10.200.200.102
# [optional] gtpu.name
# - name: upf.5gc.nctu.me
# [optional] gtpu.ifname
# - ifname: gtpif

dnn_list:
- dnn: internet
cidr: 60.60.0.0/24
# [optional] dnn_list[*].natifname
natifname: wlp2s0

With all this setup I have read in the forums I should be able to get a ping to internet, but it doesn't seem to work. I cannot even ping to my gateway 192.168.1.1. Any ideas on this?

Something which I have found these last days is that if I read the traffic with Wireshark passing through these interfaces it does not catch anything, all the traffic seems to go through the loopback interface but I do not understand why since if I do not create such interfaces the core does not start properly. the following shows my ifconfig:

eno1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether b8:ca:3a:d7:5b:82 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 20 memory 0xf7e00000-f7e20000

eno1:amf: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 10.100.200.3 netmask 255.0.0.0 broadcast 10.255.255.255
ether b8:ca:3a:d7:5b:82 txqueuelen 1000 (Ethernet)
device interrupt 20 memory 0xf7e00000-f7e20000

eno1:gnbg: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 10.200.200.1 netmask 255.0.0.0 broadcast 10.255.255.255
ether b8:ca:3a:d7:5b:82 txqueuelen 1000 (Ethernet)
device interrupt 20 memory 0xf7e00000-f7e20000

eno1:gnbn: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 10.100.255.39 netmask 255.0.0.0 broadcast 10.255.255.255
ether b8:ca:3a:d7:5b:82 txqueuelen 1000 (Ethernet)
device interrupt 20 memory 0xf7e00000-f7e20000

eno1:smfp: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.2.1 netmask 255.255.255.0 broadcast 192.168.2.255
ether b8:ca:3a:d7:5b:82 txqueuelen 1000 (Ethernet)
device interrupt 20 memory 0xf7e00000-f7e20000

eno1:ue: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 60.60.0.101 netmask 255.0.0.0 broadcast 60.255.255.255
ether b8:ca:3a:d7:5b:82 txqueuelen 1000 (Ethernet)
device interrupt 20 memory 0xf7e00000-f7e20000

eno1:upfg: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 10.200.200.102 netmask 255.0.0.0 broadcast 10.255.255.255
ether b8:ca:3a:d7:5b:82 txqueuelen 1000 (Ethernet)
device interrupt 20 memory 0xf7e00000-f7e20000

eno1:upfp: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.2.2 netmask 255.255.255.0 broadcast 192.168.2.255
ether b8:ca:3a:d7:5b:82 txqueuelen 1000 (Ethernet)
device interrupt 20 memory 0xf7e00000-f7e20000

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 202863 bytes 1021824567 (1.0 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 202863 bytes 1021824567 (1.0 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

upfgtp: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet6 fe80::1b10:b665:a53c:a039 prefixlen 64 scopeid 0x20
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
RX packets 100 bytes 7600 (7.6 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 100 bytes 4800 (4.8 KB)
TX errors 10 dropped 0 overruns 0 carrier 0 collisions 0

wlp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.60 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::da1d:331e:54da:adab prefixlen 64 scopeid 0x20
ether 3c:a9:f4:0c:cd:84 txqueuelen 1000 (Ethernet)
RX packets 39376 bytes 22515176 (22.5 MB)
RX errors 0 dropped 17 overruns 0 frame 0
TX packets 14098 bytes 3148792 (3.1 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Again thank you very much for the help offered.

N3 GTP/UDP is not setting

I am having an issue when attempting to ping out via the tunnel interface of the virtual UE. I am using an Open5GS core with multiple physical UE connected and internet access working.

After starting the virtual GNB and UE they attach correctly with the core but the following message "N3 GTP/UDP is not setting" is repeated in the output and pings via the tunnel interface to 8.8.8.8 or google.com fail.

~/my5G-RANTester/cmd# ./app ue
INFO[0000] my5G-RANTester version 1.0.1
INFO[0000] ---------------------------------------
INFO[0000] [TESTER] Starting test function: Testing an ue attached with configuration
INFO[0000] [TESTER][UE] Number of UEs: 1
INFO[0000] [TESTER][GNB] Control interface IP/Port: 10.18.188.80/9487
INFO[0000] [TESTER][GNB] Data interface IP/Port: 10.18.188.80/2152
INFO[0000] [TESTER][AMF] AMF IP/Port: 10.18.188.80/38412
INFO[0000] ---------------------------------------
INFO[0000] [GNB] SCTP/NGAP service is running
INFO[0000] [GNB] UNIX/NAS service is running
INFO[0000] [GNB][SCTP] Receive message in 0 stream
INFO[0000] [GNB][NGAP] Receive Ng Setup Response
INFO[0000] [GNB][AMF] AMF Name: open5gc-amf0
INFO[0000] [GNB][AMF] State of AMF: Active
INFO[0000] [GNB][AMF] Capacity of AMF: 255
INFO[0000] [GNB][AMF] PLMNs Identities Supported by AMF -- mcc: 272 mnc:42
INFO[0000] [GNB][AMF] List of AMF slices Supported by AMF -- sst:01 sd:000001
INFO[0001] [UE] UNIX/NAS service is running
INFO[0001] [GNB][SCTP] Receive message in 1 stream
INFO[0001] [GNB][NGAP] Receive Downlink NAS Transport
INFO[0001] [UE][NAS] Message without security header
INFO[0001] [UE][NAS] Receive Authentication Request
INFO[0001] [UE][NAS][MAC] Authenticity of the authentication request message: OK
INFO[0001] [UE][NAS][SQN] SQN of the authentication request message: VALID
INFO[0001] [UE][NAS] Send authentication response
INFO[0001] [GNB][SCTP] Receive message in 1 stream
INFO[0001] [GNB][NGAP] Receive Downlink NAS Transport
INFO[0001] [UE][NAS] Message with security header
INFO[0001] [UE][NAS] Message with integrity and with NEW 5G NAS SECURITY CONTEXT
INFO[0001] [UE][NAS] successful NAS MAC verification
INFO[0001] [UE][NAS] Receive Security Mode Command
INFO[0001] [UE][NAS] Type of ciphering algorithm is 5G-EA0
INFO[0001] [UE][NAS] Type of integrity protection algorithm is 128-5G-IA2
INFO[0001] [GNB][SCTP] Receive message in 1 stream
INFO[0001] [GNB][NGAP] Receive Initial Context Setup Request
INFO[0001] [GNB][UE] UE Context was created with successful
INFO[0001] [GNB][UE] UE RAN ID 1
INFO[0001] [GNB][UE] UE AMF ID 22
INFO[0001] [GNB][UE] UE Mobility Restrict --Plmn-- Mcc: not informed Mnc: not informed
INFO[0001] [GNB][UE] UE Masked Imeisv: 1110000000ffff00
INFO[0001] [GNB][UE] Allowed Nssai-- Sst: 01 Sd: 000001
INFO[0001] [GNB][NAS][UE] Send Registration Accept.
INFO[0001] [GNB][NGAP][AMF] Send Initial Context Setup Response.
INFO[0001] [UE][NAS] Message with security header
INFO[0001] [UE][NAS] Message with integrity and ciphered
INFO[0001] [UE][NAS] successful NAS MAC verification
INFO[0001] [UE][NAS] successful NAS CIPHERING
INFO[0001] [UE][NAS] Receive Registration Accept
INFO[0001] [GNB][SCTP] Receive message in 1 stream
INFO[0001] [GNB][NGAP] Receive Downlink NAS Transport
INFO[0001] [UE][NAS] Message with security header
INFO[0001] [UE][NAS] Message with integrity and ciphered
INFO[0001] [UE][NAS] successful NAS MAC verification
INFO[0001] [UE][NAS] successful NAS CIPHERING
INFO[0001] [UE][NAS] Receive Configuration Update Command
INFO[0001] [GNB][SCTP] Receive message in 1 stream
INFO[0001] [GNB][NGAP] Receive PDU Session Resource Setup Request
INFO[0001] [GNB][NGAP][UE] PDU Session was created with successful.
INFO[0001] [GNB][NGAP][UE] PDU Session Id: 1
INFO[0001] [GNB][NGAP][UE] NSSAI Selected --- sst: 01 sd: 000001
INFO[0001] [GNB][NGAP][UE] PDU Session Type: ipv4
INFO[0001] [GNB][NGAP][UE] QOS Flow Identifier: 1
INFO[0001] [GNB][NGAP][UE] Uplink Teid: 74
INFO[0001] [GNB][NGAP][UE] Downlink Teid: 1
INFO[0001] [GNB][NGAP][UE] Non-Dynamic-5QI: 9
INFO[0001] [GNB][NGAP][UE] Priority Level ARP: 8
INFO[0001] [GNB][NGAP][UE] UPF Address: 10.18.188.80 :2152
INFO[0001] [UE][NAS] Message with security header
INFO[0001] [UE][NAS] Message with integrity and ciphered
INFO[0001] [UE][NAS] successful NAS MAC verification
INFO[0001] [UE][NAS] successful NAS CIPHERING
INFO[0001] [UE][NAS] Receive DL NAS Transport
INFO[0001] [UE][NAS] Receiving PDU Session Establishment Accept
INFO[0001] [UE][DATA] UE is ready for using data plane
INFO[0008] [GNB][GTP] N3 GTP/UDP is not setting
INFO[0015] [GNB][GTP] N3 GTP/UDP is not setting
INFO[0041] [GNB][GTP] N3 GTP/UDP is not setting
INFO[0047] [GNB][GTP] N3 GTP/UDP is not setting
INFO[0051] [GNB][GTP] N3 GTP/UDP is not setting
INFO[0057] [GNB][GTP] N3 GTP/UDP is not setting
INFO[0099] [GNB][GTP] N3 GTP/UDP is not setting
INFO[0099] [GNB][GTP] N3 GTP/UDP is not setting
INFO[0127] [GNB][GTP] N3 GTP/UDP is not setting
INFO[0158] [GNB][GTP] N3 GTP/UDP is not setting
PING google.com (216.58.214.14) from X.X.X.X uetun1: 56(84) bytes of data.
From open5gc (X.X.X.X) icmp_seq=2 Destination Host Unreachable
From open5gc (X.X.X.X) icmp_seq=3 Destination Host Unreachable
From open5gc (X.X.X.X) icmp_seq=4 Destination Host Unreachable
From open5gc (X.X.X.X) icmp_seq=5 Destination Host Unreachable
From open5gc (X.X.X.X) icmp_seq=6 Destination Host Unreachable
From open5gc (X.X.X.X) icmp_seq=7 Destination Host Unreachable

Is there any IP routing required for the tunnel interface to enable internet access?

error trying to start test

i am using open5s with amf, after i update the my5grantester docker-compose.yaml with the correct ip addresses, mnc, mcc, etc ... and try to start the test, i get the below error.

any idea how to troubleshoot this ?

root@5dedc31ab66f:/my5G-RANTester/cmd# ./entrypoint.sh
Now setting these variables '@dnn@ @GNBID@ @GTPU_LOCAL_ADDR@ @key@ @mcc@ @mnc@ @msin@ @NGAP_LOCAL_ADDR@ @NGAP_REMOTE_ADDR@ @opc@ @sd@ @SST_GNB@ @SST_UE@ @TAC@'
Done setting the configuration
Running tester
INFO[0000] my5G-RANTester version 1.0.1
INFO[0000] ---------------------------------------
INFO[0000] [TESTER] Starting test function: Testing registration of multiple UEs
INFO[0000] [TESTER][UE] Number of UEs: 2
INFO[0000] [TESTER][GNB] gNodeB control interface IP/Port: 172.22.0.222/9487
INFO[0000] [TESTER][GNB] gNodeB data interface IP/Port: 172.22.0.222/2152
INFO[0000] [TESTER][AMF] AMF IP/Port: 172.22.0.110/38412
INFO[0000] ---------------------------------------
INFO[0000] [GNB] SCTP/NGAP service is running
INFO[0000] [GNB] UNIX/NAS service is running
panic: runtime error: slice bounds out of range [:3] with length 1

goroutine 19 [running]:
my5G-RANTester/internal/control_test_engine/gnb/context.(*GNBContext).GetMccAndMncInOctets(0xc00009f380, 0xc0000b8e40, 0xc0000c9b10, 0x4c86f7)
/my5G-RANTester/internal/control_test_engine/gnb/context/context.go:434 +0x359
my5G-RANTester/internal/control_test_engine/gnb/ngap/message/ngap_control/interface_management.BuildNGSetupRequest(0xc00009f380, 0xc0001ea000, 0x934dc8, 0xc0000c9d10, 0x517d9b)
/my5G-RANTester/internal/control_test_engine/gnb/ngap/message/ngap_control/interface_management/ng-setup-request.go:38 +0x142
my5G-RANTester/internal/control_test_engine/gnb/ngap/message/ngap_control/interface_management.NGSetupRequest(0xc00009f380, 0x91fe83, 0xd, 0x1, 0xc0000c9d10, 0x47c59c, 0xc0000be040, 0xc0000fa680)
/my5G-RANTester/internal/control_test_engine/gnb/ngap/message/ngap_control/interface_management/ng-setup-request.go:119 +0x40
my5G-RANTester/internal/control_test_engine/gnb/ngap/trigger.SendNgSetupRequest(0xc00009f380, 0xc0000d8680)
/my5G-RANTester/internal/control_test_engine/gnb/ngap/trigger/trigger.go:50 +0x55
my5G-RANTester/internal/control_test_engine/gnb.InitGnb(0xc0000b1504, 0xc, 0x250f, 0xc0000b1530, 0xc, 0x868, 0xd17451, 0x1, 0xd17451, 0x1, ...)
/my5G-RANTester/internal/control_test_engine/gnb/gnb.go:55 +0x2e7
created by my5G-RANTester/internal/templates.TestMultiUesInQueue
/my5G-RANTester/internal/templates/test-multi-ues-in-queue.go:24 +0xeb
root@5dedc31ab66f:/my5G-RANTester/cmd#

[NGAP] DialSCTPExt not returning

I'm currently trying to setup an Open5GS sandbox for research purposes. I'm new to 5G networks in general and trying to setup my own to better understand 3GPP.

For my Open5GS environment, I've directly used the code from https://github.com/herlesupreeth/docker_open5gs instead for a 5G SA deployment as I've had problems to get my5G's version to work (still trying to debug it).

The docker containers I currently have on my host are the following:

CONTAINER ID   IMAGE            COMMAND                  CREATED          STATUS          PORTS                                                                                                  NAMES
66e44a698450   docker_open5gs   "/bin/sh -c /open5gs…"   36 minutes ago   Up 36 minutes   0.0.0.0:2152->2152/udp, :::2152->2152/udp, 8805/udp, 9091/tcp                                          upf
890abaa7639e   docker_open5gs   "/bin/sh -c /open5gs…"   36 minutes ago   Up 36 minutes   2123/udp, 3868/sctp, 3868/tcp, 3868/udp, 5868/tcp, 5868/udp, 7777/tcp, 8805/udp, 5868/sctp, 9091/tcp   smf
1fe52bdbe26f   docker_open5gs   "/bin/sh -c /open5gs…"   36 minutes ago   Up 36 minutes   7777/tcp, 9091/tcp, 0.0.0.0:38412->38412/sctp, :::38412->38412/sctp                                    amf
91f8e59094ba   docker_open5gs   "/bin/sh -c /open5gs…"   36 minutes ago   Up 36 minutes   7777/tcp                                                                                               udm
84031730d027   docker_open5gs   "/bin/sh -c /open5gs…"   36 minutes ago   Up 36 minutes   7777/tcp                                                                                               ausf
b1ce722a4468   docker_open5gs   "/bin/sh -c /open5gs…"   36 minutes ago   Up 36 minutes   7777/tcp, 9091/tcp                                                                                     pcf
9ee9636339e4   docker_open5gs   "/bin/sh -c /open5gs…"   36 minutes ago   Up 36 minutes   7777/tcp                                                                                               nssf
3ab2a1b07bda   docker_open5gs   "/bin/sh -c /open5gs…"   36 minutes ago   Up 36 minutes   7777/tcp                                                                                               bsf
1441355c773a   docker_open5gs   "/bin/sh -c /open5gs…"   36 minutes ago   Up 36 minutes   7777/tcp                                                                                               udr
e7e42b887962   docker_open5gs   "/bin/sh -c /open5gs…"   36 minutes ago   Up 36 minutes   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp                                                              webui
0518e97c0b5c   mongo:6.0        "docker-entrypoint.s…"   36 minutes ago   Up 36 minutes   27017/tcp, 27017/udp                                                                                   mongo
26bc9de13b8a   docker_open5gs   "/bin/sh -c /open5gs…"   36 minutes ago   Up 36 minutes   7777/tcp                                                                                               nrf
077e8522e008   docker_open5gs   "/bin/sh -c /open5gs…"   36 minutes ago   Up 36 minutes   7777/tcp                                                                                               scp
7290d0790292   docker_metrics   "/bin/sh -c /mnt/met…"   36 minutes ago   Up 36 minutes   0.0.0.0:9090->9090/tcp, :::9090->9090/tcp                                                              metrics

My config.yaml looks like the following:

gnodeb:
  controlif:
    ip: "127.0.0.1"
    port: 9487
  dataif:
    ip: "127.0.0.1"
    port: 2152
  plmnlist:
    mcc: "208"
    mnc: "95"
    tac: "000001"
    gnbid: "000003"
  slicesupportlist:
    sst: "01"
    sd: "000001"
ue:
  msin: "0000000043"
  key: "0C0A34601D4F07677303652C0462535B"
  opc: "63bfa50ee6523365ff14c1f45f88737d"
  amf: "8000"
  sqn: "0000000"
  dnn: "default"
  hplmn:
    mcc: "208"
    mnc: "95"
  snssai:
    sst: 1
    sd: "000001"
  integrity:
    nia0: false
    nia1: false
    nia2: true
  ciphering:
    nea0: true
    nea1: false
    nea2: false
  test: "test-5g-guti"
amfif:
  ip: "127.0.0.1"
  port: 38412
logs:
    level: 4

Adding my own logging around DialSCTPExt (before and after), and running the gNB, I get the following:

my5G-RANTester git:(master) $ go run ./cmd/app.go gnb
INFO[0000] my5G-RANTester version 1.0.1                 
INFO[0000] ---------------------------------------      
INFO[0000] [TESTER] Starting test function: Testing an gnb attached with configuration 
INFO[0000] [TESTER][GNB] Number of GNBs: 1              
INFO[0000] [TESTER][GNB] Control interface IP/Port: 127.0.0.1/9487 
INFO[0000] [TESTER][GNB] Data interface IP/Port: 127.0.0.1/2152 
INFO[0000] [TESTER][AMF] AMF IP/Port: 127.0.0.1/38412   
INFO[0000] ---------------------------------------      
INFO[0000] Before DialSCTPExt: loc=127.0.0.1:9487 rem=127.0.0.1:38412

For the AMF, the port is forwarded (:::38412->38412/sctp), but nothing is for the Control Interface Port.
Now I am stuck trying to understand what is supposed to listen on port 9487.

4G RAN Tester

Many thanks for the awesome software, it helped me a lot to simulate 1000 UEs on Open5GS CN.

Are there any plans to extend this tester to 4G/LTE as well ?

If not, are you aware of similar open-source software tester for 4G/LTE ?

Issue connecting more than 255 UEs

Hi, I'm trying to connect many UEs using the load-test.

The free5GC v3.0.6 stops the Data Plane connection after about 10 devices.
The Open5GS v2.3.6 can connect exactly 255 UEs with the data plane before stops registering new devices.

I tried to update the free5GC to v3.2.1 (the latest stable version - I'm using this repository) and, after running the load-test with 1000 devices, it stopped connecting exactly after 255 successful connections, the same behavior as the Open5GS core.
Btw, the latest version of the free5GC WebUI allows us to insert a lot of IMSI at the same time.

Taking a look at the context.go file, I saw that you are using a uint8 variable to store the device ID on lines 34 and 50. Is it possible that this uint8 id could cause this weird behavior?

Also, I noticed that after near to 400 UEs, the tester crashes with a Broken pipe error in both cores.

Thanks :)

Multiple QoS flows

Hi! I would like to know if my5G-RANTester is able to handle multiple QoS flows in a single PDU session. Thanks in advance.

Error testing UE

H , i'm tryung to test 3 UE knowing that i have install it using code source without container.
SO i have receive thus error:
FATA[0001] Error in[UE] Error on Dial with server%!(EXTRA *net.OpError=dial unix /tmp/gnb.sock: connect: no such file or directory)

root@5gran-test:~/my5G-RANTester/cmd# ./app load-test -n 3 INFO[0000] my5G-RANTester version 1.0.1 INFO[0000] --------------------------------------- INFO[0000] [TESTER] Starting test function: Testing registration of multiple UEs INFO[0000] [TESTER][UE] Number of UEs: 3 INFO[0000] [TESTER][GNB] gNodeB control interface IP/Port: 127.0.0.1/9487 INFO[0000] [TESTER][GNB] gNodeB data interface IP/Port: 127.0.0.1/2152 INFO[0000] [TESTER][AMF] AMF IP/Port: 5.161.73.127/80 INFO[0000] --------------------------------------- INFO[0001] [TESTER] TESTING REGISTRATION USING IMSI 0000000001 UE FATA[0001] Error in[UE] Error on Dial with server%!(EXTRA *net.OpError=dial unix /tmp/gnb.sock: connect: no such file or directory) root@5gran-test:~/my5G-RANTester/cmd#

visualize an interface in your host with name "uetun1"

Hello sir,
Thank you for sharing the code.

I try to connect the code that you share my5G-core as in the picture below with my5G-RANTester to connect the UE and RAN with 5G Core.

Screenshot from 2021-02-28 18-10-24

Screenshot from 2021-02-28 18-10-32

How can I know my registration done successfully?
How can I visualize an interface with the name "uetun1"?

Also, I tried your code for the docker (my5G-RANTester-docker), I don't know how can I view the interfaces with the prefix "uetun" inside the Tester container. or create a virtual interface.

Actually, with my5G-RANTester-docker code, it's run for the first time than the next day when I run the code the Tester container turn down and the other container on.
I tried to make it up by using "docker start tester" and service docker restart.

Regards,

[Question] How to connect to 5GC

Hellow @baleeiro17 ~
i want to use my5G-RANTester (VM 2)to connect my open5gs core (VM1). I have configured my config.yaml as following. I run ./ app gnb first. Then i run ./ app ue ,but it shows some error message that is "Error inaddress already in use". How should I do to fix it?
this is my config.yaml <P.S. 192.168.50.10 is my open5gs core's ip>
image

./app gnb
image

./app ue
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.