aligungr / UERANSIM

Open source 5G UE and RAN (gNodeB) implementation.
GNU General Public License v3.0
799 stars 324 forks source link

PDUSessionStatus bit ordering #300

Open vulcanfan opened 3 years ago

vulcanfan commented 3 years ago

Hi,

I have PDU Id 1 established ok, and Pdu session id = 1 is reported in the CLI tool 'status' and seen in Wireshark in the PDUSessionEstablishment messages etc. However in the PDUStatusStatus IE in a subsequent the ServiceRequest it reports PId=6 as being active. PId=6 bit is the 2nd from the left bit (I'm trying to avoid introducing more numbering...) whereas it should be setting the second from the right bit as you read the bits in the octet, which is PId=1. Put another way, looks to me like UERANSIM is reversing the bits in each octet, for both encode and decode functions.
Reading the code in ie4.cpp seems to underline this, unless I'm mistaken.

For example, shouldn't the snippet:

void IEAllowedPduSessionStatus::Encode(const IEAllowedPduSessionStatus &ie, OctetString &stream)
{
    stream.appendOctet(bits::Ranged8({{1, 0},
                                      {1, ie.psi[1]},
                                      {1, ie.psi[2]},
                                      {1, ie.psi[3]},
                                      {1, ie.psi[4]},
                                      {1, ie.psi[5]},
                                      {1, ie.psi[6]},
                                      {1, ie.psi[7]}}));

be

void IEAllowedPduSessionStatus::Encode(const IEAllowedPduSessionStatus &ie, OctetString &stream)
{
    stream.appendOctet(bits::Ranged8({{1, ie.psi[7]},
                                      {1, ie.psi[6]},
                                      {1, ie.psi[5]},
                                      {1, ie.psi[4]},
                                      {1, ie.psi[3]},
                                      {1, ie.psi[2]},
                                      {1, ie.psi[1]}
                                      {1, 0}}));

Thanks

aligungr commented 3 years ago

Hi @vulcanfan

Sorry that was a mistake. I've fixed this and pushed to the master.

Thanks for reporting the issue

vulcanfan commented 3 years ago

Thanks very much for the swift turn around!

mithgit commented 3 years ago

Hi, Initially the setup was good and every call flow was there. But Now i'me getting PDU Session Establishment failure. Please suggest.

[2021-05-03 19:01:29.426] [nas] [debug] Sending PDU Session Establishment Request [2021-05-03 19:01:29.636] [nas] [error] MM cause received: ? [2021-05-03 19:01:46.406] [nas] [warning] Retransmitting PDU Session Establishment Request due to T3580 expiry [2021-05-03 19:01:46.409] [nas] [error] MM cause received: ? [2021-05-03 19:02:02.422] [nas] [warning] Retransmitting PDU Session Establishment Request due to T3580 expiry [2021-05-03 19:02:02.425] [nas] [error] MM cause received: ? [2021-05-03 19:02:18.438] [nas] [warning] Retransmitting PDU Session Establishment Request due to T3580 expiry [2021-05-03 19:02:18.440] [nas] [error] MM cause received: ? [2021-05-03 19:02:34.454] [nas] [warning] Retransmitting PDU Session Establishment Request due to T3580 expiry [2021-05-03 19:02:34.456] [nas] [error] MM cause received: ? [2021-05-03 19:02:50.470] [nas] [error] PDU Session Establishment procedure failure, no response from the network after 5 attempts [2021-05-03 19:02:50.470] [nas] [debug] Aborting SM procedure for PTI[1], PSI[1]

aligungr commented 3 years ago

Hi @mithgit

Please send a PCAP file to see the messaging in more details.

Regards

mithgit commented 3 years ago

Hi @mithgit

Please send a PCAP file to see the messaging in more details.

Regards

Hi, The PCAP file bit heavy 1.02 gb, unable to attach it here. if You share a mail id, then i can add this file in my drive & share with you.

Please check below log.

################################################ AMF ######################################################################### {"log":"\u001b[32m05/19 12:36:59.275\u001b[0m: [\u001b[33mamf\u001b[0m] \u001b[1;33mERROR\u001b[0m: [imsi-208930100001111] HTTP response error [403] (../src/amf/nnssf-handler.c:43)\n","stream":"stderr","time":"2021-05-19T12:36:59.27606048Z"} {"log":"\u001b[32m05/19 12:37:16.010\u001b[0m: [\u001b[33mgmm\u001b[0m] \u001b[1;32mINFO\u001b[0m: UE SUPI[imsi-208930100001111] DNN[internet] S_NSSAI[SST:1 SD:0x1] (../src/amf/gmm-handler.c:821)\n","stream":"stderr","time":"2021-05-19T12:37:16.01102488Z"} {"log":"\u001b[32m05/19 12:37:16.012\u001b[0m: [\u001b[33mamf\u001b[0m] \u001b[1;33mERROR\u001b[0m: [imsi-208930100001111] HTTP response error [403] (../src/amf/nnssf-handler.c:43)\n","stream":"stderr","time":"2021-05-19T12:37:16.013016471Z"} {"log":"\u001b[32m05/19 12:37:32.026\u001b[0m: [\u001b[33mgmm\u001b[0m] \u001b[1;32mINFO\u001b[0m: UE SUPI[imsi-208930100001111] DNN[internet] S_NSSAI[SST:1 SD:0x1] (../src/amf/gmm-handler.c:821)\n","stream":"stderr","time":"2021-05-19T12:37:32.02703686Z"} {"log":"\u001b[32m05/19 12:37:32.028\u001b[0m: [\u001b[33mamf\u001b[0m] \u001b[1;33mERROR\u001b[0m: [imsi-208930100001111] HTTP response error [403] (../src/amf/nnssf-handler.c:43)\n","stream":"stderr","time":"2021-05-19T12:37:32.028639276Z"} {"log":"\u001b[32m05/19 12:37:48.043\u001b[0m: [\u001b[33mgmm\u001b[0m] \u001b[1;32mINFO\u001b[0m: UE SUPI[imsi-208930100001111] DNN[internet] S_NSSAI[SST:1 SD:0x1] (../src/amf/gmm-handler.c:821)\n","stream":"stderr","time":"2021-05-19T12:37:48.043415007Z"} {"log":"\u001b[32m05/19 12:37:48.044\u001b[0m: [\u001b[33mamf\u001b[0m] \u001b[1;33mERROR\u001b[0m: [imsi-208930100001111] HTTP response error [403] (../src/amf/nnssf-handler.c:43)\n","stream":"stderr","time":"2021-05-19T12:37:48.044957133Z"} ~

################################################ NSSF ######################################################################### {"log":"\u001b[32m05/19 06:07:28.797\u001b[0m: [\u001b[33mnssf\u001b[0m] \u001b[1;33mERROR\u001b[0m: [b0d2f108-ac2f-41eb-99bf-8d04ed9c2ba0] HTTP response error [503] (../src/nssf/nf-sm.c:135)\n","stream":"stderr","time":"2021-05-19T06:07:28.797886665Z"} {"log":"\u001b[32m05/19 06:07:29.098\u001b[0m: [\u001b[33mnssf\u001b[0m] \u001b[1;36mWARNING\u001b[0m: [b0d2f108-ac2f-41eb-99bf-8d04ed9c2ba0] Retry to registration with NRF (../src/nssf/nf-sm.c:368)\n","stream":"stderr","time":"2021-05-19T06:07:29.098295619Z"} {"log":"\u001b[32m05/19 06:07:29.100\u001b[0m: [\u001b[33mnssf\u001b[0m] \u001b[1;32mINFO\u001b[0m: [b0d2f108-ac2f-41eb-99bf-8d04ed9c2ba0] NF registred [Heartbeat:10s] (../src/nssf/nf-sm.c:198)\n","stream":"stderr","time":"2021-05-19T06:07:29.100516014Z"} {"log":"\u001b[32m05/19 07:22:54.343\u001b[0m: [\u001b[33mnssf\u001b[0m] \u001b[1;33mERROR\u001b[0m: Cannot find NSI by S-NSSAI[SST:1 SD:0x1] (../src/nssf/nnssf-handler.c:89)\n","stream":"stderr","time":"2021-05-19T07:22:54.344032306Z"} {"log":"\u001b[32m05/19 07:23:11.106\u001b[0m: [\u001b[33mnssf\u001b[0m] \u001b[1;33mERROR\u001b[0m: Cannot find NSI by S-NSSAI[SST:1 SD:0x1] (../src/nssf/nnssf-handler.c:89)\n","stream":"stderr","time":"2021-05-19T07:23:11.106905078Z"} {"log":"\u001b[32m05/19 07:23:27.123\u001b[0m: [\u001b[33mnssf\u001b[0m] \u001b[1;33mERROR\u001b[0m: Cannot find NSI by S-NSSAI[SST:1 SD:0x1] (../src/nssf/nnssf-handler.c:89)\n","stream":"stderr","time":"2021-05-19T07:23:27.124131432Z"} {"log":"\u001b[32m05/19 07:23:43.138\u001b[0m: [\u001b[33mnssf\u001b[0m] \u001b[1;33mERROR\u001b[0m: Cannot find NSI by S-NSSAI[SST:1 SD:0x1] (../src/nssf/nnssf-handler.c:89)\n","stream":"stderr","time":"2021-05-19T07:23:43.138791745Z"} {"log":"\u001b[32m05/19 07:23:59.154\u001b[0m: [\u001b[33mnssf\u001b[0m] \u001b[1;33mERROR\u001b[0m: Cannot find NSI by S-NSSAI[SST:1 SD:0x1] (../src/nssf/nnssf-handler.c:89)\n","stream":"stderr","time":"2021-05-19T07:23:59.154768006Z"} {"log":"\u001b[32m05/19 09:00:38.832\u001b[0m: [\u001b[33mnssf\u001b[0m] \u001b[1;33mERROR\u001b[0m: Cannot find NSI by S-NSSAI[SST:1 SD:0x1] (../src/nssf/nnssf-handler.c:89)\n","stream":"stderr","time":"2021-05-19T09:00:38.832207921Z"}

aligungr commented 3 years ago

@mithgit You can just export NGAP packets as a separate PCAP file.

mithgit commented 3 years ago

@mithgit You can just export NGAP packets as a separate PCAP file.

NGAP-URANSIM.zip

aligungr commented 3 years ago

@mithgit

Cannot find NSI by S-NSSAI implies an error in core network side. I think you have some mis-configurations in UERANSIM and/or Open5gs side. Please double check NSSAI configs, especially.

PallaviTharigonda commented 3 years ago

[2021-05-25 09:38:34.298] [208930000000002|nas] [error] MM status received with cause [?] [2021-05-25 09:38:34.299] [208930000000001|nas] [error] MM status received with cause [?] [2021-05-25 09:38:34.299] [208930000000000|nas] [error] MM status received with cause [?] [2021-05-25 09:38:50.312] [208930000000002|nas] [warning] Retransmitting PDU Session Establishment Request due to T3580 expiry [2021-05-25 09:38:50.312] [208930000000001|nas] [warning] Retransmitting PDU Session Establishment Request due to T3580 expiry [2021-05-25 09:38:50.312] [208930000000000|nas] [warning] Retransmitting PDU Session Establishment Request due to T3580 expiry [2021-05-25 09:38:50.313] [208930000000001|nas] [error] MM status received with cause [?] [2021-05-25 09:38:50.315] [208930000000002|nas] [error] MM status received with cause [?] [2021-05-25 09:38:50.315] [208930000000000|nas] [error] MM status received with cause [?] [2021-05-25 09:39:06.328] [208930000000001|nas] [error] PDU Session Establishment procedure failure, no response from the network after 5 attempts [2021-05-25 09:39:06.328] [208930000000001|nas] [debug] Aborting SM procedure for PTI[1], PSI[1] [2021-05-25 09:39:06.328] [208930000000000|nas] [error] PDU Session Establishment procedure failure, no response from the network after 5 attempts [2021-05-25 09:39:06.328] [208930000000000|nas] [debug] Aborting SM procedure for PTI[1], PSI[1] [2021-05-25 09:39:06.328] [208930000000002|nas] [error] PDU Session Establishment procedure failure, no response from the network after 5 attempts [debug] Aborting SM procedure for PTI[1], PSI[1]

I'm getting like this, can u please tell me what may be the issue?

aligungr commented 3 years ago

@PallaviTharigonda

It's hard to figure this out, as the core network sends an invalid 5GMM Status. Please send a PCAP file captured from UERANSIM's machine or AMF's machine.

Also I wonder which core network are you using?

PallaviTharigonda commented 3 years ago

@aligungr Here is the thing, Now I'm doing some experiment so I've seperated upf from rest of the components .So connection between smf and upf is broken .

ubuntu@ip-172-31-15-65:~/opensource-5g-core-service-mesh/helm-chart$ kubectl get po -A
NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE
kube-system   aws-node-7988w                             1/1     Running   0          35d
kube-system   aws-node-jb4jt                             1/1     Running   0          35d
kube-system   coredns-6548845887-k2kxr                   1/1     Running   0          35d
kube-system   coredns-6548845887-qw89n                   1/1     Running   0          35d
kube-system   kube-proxy-64bj5                           1/1     Running   0          35d
kube-system   kube-proxy-c6b57                           1/1     Running   0          35d
open5gs-upf   open5gs-upf-deployment-6d7ccb7878-gh4nq    1/1     Running   0          39s
open5gs       open5gs-amf-deployment-6c6fb9bdf-t4sp9     1/1     Running   0          40s
open5gs       open5gs-ausf-deployment-66dbf4b596-cgdj2   1/1     Running   0          40s
open5gs       open5gs-mongodb-55b598665-m264j            1/1     Running   0          40s
open5gs       open5gs-nrf-deployment-65987df6b7-mdxx6    1/1     Running   0          40s
open5gs       open5gs-nssf-deployment-7dd48b884f-n5zsg   1/1     Running   0          40s
open5gs       open5gs-pcf-deployment-674df5cfd8-rdh42    1/1     Running   2          40s
open5gs       open5gs-smf-deployment-86c5dd985c-9npxx    1/1     Running   0          40s
open5gs       open5gs-udm-deployment-7c84846d57-2dhj9    1/1     Running   0          40s
open5gs       open5gs-udr-deployment-6c4dc56fb8-6l9g2    1/1     Running   2          40s
open5gs       open5gs-webui-69fb69d57f-wj7v2             1/1     Running   2          39s

that connection part still I'm looking ,how to make connection between 2 namespaces. So I think because of that I'm getting some new errors in this ueransim

Here I'm inserting logs of upf and smf pods.

ubuntu@ip-172-31-15-65:~/opensource-5g-core-service-mesh/helm-chart$ kubectl logs open5gs-upf-deployment-6d7ccb7878-gh4nq -n open5gs-upf
net.ipv6.conf.all.disable_ipv6 = 1
Open5GS daemon v2.2.2

05/25 09:25:29.053: [app] INFO: Configuration: '/open5gs/config-map/upf.yaml' (../lib/app/ogs-init.c:129)
05/25 09:25:29.053: [app] INFO: File Logging: '/var/log/open5gs/upf.log' (../lib/app/ogs-init.c:132)
05/25 09:25:29.058: [app] INFO: UPF initialize...done (../src/upf/app.c:31)
05/25 09:25:29.058: [pfcp] INFO: pfcp_server() [192.168.13.70]:8805 (../lib/pfcp/path.c:31)
05/25 09:25:29.059: [gtp] INFO: gtp_server() [192.168.13.70]:2152 (../lib/gtp/path.c:31)
ubuntu@ip-172-31-15-65:~/opensource-5g-core-service-mesh/helm-chart$ kubectl logs open5gs-smf-deployment-86c5dd985c-9npxx -n open5gs
Open5GS daemon v2.2.2

05/25 09:25:28.619: [app] INFO: Configuration: '/open5gs/config-map/smf.yaml' (../lib/app/ogs-init.c:129)
05/25 09:25:28.619: [app] INFO: File Logging: '/var/log/open5gs/smf.log' (../lib/app/ogs-init.c:132)
05/25 09:25:28.645: [smf] WARNING: No diameter configuration (../src/smf/fd-path.c:1067)
05/25 09:25:28.645: [gtp] INFO: gtp_server() [192.168.6.205]:2123 (../lib/gtp/path.c:31)
05/25 09:25:28.645: [gtp] INFO: gtp_server() [192.168.6.205]:2152 (../lib/gtp/path.c:31)
05/25 09:25:28.645: [pfcp] INFO: pfcp_server() [192.168.6.205]:8805 (../lib/pfcp/path.c:31)
05/25 09:25:28.645: [app] INFO: SMF initialize...done (../src/smf/app.c:31)
05/25 09:25:28.647: [sbi] INFO: nghttp2_server() [0.0.0.0]:80 (../lib/sbi/nghttp2-server.c:144)
05/25 09:25:29.684: [sbi] WARNING: [7] Failed to connect to 10.100.234.132 port 80: Connection refused (../lib/sbi/client.c:465)
05/25 09:25:39.658: [smf] WARNING: [24ff61c6-bd3b-41eb-bd45-739fe1d82882] Retry to registration with NRF (../src/smf/nf-sm.c:161)
05/25 09:25:39.660: [smf] INFO: [24ff61c6-bd3b-41eb-bd45-739fe1d82882] NF registred [Heartbeat:10s] (../src/smf/nf-sm.c:199)
05/25 09:25:40.241: [smf] INFO: [25589ffc-bd3b-41eb-8341-49ac5e409c17] (NRF-notify) NF registered (../src/smf/nnrf-handler.c:177)
05/25 09:25:40.242: [smf] INFO: [25589ffc-bd3b-41eb-8341-49ac5e409c17] (NRF-notify) NF Profile updated (../src/smf/nnrf-handler.c:196)
05/25 09:25:40.721: [smf] INFO: [25a35eac-bd3b-41eb-8812-a71c2b83e7c2] (NRF-notify) NF registered (../src/smf/nnrf-handler.c:177)
05/25 09:25:40.721: [smf] INFO: [25a35eac-bd3b-41eb-8812-a71c2b83e7c2] (NRF-notify) NF Profile updated (../src/smf/nnrf-handler.c:196)
05/25 09:25:47.749: [smf] INFO: [3062000a-bd3b-41eb-9c0a-bf29d696de13] (NRF-notify) NF registered (../src/smf/nnrf-handler.c:177)
05/25 09:25:47.749: [smf] INFO: [3062000a-bd3b-41eb-9c0a-bf29d696de13] (NRF-notify) NF Profile updated (../src/smf/nnrf-handler.c:196)
mithgit commented 3 years ago

As suggestion.. our PDU Session Prob been resolved after upgradation of helm chart in case of open5gs.