mirror of
https://github.com/open5gs/open5gs.git
synced 2025-11-22 15:31:16 +00:00
Scenario is handover on S1AP, data forwarding is enabled, and the Source ENB is forwarding DL PDCP packets to EPC(SGWU) with PDCP SN included. SGWU is also forwarding these packets to the Target ENB. However the PDCP SN is not present in the forwarded packets from SGWU to Target ENB. I modified this part, and there was the same problem in 5GC, fixed it as well. A lot of code in GTP-U has been modified, so if you have any problems, please let us know right away.
This commit is contained in:
@@ -218,7 +218,8 @@ bool ogs_pfcp_up_handle_association_setup_response(
|
||||
}
|
||||
|
||||
bool ogs_pfcp_up_handle_pdr(
|
||||
ogs_pfcp_pdr_t *pdr, uint8_t type, ogs_pkbuf_t *recvbuf,
|
||||
ogs_pfcp_pdr_t *pdr, uint8_t type,
|
||||
ogs_gtp2_header_desc_t *recvhdr, ogs_pkbuf_t *recvbuf,
|
||||
ogs_pfcp_user_plane_report_t *report)
|
||||
{
|
||||
ogs_pfcp_far_t *far = NULL;
|
||||
@@ -248,9 +249,27 @@ bool ogs_pfcp_up_handle_pdr(
|
||||
|
||||
} else {
|
||||
if (far->apply_action & OGS_PFCP_APPLY_ACTION_FORW) {
|
||||
ogs_gtp2_header_desc_t sendhdr;
|
||||
|
||||
/* Forward packet */
|
||||
ogs_pfcp_send_g_pdu(pdr, type, sendbuf);
|
||||
memset(&sendhdr, 0, sizeof(sendhdr));
|
||||
sendhdr.type = type;
|
||||
|
||||
if (recvhdr) {
|
||||
/*
|
||||
* Issue #2584
|
||||
* Discussion #2477
|
||||
*
|
||||
* Forward PDCP Number via Indirect Tunnel during Handover
|
||||
*/
|
||||
if (recvhdr->pdcp_number_presence == true) {
|
||||
sendhdr.pdcp_number_presence =
|
||||
recvhdr->pdcp_number_presence;
|
||||
sendhdr.pdcp_number = recvhdr->pdcp_number;
|
||||
}
|
||||
}
|
||||
|
||||
ogs_pfcp_send_g_pdu(pdr, &sendhdr, sendbuf);
|
||||
|
||||
} else if (far->apply_action & OGS_PFCP_APPLY_ACTION_BUFF) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user