As mentioned in the sgwu.yaml configuration file, it is possible to configure multiple addresses with different source_interface values for the gtpu interface.
Following the this section, I defined two addresses, one with source_interface set to 0 and another with source_interface set to 1. My expectation was to see different addresses for the two PDRs in the Session Establishment Response message during session establishment. However, both addresses were the same, and it was the address I had set for source_interface = 0.
When I looked into the code, I found the reason for the issue. In the lib/pfcp/context.c file, on line 1185, the function that determines the address is called as follows:
In the last parameter of this function, a constant value, OGS_PFCP_INTERFACE_ACCESS, is used. This causes every PDR with any source_interface to be considered as "access," and the value 0 is used for its interface.
I replaced the value with pdr->src_if, and the bug was resolved.
Now my question is whether this was simply a bug or if there was a specific reason for considering the interface value as a constant.
thanks.
Logs
No response
Expected behaviour
My expectation was to see different addresses for the two PDRs in the Session Establishment Response message during session establishment.
Observed Behaviour
both addresses were the same, and it was the address I had set for source_interface = 0.
Open5GS Release, Revision, or Tag
v2.7.0
Steps to reproduce
Hello,
As mentioned in the sgwu.yaml configuration file, it is possible to configure multiple addresses with different source_interface values for the gtpu interface.
Following the this section, I defined two addresses, one with source_interface set to 0 and another with source_interface set to 1. My expectation was to see different addresses for the two PDRs in the Session Establishment Response message during session establishment. However, both addresses were the same, and it was the address I had set for source_interface = 0.
When I looked into the code, I found the reason for the issue. In the lib/pfcp/context.c file, on line 1185, the function that determines the address is called as follows:
In the last parameter of this function, a constant value, OGS_PFCP_INTERFACE_ACCESS, is used. This causes every PDR with any source_interface to be considered as "access," and the value 0 is used for its interface.
I replaced the value with pdr->src_if, and the bug was resolved.
Now my question is whether this was simply a bug or if there was a specific reason for considering the interface value as a constant.
thanks.
Logs
No response
Expected behaviour
My expectation was to see different addresses for the two PDRs in the Session Establishment Response message during session establishment.
Observed Behaviour
both addresses were the same, and it was the address I had set for source_interface = 0.
eNodeB/gNodeB
No response
UE Models and versions
No response