Changed handlers not to require the xid in their signature. Containted in the received message, or generated in them
This commit is contained in:
@@ -140,7 +140,7 @@ void *receive_thread(void *args) {
|
|||||||
LOG_D(ENB_AGENT,"received message with size %d\n", size);
|
LOG_D(ENB_AGENT,"received message with size %d\n", size);
|
||||||
|
|
||||||
|
|
||||||
msg=enb_agent_handle_message(d->mod_id, d->rx_xid, data, size);
|
msg=enb_agent_handle_message(d->mod_id, data, size);
|
||||||
|
|
||||||
free(data);
|
free(data);
|
||||||
|
|
||||||
@@ -149,7 +149,7 @@ void *receive_thread(void *args) {
|
|||||||
|
|
||||||
// check if there is something to send back to the controller
|
// check if there is something to send back to the controller
|
||||||
if (msg != NULL){
|
if (msg != NULL){
|
||||||
data=enb_agent_send_message(d->tx_xid,msg,&size);
|
data=enb_agent_send_message(msg,&size);
|
||||||
|
|
||||||
if (message_put(d->tx_mq, data, size, priority)){
|
if (message_put(d->tx_mq, data, size, priority)){
|
||||||
err_code = PROTOCOL__PROGRAN_ERR__MSG_ENQUEUING;
|
err_code = PROTOCOL__PROGRAN_ERR__MSG_ENQUEUING;
|
||||||
|
|||||||
@@ -102,9 +102,11 @@ int prp_create_header(xid_t xid, Protocol__PrpType type, Protocol__PrpHeader **
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int enb_agent_hello(mid_t mod_id, xid_t xid, const void *params, Protocol__ProgranMessage **msg) {
|
int enb_agent_hello(mid_t mod_id, const void *params, Protocol__ProgranMessage **msg) {
|
||||||
|
|
||||||
Protocol__PrpHeader *header;
|
Protocol__PrpHeader *header;
|
||||||
|
/*TODO: Need to set random xid or xid from received hello message*/
|
||||||
|
xid_t xid = 1;
|
||||||
if (prp_create_header(xid, PROTOCOL__PRP_TYPE__PRPT_HELLO, &header) != 0)
|
if (prp_create_header(xid, PROTOCOL__PRP_TYPE__PRPT_HELLO, &header) != 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
@@ -154,8 +156,10 @@ int enb_agent_destroy_hello(Protocol__ProgranMessage *msg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int enb_agent_echo_request(mid_t mod_id, xid_t xid, const void* params, Protocol__ProgranMessage **msg) {
|
int enb_agent_echo_request(mid_t mod_id, const void* params, Protocol__ProgranMessage **msg) {
|
||||||
Protocol__PrpHeader *header;
|
Protocol__PrpHeader *header;
|
||||||
|
/*TODO: Need to set a random xid*/
|
||||||
|
xid_t xid = 1;
|
||||||
if (prp_create_header(xid, PROTOCOL__PRP_TYPE__PRPT_ECHO_REQUEST, &header) != 0)
|
if (prp_create_header(xid, PROTOCOL__PRP_TYPE__PRPT_ECHO_REQUEST, &header) != 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
@@ -203,7 +207,13 @@ int enb_agent_destroy_echo_request(Protocol__ProgranMessage *msg) {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
int enb_agent_echo_reply(mid_t mod_id, xid_t xid, const void *params, Protocol__ProgranMessage **msg) {
|
int enb_agent_echo_reply(mid_t mod_id, const void *params, Protocol__ProgranMessage **msg) {
|
||||||
|
|
||||||
|
xid_t xid;
|
||||||
|
Protocol__ProgranMessage *input = (Protocol__ProgranMessage *)params;
|
||||||
|
Protocol__PrpEchoRequest *echo_req = input->echo_request_msg;
|
||||||
|
xid = (echo_req->header)->xid;
|
||||||
|
|
||||||
Protocol__PrpHeader *header;
|
Protocol__PrpHeader *header;
|
||||||
if (prp_create_header(xid, PROTOCOL__PRP_TYPE__PRPT_ECHO_REPLY, &header) != 0)
|
if (prp_create_header(xid, PROTOCOL__PRP_TYPE__PRPT_ECHO_REPLY, &header) != 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|||||||
@@ -58,7 +58,6 @@
|
|||||||
|
|
||||||
typedef int (*enb_agent_message_decoded_callback)(
|
typedef int (*enb_agent_message_decoded_callback)(
|
||||||
mid_t mod_id,
|
mid_t mod_id,
|
||||||
xid_t xid,
|
|
||||||
const void *params,
|
const void *params,
|
||||||
Protocol__ProgranMessage **msg
|
Protocol__ProgranMessage **msg
|
||||||
);
|
);
|
||||||
@@ -72,23 +71,21 @@ int enb_agent_deserialize_message(void *data, int size, Protocol__ProgranMessage
|
|||||||
|
|
||||||
int prp_create_header(xid_t xid, Protocol__PrpType type, Protocol__PrpHeader **header);
|
int prp_create_header(xid_t xid, Protocol__PrpType type, Protocol__PrpHeader **header);
|
||||||
|
|
||||||
int enb_agent_hello(mid_t mod_id, xid_t xid, const void *params, Protocol__ProgranMessage **msg);
|
int enb_agent_hello(mid_t mod_id, const void *params, Protocol__ProgranMessage **msg);
|
||||||
int enb_agent_destroy_hello(Protocol__ProgranMessage *msg);
|
int enb_agent_destroy_hello(Protocol__ProgranMessage *msg);
|
||||||
|
|
||||||
int enb_agent_echo_request(mid_t mod_id, xid_t xid, const void *params, Protocol__ProgranMessage **msg);
|
int enb_agent_echo_request(mid_t mod_id, const void *params, Protocol__ProgranMessage **msg);
|
||||||
int enb_agent_destroy_echo_request(Protocol__ProgranMessage *msg);
|
int enb_agent_destroy_echo_request(Protocol__ProgranMessage *msg);
|
||||||
|
|
||||||
int enb_agent_echo_reply(mid_t mod_id, xid_t xid, const void *params, Protocol__ProgranMessage **msg);
|
int enb_agent_echo_reply(mid_t mod_id, const void *params, Protocol__ProgranMessage **msg);
|
||||||
int enb_agent_destroy_echo_reply(Protocol__ProgranMessage *msg);
|
int enb_agent_destroy_echo_reply(Protocol__ProgranMessage *msg);
|
||||||
|
|
||||||
|
|
||||||
Protocol__ProgranMessage* enb_agent_handle_message (mid_t mod_id,
|
Protocol__ProgranMessage* enb_agent_handle_message (mid_t mod_id,
|
||||||
xid_t xid,
|
|
||||||
uint8_t *data,
|
uint8_t *data,
|
||||||
uint32_t size);
|
uint32_t size);
|
||||||
|
|
||||||
void * enb_agent_send_message(xid_t xid,
|
void * enb_agent_send_message(Protocol__ProgranMessage *msg,
|
||||||
Protocol__ProgranMessage *msg,
|
|
||||||
uint32_t * size);
|
uint32_t * size);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -68,7 +68,6 @@ static const char *enb_agent_direction2String[] = {
|
|||||||
|
|
||||||
|
|
||||||
Protocol__ProgranMessage* enb_agent_handle_message (mid_t mod_id,
|
Protocol__ProgranMessage* enb_agent_handle_message (mid_t mod_id,
|
||||||
xid_t xid,
|
|
||||||
uint8_t *data,
|
uint8_t *data,
|
||||||
uint32_t size){
|
uint32_t size){
|
||||||
|
|
||||||
@@ -93,7 +92,7 @@ Protocol__ProgranMessage* enb_agent_handle_message (mid_t mod_id,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
err_code = ((*messages_callback[decoded_message->msg_case-1][decoded_message->msg_dir-1])(mod_id, xid, (void *) decoded_message, &reply_message));
|
err_code = ((*messages_callback[decoded_message->msg_case-1][decoded_message->msg_dir-1])(mod_id, (void *) decoded_message, &reply_message));
|
||||||
if ( err_code < 0 ){
|
if ( err_code < 0 ){
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
@@ -110,8 +109,7 @@ error:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void * enb_agent_send_message(xid_t xid,
|
void * enb_agent_send_message(Protocol__ProgranMessage *msg,
|
||||||
Protocol__ProgranMessage *msg,
|
|
||||||
uint32_t * size){
|
uint32_t * size){
|
||||||
|
|
||||||
void * buffer;
|
void * buffer;
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
|
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
|
|
||||||
int enb_agent_mac_handle_stats(mid_t mod_id, xid_t xid, const void *params, Protocol__ProgranMessage **msg){
|
int enb_agent_mac_handle_stats(mid_t mod_id, const void *params, Protocol__ProgranMessage **msg){
|
||||||
|
|
||||||
// TODO: Must deal with sanitization of input
|
// TODO: Must deal with sanitization of input
|
||||||
// TODO: Must check if RNTIs and cell ids of the request actually exist
|
// TODO: Must check if RNTIs and cell ids of the request actually exist
|
||||||
@@ -47,6 +47,7 @@ int enb_agent_mac_handle_stats(mid_t mod_id, xid_t xid, const void *params, Prot
|
|||||||
void *buffer;
|
void *buffer;
|
||||||
int size;
|
int size;
|
||||||
err_code_t err_code;
|
err_code_t err_code;
|
||||||
|
xid_t xid;
|
||||||
|
|
||||||
//TODO: We do not deal with multiple CCs at the moment and eNB id is 0
|
//TODO: We do not deal with multiple CCs at the moment and eNB id is 0
|
||||||
int cc_id = 0;
|
int cc_id = 0;
|
||||||
@@ -63,6 +64,7 @@ int enb_agent_mac_handle_stats(mid_t mod_id, xid_t xid, const void *params, Prot
|
|||||||
Protocol__ProgranMessage *input = (Protocol__ProgranMessage *)params;
|
Protocol__ProgranMessage *input = (Protocol__ProgranMessage *)params;
|
||||||
|
|
||||||
Protocol__PrpStatsRequest *stats_req = input->stats_request_msg;
|
Protocol__PrpStatsRequest *stats_req = input->stats_request_msg;
|
||||||
|
xid = (stats_req->header)->xid;
|
||||||
|
|
||||||
// Check the type of request that is made
|
// Check the type of request that is made
|
||||||
switch(stats_req->body_case) {
|
switch(stats_req->body_case) {
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ typedef struct {
|
|||||||
} report_config_t;
|
} report_config_t;
|
||||||
|
|
||||||
|
|
||||||
int enb_agent_mac_handle_stats(mid_t mod_id, xid_t xid, const void *params, Protocol__ProgranMessage **msg);
|
int enb_agent_mac_handle_stats(mid_t mod_id, const void *params, Protocol__ProgranMessage **msg);
|
||||||
|
|
||||||
int enb_agent_mac_stats_reply(mid_t mod_id, xid_t xid, const report_config_t *report_config, Protocol__ProgranMessage **msg);
|
int enb_agent_mac_stats_reply(mid_t mod_id, xid_t xid, const report_config_t *report_config, Protocol__ProgranMessage **msg);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user