Commit e3bec24e authored by Sagar Arora's avatar Sagar Arora

Separate subnets for F1U, F1C, E1, UE and Core

parent f0783731
......@@ -10,15 +10,29 @@ This docker-compose file deploys a core, RAN, and 3 UEs. Specifically:
- 3 DUs,
- 3 UEs connecting to each DU, each requesting slice SST=1,2,3.
The CU-CP associates each UE X connecting through DU X to CU-UP X, X=1,2,3. To
this end, the docker-compose file deliberately employs the three `ran_netX`
networks to route the user-plane traffic of each DU X/CU-UP X pair, through the
`ran_netX` network in order to effectively test that the correct CU-UP is
associated. Basically, the traffic test will only succeed if the correct pair
of DU/CU-UP has been established; if not, the DU/CU-UP cannot communicate, as
the traffic cannot be routed.
The CU-CP associates each UE X connecting through DU X to CU-UP X, X=1,2,3. To this end, the docker-compose file deliberately employs the three `f1u_netX` networks to route the user-plane traffic of each DU X/CU-UP X pair, through the `f1u_netX` network in order to effectively test that the correct CU-UP is associated. Basically, the traffic test will only succeed if the correct pair of DU/CU-UP has been established; if not, the DU/CU-UP cannot communicate, as the traffic cannot be routed.
For all other (CP, RFsim) traffic, all entities use the `public_net` network.
Core network components are on `core_net` network, CU-CP <--> CU-UP X communicate via `e1_net` network, CU-CP <--> DU X communicate via `f1c_net` network and DU X <--> NR_UE X communicate via `ue_net` network.
## Connectivity
```
AMF --> 192.168.71.132 (N2,Namf)
SMF --> 192.168.71.133 (N4,Nsmf)
NRF --> 192.168.71.130 (Nnrf)
SPGWU --> 192.168.71.134 (N3)
CU-CP --> 192.168.71.X (N2), 192.168.72.2 (F1C), 192.168.77.2 (E1)
CU-UP1 --> 192.168.71.X (N3), 192.168.73.2 (F1U), 192.168.77.3 (E1)
CU-UP2 --> 192.168.71.X (N3), 192.168.74.2 (F1U), 192.168.77.4 (E1)
CU-UP3 --> 192.168.71.X (N3), 192.168.76.2 (F1U), 192.168.77.5 (E1)
DU1 --> 192.168.72.2 (F1C), 192.168.73.3 (F1U), 192.168.78.2 (RFSIM)
DU2 --> 192.168.72.3 (F1C), 192.168.74.3 (F1U), 192.168.78.3 (RFSIM)
DU3 --> 192.168.72.4 (F1C), 192.168.76.3 (F1U), 192.168.78.4 (RFSIM)
UE1 --> 192.168.78.5 (RFSIM)
UE2 --> 192.168.78.6 (RFSIM)
UE3 --> 192.168.78.7 (RFSIM)
```
## How to run
......@@ -26,20 +40,20 @@ You should be able to deploy the [basic 5G RFsim deployment](../5g_rfsimulator/R
First, start the MySQL server and 5GC:
```bash
$ docker-compose up -d mysql oai-nrf oai-amf oai-smf oai-spgwu oai-ext-dn
$ docker-compose ps -a
docker-compose up -d mysql oai-nrf oai-amf oai-smf oai-spgwu
docker-compose ps -a
```
Wait till everything is healthy.
Next, start the RAN:
```bash
$ docker-compose up -d oai-cucp oai-cuup{,2,3} oai-du{,2,3}
docker-compose up -d oai-cucp oai-cuup{,2,3} oai-du{,2,3}
```
You can verify that the DUs and CU-UPs connected successfully:
```bash
$ docker logs rfsim5g-oai-cucp
docker logs rfsim5g-oai-cucp
[...]
18535.139811 [RRC] I Accepting new CU-UP ID 3585 name gNB-OAI (assoc_id 257)
18535.425744 [RRC] I Accepting new CU-UP ID 3584 name gNB-OAI (assoc_id 260)
......@@ -55,18 +69,18 @@ $ docker logs rfsim5g-oai-cucp
You should see that the CU-UP initialized two GTP instances (one for NG-U, the
other for F1-U):
```
$ docker logs -f rfsim5g-oai-cuup
docker logs -f rfsim5g-oai-cuup
[...]
18535.425535 [GTPU] I Initializing UDP for local address 192.168.72.161 with port 2152
18535.425571 [GTPU] I Created gtpu instance id: 96
18535.425577 [GTPU] I Configuring GTPu address : 192.168.71.161, port : 2152
18535.425581 [GTPU] I Initializing UDP for local address 192.168.71.161 with port 2152
18535.425604 [GTPU] I Created gtpu instance id: 97
122690.500374 [GTPU] I Initializing UDP for local address 192.168.73.2 with port 2153
122690.500406 [GTPU] I Created gtpu instance id: 96
122690.500413 [GTPU] I Configuring GTPu address : 192.168.71.161, port : 2152
122690.500414 [GTPU] I Initializing UDP for local address 192.168.71.161 with port 2152
122690.500420 [GTPU] I Created gtpu instance id: 97
```
You should see the typical periodical output at the DUs:
```
$ docker logs rfsim5g-oai-du
docker logs rfsim5g-oai-du
[...]
18626.446953 [NR_MAC] I Frame.Slot 128.0
......@@ -77,8 +91,8 @@ Next, connect the UEs. They are configured to connect to each DU by setting the
RFsimulator server address to the `public_net` IP address of each DU. For each,
you should see that they get an IP address
```bash
$ docker compose up -d oai-nr-ue{,2,3}
$ docker logs oai-nr-ue
docker compose up -d oai-nr-ue{,2,3}
docker logs oai-nr-ue
[...]
18758.176149 [NR_RRC] I rrcReconfigurationComplete Encoded 10 bits (2 bytes)
18758.176153 [NR_RRC] I Logical Channel UL-DCCH (SRB1), Generating RRCReconfigurationComplete (bytes 2)
......@@ -89,15 +103,15 @@ $ docker logs oai-nr-ue
Alternatively, check that they all received an IP address (the associated IP
addresses might be different):
```bash
$ docker exec -it rfsim5g-oai-nr-ue3 ip a show oaitun_ue1
docker exec -it rfsim5g-oai-nr-ue3 ip a show oaitun_ue1
[...]
inet 12.1.1.2/24 brd 12.1.1.255 scope global oaitun_ue1
[...]
$ docker exec -it rfsim5g-oai-nr-ue2 ip a show oaitun_ue1
docker exec -it rfsim5g-oai-nr-ue2 ip a show oaitun_ue1
[...]
inet 12.1.1.4/24 brd 12.1.1.255 scope global oaitun_ue1
[...]
$ docker exec -it rfsim5g-oai-nr-ue ip a show oaitun_ue1
docker exec -it rfsim5g-oai-nr-ue ip a show oaitun_ue1
[...]
inet 12.1.1.3/24 brd 12.1.1.255 scope global oaitun_ue1
[...]
......@@ -107,7 +121,7 @@ Also, note that each DU sees only one UE! At the CU-CP, you should see that
each DU has been associated to a different CU-UP, based on the NSSAI (`exact
NSSAI match`):
```bash
$ docker logs rfsim5g-oai-cucp | grep CU-U
docker logs rfsim5g-oai-cucp | grep CU-U
[...]
18757.531423 [RRC] I selecting CU-UP ID 3586 based on exact NSSAI match (3:0xffffff)
18757.531434 [RRC] I UE 1 associating to CU-UP assoc_id 261 out of 3 CU-UPs
......@@ -119,7 +133,7 @@ $ docker logs rfsim5g-oai-cucp | grep CU-U
Also, each UE should be able to ping the core network. For instance, with UE 1:
```bash
$ docker exec -it rfsim5g-oai-nr-ue ping -c1 12.1.1.1
docker exec -it rfsim5g-oai-nr-ue ping -c1 12.1.1.1
PING 12.1.1.1 (12.1.1.1) 56(84) bytes of data.
64 bytes from 12.1.1.1: icmp_seq=1 ttl=64 time=15.2 ms
......@@ -131,6 +145,6 @@ rtt min/avg/max/mdev = 15.155/15.155/15.155/0.000 ms
Finally, undeploy the UEs (to give them time to do deregistration), and then
the rest of the network:
```bash
$ docker compose stop oai-nr-ue{,2,3}
$ docker compose down
docker compose stop oai-nr-ue{,2,3}
docker compose down
```
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment