From cd84d27d91dd0d2341faca60d0a5929edc18348e Mon Sep 17 00:00:00 2001 From: sangorrin Date: Sat, 3 May 2008 10:10:17 +0000 Subject: [PATCH] added the SRC param for the fragmentation layer and a INSTALL file git-svn-id: http://www.frescor.org/private/svn/frescor/fna/trunk@1147 35b4ef3e-fd22-0410-ab77-dab3279adceb --- INSTALL | 14 ++++++++++++++ doc/TODO => TODO | 0 src_frescan/TODO | 4 +--- src_frescan/frescan.c | 13 ++++++------- src_frescan/frescan_data.c | 9 +++++++-- src_frescan/frescan_data.h | 4 ++-- tests/tests_frescan/test_frescan_send_basic.c | 4 ++-- .../test_frescan_servers_send_basic.c | 4 ++-- 8 files changed, 34 insertions(+), 18 deletions(-) create mode 100644 INSTALL rename doc/TODO => TODO (100%) diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..ebd0ecb --- /dev/null +++ b/INSTALL @@ -0,0 +1,14 @@ +INSTALL +======= + + +1.- Enable / Disable the FNA modules (RT-EP, FRESCAN, etc..) in the config.mk and in + the fna_configuration.h files + +2.- Compile the FNA library with 'make' + +3.- Build and example from the 'tests/' directory (i.e.: make test_frescan_send_basic.exe) + +4.- Tests using the modules from FRSH distributed interface are located at 'tests/tests_distributed' + in the FRSH module, not in FNA. + diff --git a/doc/TODO b/TODO similarity index 100% rename from doc/TODO rename to TODO diff --git a/src_frescan/TODO b/src_frescan/TODO index cfebaeb..3559dcf 100644 --- a/src_frescan/TODO +++ b/src_frescan/TODO @@ -1,9 +1,7 @@ -- LOCKS to protect the shared structures -- Renegotiate, cancel contract - reserve commit functions - use an internal thread as a bottom half for irq hooks - corrections in fna * CTU corrections * fna_vres_id_t will be frsh_vres_index_T - integrate with frsh_sa scheduling analysis module and spare capacity -- deliverable +- oh, i forgot CAN priorities are assigned inversely!! map them! \ No newline at end of file diff --git a/src_frescan/frescan.c b/src_frescan/frescan.c index 8b0e930..f34af65 100644 --- a/src_frescan/frescan.c +++ b/src_frescan/frescan.c @@ -34,7 +34,6 @@ #include "frescan_debug.h" // DEBUG #include "frescan_id.h" // frescan_id_set_field, frescan_id_get_field #include "frescan_hw_buffer.h" // frescan_hw_buffer_update -#include "frescan_bwres_robjs.h" // frescan_replyobjects_init #include "frescan_packets.h" static int frescan_hook_frame_recv (const struct can_chip_t *chip, @@ -445,9 +444,9 @@ static int frescan_hook_frame_recv (const struct can_chip_t *chip, packet->frame = frame; if (frag_id == FRESCAN_MX_IDS) { - head = the_networks[net].id_fp_queues[prio]; + head = the_networks[net].id_fp_queues[src][prio]; } else { - head = the_networks[net].id_queues[frag_id]; + head = the_networks[net].id_queues[src][frag_id]; } if (head == NULL) { @@ -458,9 +457,9 @@ static int frescan_hook_frame_recv (const struct can_chip_t *chip, INIT_LIST_HEAD(&head->msg_list); if (frag_id == FRESCAN_MX_IDS) { - the_networks[net].id_fp_queues[prio] = head; + the_networks[net].id_fp_queues[src][prio] = head; } else { - the_networks[net].id_queues[frag_id] = head; + the_networks[net].id_queues[src][frag_id] = head; } } @@ -479,9 +478,9 @@ static int frescan_hook_frame_recv (const struct can_chip_t *chip, } if (frag_id == FRESCAN_MX_IDS) { - the_networks[net].id_fp_queues[prio] = NULL; + the_networks[net].id_fp_queues[src][prio] = NULL; } else { - the_networks[net].id_queues[frag_id] = NULL; + the_networks[net].id_queues[src][frag_id] = NULL; } } else { diff --git a/src_frescan/frescan_data.c b/src_frescan/frescan_data.c index cc063d2..d0e0e0d 100644 --- a/src_frescan/frescan_data.c +++ b/src_frescan/frescan_data.c @@ -38,6 +38,7 @@ int frescan_data_init(int fd, frescan_init_params_t *params) { frescan_ss_t id; frescan_prio_t prio; + frescan_node_t src; the_networks[params->net].fd = fd; the_networks[params->net].local_node = params->node; @@ -47,11 +48,15 @@ int frescan_data_init(int fd, frescan_init_params_t *params) FRESCAN_CREATE_LOCK(&the_networks[params->net].lock); for(id=0; idnet].id_queues[id] = NULL; + for(src=0; srcnet].id_queues[src][id] = NULL; + } } for(prio=0; prionet].id_fp_queues[prio] = NULL; + for(src=0; srcnet].id_fp_queues[src][prio] = NULL; + } } return 0; diff --git a/src_frescan/frescan_data.h b/src_frescan/frescan_data.h index 7135432..638eb76 100644 --- a/src_frescan/frescan_data.h +++ b/src_frescan/frescan_data.h @@ -223,8 +223,8 @@ typedef struct { frescan_queues_t queues; frescan_packet_t *last_packet; frescan_prio_t last_packet_prio; - frescan_packet_t *id_queues[FRESCAN_MX_IDS]; // TODO: alloc at init - frescan_packet_t *id_fp_queues[FRESCAN_MX_PRIOS]; // TODO: alloc at init + frescan_packet_t *id_queues[FRESCAN_MX_NODES][FRESCAN_MX_IDS]; // TODO: alloc at init + frescan_packet_t *id_fp_queues[FRESCAN_MX_NODES][FRESCAN_MX_PRIOS]; // TODO: alloc at init frescan_sa_scenario_t scenario; } frescan_network_data_t; diff --git a/tests/tests_frescan/test_frescan_send_basic.c b/tests/tests_frescan/test_frescan_send_basic.c index a858b21..9ea285e 100644 --- a/tests/tests_frescan/test_frescan_send_basic.c +++ b/tests/tests_frescan/test_frescan_send_basic.c @@ -11,7 +11,7 @@ #define NETWORK 0 -// #define SENDER +#define SENDER // #define ENABLE_LOGGING #ifdef SENDER @@ -70,7 +70,7 @@ int main () while(1) { pause(); - for (i=0; i<=0; i++) { + for (i=0; i<=2; i++) { written = snprintf(msg, sizeof(msg), "his number is... %d", i); ret = frescan_send(¶ms, (uint8_t *)msg, written); if (ret != 0) ERROR ("could not send message\n"); diff --git a/tests/tests_frescan/test_frescan_servers_send_basic.c b/tests/tests_frescan/test_frescan_servers_send_basic.c index e5631b4..74dcc4e 100644 --- a/tests/tests_frescan/test_frescan_servers_send_basic.c +++ b/tests/tests_frescan/test_frescan_servers_send_basic.c @@ -12,7 +12,7 @@ #define NETWORK 0 -#define SENDER +// #define SENDER // #define ENABLE_LOGGING #ifdef SENDER @@ -88,7 +88,7 @@ int main () while(1) { pause(); for (i=0; i<=2; i++) { - written = snprintf(msg, sizeof(msg), "his %d", i); + written = snprintf(msg, sizeof(msg), "his number is: %d", i); ret = frescan_send(¶ms, (uint8_t *)msg, written); if (ret != 0) ERROR ("could not send message\n"); printf("SENT: %d\n", i); -- 2.39.2