Commit 391320b9 authored by Robert Schmidt's avatar Robert Schmidt

Simplify PDCP FlexRAN agent interface

parent 5e0088fa
...@@ -28,12 +28,6 @@ ...@@ -28,12 +28,6 @@
#include "flexran_agent_pdcp.h" #include "flexran_agent_pdcp.h"
/*Trigger boolean for PDCP measurement*/
bool triggered_pdcp = false;
/*Flags showing if a pdcp agent has already been registered*/
unsigned int pdcp_agent_registered[NUM_MAX_ENB];
/*Array containing the Agent-PDCP interfaces*/ /*Array containing the Agent-PDCP interfaces*/
AGENT_PDCP_xface *agent_pdcp_xface[NUM_MAX_ENB]; AGENT_PDCP_xface *agent_pdcp_xface[NUM_MAX_ENB];
...@@ -144,28 +138,41 @@ int flexran_agent_pdcp_stats_reply(mid_t mod_id, ...@@ -144,28 +138,41 @@ int flexran_agent_pdcp_stats_reply(mid_t mod_id,
int flexran_agent_register_pdcp_xface(mid_t mod_id, AGENT_PDCP_xface *xface) { int flexran_agent_register_pdcp_xface(mid_t mod_id)
if (pdcp_agent_registered[mod_id]) { {
LOG_E(PDCP, "PDCP agent for eNB %d is already registered\n", mod_id); if (agent_pdcp_xface[mod_id]) {
LOG_E(FLEXRAN_AGENT, "PDCP agent CM for eNB %d is already registered\n", mod_id);
return -1;
}
AGENT_PDCP_xface *xface = malloc(sizeof(AGENT_PDCP_xface));
if (!xface) {
LOG_E(FLEXRAN_AGENT, "could not allocate memory for PDCP agent xface %d\n", mod_id);
return -1; return -1;
} }
//xface->flexran_pdcp_stats_measurement = NULL; //xface->flexran_pdcp_stats_measurement = NULL;
pdcp_agent_registered[mod_id] = 1;
agent_pdcp_xface[mod_id] = xface; agent_pdcp_xface[mod_id] = xface;
return 0; return 0;
} }
int flexran_agent_unregister_pdcp_xface(mid_t mod_id, AGENT_PDCP_xface *xface) { int flexran_agent_unregister_pdcp_xface(mid_t mod_id)
{
if (!agent_pdcp_xface[mod_id]) {
LOG_E(FLEXRAN_AGENT, "PDCP agent CM for eNB %d is not registered\n", mod_id);
return -1;
}
//xface->agent_ctxt = NULL; //xface->agent_ctxt = NULL;
//xface->flexran_pdcp_stats_measurement = NULL; //xface->flexran_pdcp_stats_measurement = NULL;
free(agent_pdcp_xface[mod_id]);
pdcp_agent_registered[mod_id] = 0;
agent_pdcp_xface[mod_id] = NULL; agent_pdcp_xface[mod_id] = NULL;
return 0; return 0;
} }
AGENT_PDCP_xface *flexran_agent_get_pdcp_xface(mid_t mod_id)
{
return agent_pdcp_xface[mod_id];
}
...@@ -39,6 +39,8 @@ ...@@ -39,6 +39,8 @@
#include "flexran_agent_defs.h" #include "flexran_agent_defs.h"
#include "flexran_agent_pdcp_defs.h" #include "flexran_agent_pdcp_defs.h"
#include "flexran_agent_ran_api.h" #include "flexran_agent_ran_api.h"
// for flexran_agent_get_pdcp_xface()
#include "flexran_agent_extern.h"
/********************************** /**********************************
* FlexRAN agent - technology PDCP API * FlexRAN agent - technology PDCP API
...@@ -56,9 +58,9 @@ void flexran_agent_pdcp_aggregate_stats(const mid_t mod_id, ...@@ -56,9 +58,9 @@ void flexran_agent_pdcp_aggregate_stats(const mid_t mod_id,
Protocol__FlexPdcpStats *pdcp_aggr_stats); Protocol__FlexPdcpStats *pdcp_aggr_stats);
/*Register technology specific interface callbacks*/ /*Register technology specific interface callbacks*/
int flexran_agent_register_pdcp_xface(mid_t mod_id, AGENT_PDCP_xface *xface); int flexran_agent_register_pdcp_xface(mid_t mod_id);
/*Unregister technology specific callbacks*/ /*Unregister technology specific callbacks*/
int flexran_agent_unregister_pdcp_xface(mid_t mod_id, AGENT_PDCP_xface*xface); int flexran_agent_unregister_pdcp_xface(mid_t mod_id);
#endif #endif
...@@ -236,8 +236,7 @@ int flexran_agent_start(mid_t mod_id) ...@@ -236,8 +236,7 @@ int flexran_agent_start(mid_t mod_id)
flexran_agent_register_rrc_xface(mod_id); flexran_agent_register_rrc_xface(mod_id);
AGENT_PDCP_xface *pdcp_agent_xface = (AGENT_PDCP_xface *) malloc(sizeof(AGENT_PDCP_xface)); flexran_agent_register_pdcp_xface(mod_id);
flexran_agent_register_pdcp_xface(mod_id, pdcp_agent_xface);
/* /*
* initilize a timer * initilize a timer
......
...@@ -42,10 +42,7 @@ AGENT_MAC_xface *flexran_agent_get_mac_xface(mid_t mod_id); ...@@ -42,10 +42,7 @@ AGENT_MAC_xface *flexran_agent_get_mac_xface(mid_t mod_id);
AGENT_RRC_xface *flexran_agent_get_rrc_xface(mid_t mod_id); AGENT_RRC_xface *flexran_agent_get_rrc_xface(mid_t mod_id);
/* Control module interface for the communication of the RRC Control Module with the agent */ /* Control module interface for the communication of the RRC Control Module with the agent */
extern AGENT_PDCP_xface *agent_pdcp_xface[NUM_MAX_ENB]; AGENT_PDCP_xface *flexran_agent_get_pdcp_xface(mid_t mod_id);
/* Flag indicating whether the VSFs for the RRC control module have been registered */
extern unsigned int pdcp_agent_registered[NUM_MAX_ENB];
/* Requried to know which UEs had a harq updated over some subframe */ /* Requried to know which UEs had a harq updated over some subframe */
extern int harq_pid_updated[NUM_MAX_UE][8]; extern int harq_pid_updated[NUM_MAX_UE][8];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment