UERANSIM
UERANSIM copied to clipboard
About PDU Session Resource Modify Response
Hello, @aligungr When I set PCC rules in the open5gs webui and ue connect to the open5gs core, the gNB log shows "[ngap] [error] Unhandled NGAP initiating-message received (9)". Then I checked my packet information that captured from the wireshark. I found that ngap procedure is strange.The open5gs core send "PDUSessionResourceModifyRequest" to gNB, but gNB doesn't send "PDUSessionResourceModifyResponse" back. So I watch UERANSIM's Feature Set, it doesn't mention about PDU Session Resource Modify Response on NGAP Features. It's not support now?
gNB logs
packet information
my pacp file open5gs.zip
Hello @Evanlin1224
Yes, this feature is not supported yet.
Regards
It's any solution to fix it? or if I want to implement this what should I do from which part or code? and some suggestion, thanks.
@Evanlin1224
If you want to implement this feature, you should modify NAS, NGAP and GTP layers, and TS 24.501 and TS 38.413 will be your friend.
Regards
@Evanlin1224 @aligungr Hello, i am also intersted in QoS and in this feature. I just started looking at these things and I don't quite understand one thing. From the technical specifications it seems that it is possible to establish a PDU session with multiple active QoS flows however the AMF in the PDUSessionResourceSetupRequest
includes only the "default" qos flow after which it sends PDUSessionResourceModifyRequest
for each PCC rule. Is this normal behavior? Can't create a PDU session with more than one qos flow active right from the start?
@DendoD96 I think I didn't fully understand and need some more clarification about the question.
@aligungr sorry for the bad explanation, I'll give you an example. I have configured this S-NSSAI for my UE, watching pcap the AMF in the PDUSessionResourceSetupRequest
includes in QoSFlowSetupRequestList
only the first QoS flow. After that the AMF sends two PDUSessionResourceModifyRequest
for the other QoS flows. Is this the standard procedure?
Regards
@DendoD96
OK, now I understand it, sorry.
Yes, a single PDU session can contain more than one QoS flows. And AMF can indicate all the relevant QoS flows in the Resource Setup Request. But the behavior you mentioned (Setup request for default QoS flow, and Modification for other QoS) seems also valid from the gNodeB perspective.
I'm not sure whether this behavior is optimal from the AMF perspective, but UE and gNodeB should handle these messages in any case. Regardless of it's the standard behavior or not.
But actually I don't know if it is the standard behavior.
I hope I was able to answer your question Thanks
Hi @aligungr , @DendoD96 and @Evanlin1224
I think UE and RAN need to support this feature. This is because users are able to add QoS flow through CLI after the session was setup.
Right now, I've intentionally implemented it to send in parts rather than all at once. If I confirm that it works well with other UE/gNB, I will modify it to send all QoS flows when creating a session in open5gs.
Thanks a lot! Sukchan
@aligungr @acetcom yes, definitly UERANSIM should support this feature. I think I can try to implement it, but I'm not sure if I can.
Regards
Hi @aligungr , I tried to implement the modification procedure following what is reported in the technical specifications and your implementation for the setup procedure and i have some questions:
- in the gNB the list of pdu sessions, stored in the GtpTask, stores the flows as
ASN_NGAP_QosFlowSetupRequestItem
. In the modify request the flows are deserialized asASN_NGAP_QosFlowAddOrModifyRequestItem
. Currently I build anASN_NGAP_QosFlowSetupRequestItem
from the information of anASN_NGAP_QosFlowAddOrModifyRequestItem
, but but I'd like to know what kind of solution you had in mind. - Is it possible that the IEs for the successList and the failedList of the change request do not exist? Just to better explain, the equivalents of
ASN_NGAP_PDUSessionResourceSetupItemSURes
andASN_NGAP_PDUSessionResourceFailedToSetupItemSURes
Thanks
Hi Daniele
Here's some answers to the previous questions.
- The approach you mention seems fine in this case.
- In general gNodeB or UE should not make assumptions about the received message. (The common exception is syntactic cases defined by the structurs of ASN) In other words, everything is possible in terms of messaging :)
Hello @aligungr,
I didn't explain the problem well at second point. I think ASN_NGAP_PDUSessionResourceModifyResponseTransfer
is missing.
So, for the moment, i am not able to create the response to send to AMF.
I am attaching an image (from TS 38.413 rel 15.11.0) to make you understandind wich structures i am referring to.
@DendoD96
Hmm OK, I got it.
These IEs are indeed present in the code-base.
See:
src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyResponseTransfer.h
src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyResponseTransfer.c
and
src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer.h
src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer.c
Good luck
My bad, I hadn't seen them and the IDE didn't suggest them to me.
Thank you
Hi @aligungr, i am implementing the PduSessionModify on the UE side. The PduSessionModificationRequest message contains the IEQoSRules field. The latter contains only an OctetData type field inside, probably also for this reason the POD structures are missing.
Thanks
@DendoD96
Yes these POD are missing in NAS layer. You can check 24.501 for message and IE definitios. And you will need to replace the raw data with relevant fields specified in 24.501
Implementations in UE side are generally more challanging. Let me know if you have any questions.
Hi @aligungr, just a quick question: should a qos stream be associated with a TAP interface? Conceptually no, an interface is associated with a PDU session and packet marking determines the flow. But by doing so, how can the user specify the flow to use?
For example, if I have a PDU session with two streams how can I ping using one stream rather than another?
@DendoD96
TUN interface normally should correspond to DRB (Data Radio Bearer) in our system. Therefore a single PDU session may be associated with more than one TUN interfaces, after the implementation of multiple QoS flows, and implementation of SDAP layer, the user should be able to use the TUN interface at will.
In other words, yes, each one of the QoS flow should be associated with its own TUN interface. (uesimtun0, uesimtun1, ... , uesimtunX)
Hi @aligungr, i have been busy in last months, i have started again to work on qos flow handling. At the moment i have implemented:
- the missing POC structures (except packet filtering)
- part of ngap procedure on gNB side
- part of nas procedure on ue side (very minimal)
I am not a master in c++ and it is the first time that I have to deal a lot with 3gpp ts. When you have time, I'd love if you could give me some feedback by looking at the code on my repo. In case I manage to do an acceptable job I will open one pr.
Regards
Sure @DendoD96, I'll check your work and give a feedback.
@DendoD96 I checked your repo and it seems surprisingly well so far. And I guess there are some TODOs and missing parts. I think you can make a pull request and continue working and discussion there.
@aligungr yes many things are missing. I will do a pr to keep track of my work and continue the discussion there.
Daniele
Hi @aligungr , @DendoD96 and @Evanlin1224
I think UE and RAN need to support this feature. This is because users are able to add QoS flow through CLI after the session was setup.
Right now, I've intentionally implemented it to send in parts rather than all at once. If I confirm that it works well with other UE/gNB, I will modify it to send all QoS flows when creating a session in open5gs.
Thanks a lot! Sukchan
Hello @acetcom Please, Is it possible with the new versions of open5gs to create several QoS flows when creating a pdu session? If yes, how is the configuration done? Think you.
@aligungr yes many things are missing. I will do a pr to keep track of my work and continue the discussion there.
Daniele
Hi @DendoD96, how is your work? If you need some help I would be glad to co-work with you. I'm also interested in this procedure. Or if you finished it, I would be grateful if you can share it :)
Regards, Grzegorz
Hi, I am very interested in this issue. Is there any way that allows to send all the QoSFlows along the PDUSessionResourceSetupRequest?
Regards, Aitor