Create direct API to send GTP-U msgs

This commit is contained in:
Robert Schmidt
2024-12-11 10:31:52 +01:00
parent f6238eddec
commit 70fa713712
2 changed files with 20 additions and 6 deletions
+17 -6
View File
@@ -286,13 +286,14 @@ static int gtpv1uCreateAndSendMsg(int h,
return !GTPNOK;
}
static void gtpv1uSend(instance_t instance, gtpv1u_tunnel_data_req_t *req, bool seqNumFlag, bool npduNumFlag)
void gtpv1uSendDirect(instance_t instance,
ue_id_t ue_id,
int bearer_id,
uint8_t *buf,
size_t len,
bool seqNumFlag,
bool npduNumFlag)
{
uint8_t *buf = req->buffer + req->offset;
size_t len = req->length;
ue_id_t ue_id = req->ue_id;
int bearer_id = req->bearer_id;
pthread_mutex_lock(&globGtp.gtp_lock);
getInstRetVoid(compatInst(instance));
getUeRetVoid(inst, ue_id);
@@ -367,6 +368,16 @@ static void gtpv1uSend(instance_t instance, gtpv1u_tunnel_data_req_t *req, bool
}
}
static void gtpv1uSend(instance_t instance, gtpv1u_tunnel_data_req_t *req, bool seqNumFlag, bool npduNumFlag)
{
uint8_t *buf = req->buffer + req->offset;
size_t len = req->length;
ue_id_t ue_id = req->ue_id;
int bearer_id = req->bearer_id;
gtpv1uSendDirect(instance, ue_id, bearer_id, buf, len, seqNumFlag, npduNumFlag);
}
static void fillDlDeliveryStatusReport(extensionHeader_t *extensionHeader, uint32_t RLC_buffer_availability, uint32_t NR_PDCP_PDU_SN){
extensionHeader->buffer[0] = (1+sizeof(DlDataDeliveryStatus_flagsT)+(NR_PDCP_PDU_SN>0?3:0)+(NR_PDCP_PDU_SN>0?1:0)+1)/4;
+3
View File
@@ -103,6 +103,9 @@ extern "C" {
int newGtpuDeleteOneTunnel(instance_t instance, ue_id_t ue_id, int rb_id);
int newGtpuDeleteAllTunnels(instance_t instance, ue_id_t ue_id);
int newGtpuDeleteTunnels(instance_t instance, ue_id_t ue_id, int nbTunnels, pdusessionid_t *pdusession_id);
void gtpv1uSendDirect(instance_t instance, ue_id_t ue_id, int bearer_id, uint8_t *buf, size_t len, bool seqNumFlag, bool npduNumFlag);
instance_t gtpv1Init(openAddr_t context);
void *gtpv1uTask(void *args);