Added a command line option "-K file_name" to save ITTI logs directly.

Created "RRC_MAC_BCCH_DATA_REQ" message.
Separated L2L1 sub task by eNB/UE to separate messages handling in PDCP and MAC.
Added ITTI messages poll in MAC sub tasks.

pre-ci ok.

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4300 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
winckel
2013-10-30 08:21:23 +00:00
parent 0299db1fe9
commit 5260b60df7
21 changed files with 210 additions and 45 deletions
+39 -3
View File
@@ -100,8 +100,6 @@ typedef struct itti_desc_s {
itti_client_desc_t itti_clients[ITTI_DUMP_MAX_CON];
} itti_desc_t;
static itti_desc_t itti_queue;
/* Message sent is an intertask dump type */
#define ITTI_DUMP_MESSAGE_TYPE 0x1
#define ITTI_STATISTIC_MESSAGE_TYPE 0x2
@@ -127,6 +125,9 @@ typedef struct {
} itti_statistic_message_t;
static itti_desc_t itti_queue;
static FILE *dump_file;
static int itti_dump_send_message(int sd, itti_queue_item_t *message);
static int itti_dump_handle_new_connection(int sd, const char *xml_definition,
uint32_t xml_definition_length);
@@ -271,6 +272,20 @@ int itti_dump_queue_message(message_number_t message_number,
STAILQ_INSERT_TAIL(&itti_queue.itti_message_queue, new, entry);
itti_queue.itti_queue_last = new;
if (dump_file != NULL)
{
itti_socket_header_t header;
header.message_size = sizeof(itti_dump_message_t) + message_size;
header.message_type = ITTI_DUMP_MESSAGE_TYPE;
fwrite (&header, sizeof(itti_socket_header_t), 1, dump_file);
fwrite (&new->message_number, sizeof(new->message_number), 1, dump_file);
fwrite (new->message_name, sizeof(new->message_name), 1, dump_file);
fwrite (&new->data_size, sizeof(new->data_size), 1, dump_file);
fwrite (new->data, new->data_size, 1, dump_file);
}
/* Release the mutex */
pthread_mutex_unlock(&itti_queue.queue_mutex);
@@ -500,10 +515,31 @@ int itti_dump_handle_new_connection(int sd, const char *xml_definition, uint32_t
return 0;
}
int itti_dump_init(const char * const messages_definition_xml)
int itti_dump_init(const char * const messages_definition_xml, const char * const dump_file_name)
{
int i;
if (dump_file_name != NULL)
{
dump_file = fopen(dump_file_name, "w");
if (dump_file == NULL)
{
ITTI_ERROR("can not open dump file \"%s\" (%d:%s)\n", dump_file_name, errno, strerror(errno));
}
else
{
uint32_t message_size = strlen(messages_definition_xml);
itti_socket_header_t header;
header.message_size = sizeof(itti_dump_message_t) + message_size;
header.message_type = ITTI_DUMP_XML_DEFINITION;
fwrite (&header, sizeof(itti_socket_header_t), 1, dump_file);
fwrite (messages_definition_xml, message_size, 1, dump_file);
}
}
memset(&itti_queue, 0, sizeof(itti_desc_t));
pthread_mutex_init(&itti_queue.queue_mutex, NULL);