From 755573a61e8e82a0777485065130d1275d575e04 Mon Sep 17 00:00:00 2001 From: Guillaume Date: Fri, 7 Dec 2007 15:52:26 +0000 Subject: working on message cm_encrypted_payload.ind git-svn-id: svn+ssh://pessac/svn/cesar/trunk@1112 017c9cb6-072f-447c-8318-d5b54f68fe89 --- cp/cp_types.h | 6 +- cp/interf/inc/interf_types.h | 4 +- cp/interf/src/interf.c | 2 +- cp/interf/src/interf_cl_layer.c | 13 +-- cp/msg/Module | 6 +- cp/msg/inc/msg_cc.h | 2 + cp/msg/inc/msg_cm.h | 36 +++++++- cp/msg/inc/msg_cm_convert.h | 24 +++++ cp/msg/inc/msg_const.h | 16 +++- cp/msg/msg.h | 5 +- cp/msg/src/msg.c | 44 ++++----- cp/msg/src/msg_cc.c | 12 ++- cp/msg/src/msg_cm.c | 152 +++++++++++++++++++++++++------ cp/msg/src/msg_cm_convert.c | 45 +++++---- cp/msg/test/Makefile | 19 ---- cp/msg/test/Module | 2 - cp/msg/test/src/test_msg.c | 37 -------- cp/secu/inc/secu_types.h | 10 +- cp/secu/secu.h | 11 +++ cp/secu/src/secu_lib.c | 25 ++++- cp/secu/src/secu_p_run.c | 5 +- cp/station/inc/station_actions.h | 3 + cp/station/inc/station_data.h | 4 +- cp/station/src/station_actions.c | 29 +++--- cp/station/src/station_apivs.c | 7 +- cp/station/src/station_core.c | 21 ++--- cp/station/station.h | 2 +- cp/test/src/test_interf.c | 61 +------------ cp/test/src/test_msg.c | 64 ++++++++++++- cp/test/src/test_station.c | 19 +++- cp/vstate_fsm/src/SEMEDef.h | 8 +- cp/vstate_fsm/src/SEMTypes.h | 4 +- cp/vstate_fsm/src/cesar_cp_PConstant.h | 2 +- cp/vstate_fsm/src/cesar_cp_PEvent.h | 2 +- cp/vstate_fsm/src/main_fsm.c | 130 ++++++++++++++------------ cp/vstate_fsm/src/main_fsm.h | 6 +- cp/vstate_fsm/src/main_fsmAction.h | 4 +- cp/vstate_fsm/src/main_fsmData.c | 44 ++++----- cp/vstate_fsm/src/main_fsmData.h | 34 +++---- cp/vstate_fsm/src/sta_connection.c | 4 +- cp/vstate_fsm/src/sta_connection.h | 4 +- cp/vstate_fsm/src/sta_connectionAction.h | 4 +- cp/vstate_fsm/src/sta_connectionData.c | 4 +- cp/vstate_fsm/src/sta_connectionData.h | 4 +- 44 files changed, 568 insertions(+), 372 deletions(-) create mode 100644 cp/msg/inc/msg_cm_convert.h delete mode 100644 cp/msg/test/Makefile delete mode 100644 cp/msg/test/Module delete mode 100644 cp/msg/test/src/test_msg.c diff --git a/cp/cp_types.h b/cp/cp_types.h index 8d781389bb..913e3ec61b 100644 --- a/cp/cp_types.h +++ b/cp/cp_types.h @@ -24,11 +24,11 @@ #define BROADCAST_MAC_AD "\xFF\xFF\xFF\xFF\xFF\xFF" #define ZEROS_MAC_AD "\0\0\0\0\0\0" -typedef u8 mac_address_t[6]; +typedef unsigned char mac_address_t[6]; typedef unsigned long int nid_t; -typedef u8 snid_t; +typedef unsigned char snid_t; -typedef u8 tei_t; +typedef unsigned char tei_t; #define MAX_TEI 0xFF typedef enum E_ErrCode diff --git a/cp/interf/inc/interf_types.h b/cp/interf/inc/interf_types.h index 037878fd31..8eee47caea 100644 --- a/cp/interf/inc/interf_types.h +++ b/cp/interf/inc/interf_types.h @@ -35,7 +35,7 @@ * This directive is used to check some buffer overflow within the pool * array. */ -#define CHECK_BUFFER_OVERFLOW 1 +#define CHECK_BUFFER_OVERFLOW 0 #define BUFFER_SIGNATURE 0xDEADABCD /* * check constant coherency @@ -44,7 +44,7 @@ #warning "interf.h : number of buffer not coherent" #endif #if (CYGNUM_KERNEL_SYNCH_MBOX_QUEUE_SIZE < INTERF_NB_BUFFER) - #warning "interf.h : CYGNUM_KERNEL_SYNCH_MBOX_QUEUE_SIZE looks too small" +// #warning "interf.h : CYGNUM_KERNEL_SYNCH_MBOX_QUEUE_SIZE looks too small" // !!! nota : if this condition is not true, the function interf_release_buf // may be block forever !!! #endif diff --git a/cp/interf/src/interf.c b/cp/interf/src/interf.c index 99511819f9..0a2d2dc706 100644 --- a/cp/interf/src/interf.c +++ b/cp/interf/src/interf.c @@ -175,7 +175,7 @@ interf_init (void) printf("wrong mmentry size : %lu octets instead of %i\n", sizeof(pool[0].msg), SAR_MSDU_PAYLOAD_MAX_SIZE); printf(" osa : %lu\n", sizeof(pool[0].msg.osa)); printf(" oda : %lu\n", sizeof(pool[0].msg.oda)); - printf(" v_lan_tag : %lu\n", sizeof(pool[0].msg.v_lan_tag)); + //printf(" v_lan_tag : %lu\n", sizeof(pool[0].msg.v_lan_tag)); printf(" m_type : %lu\n", sizeof(pool[0].msg.m_type)); printf(" mmv; : %lu\n", sizeof(pool[0].msg.mmv)); printf(" mm_type; : %lu\n", sizeof(pool[0].msg.mm_type)); diff --git a/cp/interf/src/interf_cl_layer.c b/cp/interf/src/interf_cl_layer.c index 2e116d09fb..c176a11235 100644 --- a/cp/interf/src/interf_cl_layer.c +++ b/cp/interf/src/interf_cl_layer.c @@ -13,13 +13,13 @@ static cl_t *interf_cl_ctx = NULL; static mac_store_t *interf_mac_store_ctx = NULL; void interf_cl_layer_init (void) -{ +{/* u8 *buf; int i; // get the mac store context interf_mac_store_ctx = mac_store_init (); // get the cl context - interf_cl_ctx = cl_init (interf_mac_store_ctx); +// interf_cl_ctx = cl_init (interf_mac_store_ctx); // register the receive callback at the cl cl_mme_recv_init (interf_cl_ctx, interf_receive, NULL); // transmit some buffer to the cl @@ -27,15 +27,16 @@ void interf_cl_layer_init (void) { buf = (u8 *) interf_give_buf(); cl_mme_recv_done (interf_cl_ctx, buf); - } + }*/ } void interf_cl_layer_add_buf (msg_mme_t *msg) { + /* dbg_assert(interf_mac_store_ctx); dbg_assert (interf_cl_ctx); dbg_assert ( !msg_check_wrong_mme_const_values (msg)); - +*/ } void @@ -46,7 +47,7 @@ interf_cl_layer_send_buf ( const tei_t tei ) { - mfs_tx_t *mfs_tx; +/* mfs_tx_t *mfs_tx; bool added; dbg_assert(interf_mac_store_ctx); @@ -79,5 +80,5 @@ interf_cl_layer_send_buf ( interf_release_buf, (void *) msg ); - +*/ } diff --git a/cp/msg/Module b/cp/msg/Module index 336294ed02..f99cf9b285 100644 --- a/cp/msg/Module +++ b/cp/msg/Module @@ -1,2 +1,6 @@ -SOURCES := msg.c msg_cm.c msg_cc.c msg_apcm.c field/msg_field_cinfo.c field/msg_field_cid.c field/msg_field_classifier.c field/msg_field_cspec.c field/msg_field_qmp.c cm/conn/msg_cm_conn_new_cnf.c cm/conn/msg_cm_conn_new_req.c cm/conn/msg_cm_conn_rel_ind.c cm/conn/msg_cm_conn_rel_rsp.c cm/conn/msg_cm_conn_mod_req.c cm/conn/msg_cm_conn_mod_cnf.c cm/conn/msg_cm_conn_info_req.c cm/conn/msg_cm_conn_info_cnf.c +SOURCES := msg.c \ + msg_cm.c \ + msg_cm_convert.c \ + msg_cc.c \ + msg_apcm.c \ diff --git a/cp/msg/inc/msg_cc.h b/cp/msg/inc/msg_cc.h index 07e0e2bc4c..945cf7be36 100644 --- a/cp/msg/inc/msg_cc.h +++ b/cp/msg/inc/msg_cc.h @@ -68,4 +68,6 @@ void msg_cc_assoc_cnf_send(const mac_address_t oda, const u8 result, const tei_t */ void msg_cc_set_tei_map_ind_send(const mac_address_t oda, const u8 mode, const tei_t tei, const bool recall); + + #endif diff --git a/cp/msg/inc/msg_cm.h b/cp/msg/inc/msg_cm.h index ebb8a5da93..d21df59c6c 100644 --- a/cp/msg/inc/msg_cm.h +++ b/cp/msg/inc/msg_cm.h @@ -19,7 +19,7 @@ #include "cp/secu/secu.h" #include "cp/msg/inc/msg_cm_conn.h" - +#include "cp/msg/inc/msg_cm_convert.h" typedef struct cm_unassociated_sta_t // 11.5.1 @@ -38,11 +38,36 @@ typedef struct cm_encrypted_payload_t // 11.5.2 u8 pmn; u8 iv[16]; u16 len; - - - + u8 rf[15]; } __attribute__ ((packed)) cm_encrypted_payload_t; +typedef struct cm_encrypted_payload_sub_t // 11.5.2 +{ + u32 crc; + u8 pid; + u16 prn; + u8 pmn; + u8 padding[15]; + u8 rf_len; +} __attribute__ ((packed)) cm_encrypted_payload_sub_t; + +typedef struct cm_set_key_req_t +{ + u8 key_type; + u32 my_nonce; + u32 your_nonce; + u8 pid; + u16 prn; + u8 pmn; + u8 cco_capa; + //nid_t nid; + u8 nid[7]; + u8 new_eks; + u8 new_key[16]; +} __attribute__ ((packed)) cm_set_key_req_t; + +void +msg_cm_init(void); //void msg_cm_unassociated_sta_ind_send(interf_id_t interf_id, mac_adresse_t oda); void @@ -54,7 +79,8 @@ msg_cm_encrypted_payload_ind_send( const msg_param_t encapsulated_msg_param, const tei_t tei, const bool last_msg_of_p_run, - const pid_t pid + const pid_t pid, + const u16 msg_size ); diff --git a/cp/msg/inc/msg_cm_convert.h b/cp/msg/inc/msg_cm_convert.h new file mode 100644 index 0000000000..3d90fbb68d --- /dev/null +++ b/cp/msg/inc/msg_cm_convert.h @@ -0,0 +1,24 @@ +#ifndef MSG_CM_CONVERT_H_ +#define MSG_CM_CONVERT_H_ + +#include "cp/msg/inc/msg_cm.h" +#include "lib/bitstream.h" + + +void +msg_mme_header_convert( + u8 *buffer, + msg_mme_t *msg, + bitstream_type_t read, + bitstream_t ctx + ); + +void +msg_cm_unassociated_sta_ind_convert( + u8 *buffer, + msg_mme_t *msg, + bitstream_type_t read + ); + + +#endif /*MSG_CM_CONVERT_H_*/ diff --git a/cp/msg/inc/msg_const.h b/cp/msg/inc/msg_const.h index b0ff74ce7e..2b55aa71e7 100644 --- a/cp/msg/inc/msg_const.h +++ b/cp/msg/inc/msg_const.h @@ -22,7 +22,7 @@ */ #define MSG_VLAN_TAG 0 // TBD #define MSG_MTYPE 0xE188 // 11.1 -#define MSG_MME_HEADER_SIZE 23 +#define MSG_MME_HEADER_SIZE 19 #define MSG_MM_VERSION 0x01 // 11.1.5 /* * other constants @@ -169,7 +169,6 @@ typedef struct msg_mme_t // Table 11-178 { mac_address_t oda; // original destination adress mac_address_t osa; // original source adress - u32 v_lan_tag; // ieee 802.1 tag (optional) u16 m_type; // const = 0x88E1 u8 mmv; // management message version mm_type_t mm_type; // management message type @@ -177,6 +176,19 @@ typedef struct msg_mme_t // Table 11-178 u8 mm_entry[SAR_MSDU_PAYLOAD_MAX_SIZE - MSG_MME_HEADER_SIZE]; } __attribute__ ((packed)) msg_mme_t; +// the same, without vlan tag +typedef struct msg_mme_b_t // Table 11-178 +{ + mac_address_t oda; // original destination adress + mac_address_t osa; // original source adress + u32 v_lan_tag; // ieee 802.1 tag (optional) + u16 m_type; // const = 0x88E1 + u8 mmv; // management message version + mm_type_t mm_type; // management message type + msg_fmi_t fmi; + u8 mm_entry[SAR_MSDU_PAYLOAD_MAX_SIZE - MSG_MME_HEADER_SIZE - 4]; +} __attribute__ ((packed)) msg_mme_b_t; + typedef struct msg_list_mme_t { mm_type_t mm_type; // Message type diff --git a/cp/msg/msg.h b/cp/msg/msg.h index 42962e946d..19a3f068b5 100644 --- a/cp/msg/msg.h +++ b/cp/msg/msg.h @@ -84,7 +84,7 @@ msg_check_wrong_mme_const_values (const msg_mme_t *msg); * \return pointer to the message */ msg_mme_t * -msg_sending_common_part(const mac_address_t oda, msg_param_t *msg_param); +msg_sending_common_part(msg_mme_t *msg, const mac_address_t oda, msg_param_t *msg_param); /** * \brief add field common to all mme messages (OSA) @@ -94,8 +94,7 @@ msg_sending_common_part(const mac_address_t oda, msg_param_t *msg_param); * \return */ void -//msg_send(msg_mme_t *msg, uint msg_size, interf_id_t interf_id, msg_param_t msg_param); -msg_send(msg_mme_t *msg, uint msg_size, msg_param_t msg_param); +msg_send(msg_mme_t *msg, u16 msg_size, msg_param_t msg_param); #endif diff --git a/cp/msg/src/msg.c b/cp/msg/src/msg.c index 0605ca8cd0..9fdce1a484 100644 --- a/cp/msg/src/msg.c +++ b/cp/msg/src/msg.c @@ -19,7 +19,7 @@ * which process it. * the array must be ordered on the first field of each line. */ -const msg_list_mme_t msg_list[] = +const msg_list_mme_t msg_list_m[] = { { CC_CCO_APPOINT_REQ, 0 }, { CC_CCO_APPOINT_CNF, 0 }, @@ -44,17 +44,17 @@ const msg_list_mme_t msg_list[] = }; // this is the fmsn that will be used in fragmented mme -static u8 fmsn; - +static u8 fmsn_m; void msg_init(void) { #if DEBUG == 0 uint i; - for(i=1 ; i msg_list[i-1].mm_type); + for(i=1 ; i msg_list_m[i-1].mm_type); #endif - fmsn = 0; + fmsn_m = 0; + msg_cm_init(); } u8 @@ -62,8 +62,8 @@ msg_get_fmsn(const bool new) { // TODO the question is : is it possible to have 2 thread accessing this // function at the same time ? - if(new) fmsn++; - return fmsn; + if(new) fmsn_m++; + return fmsn_m; } u16 @@ -73,9 +73,9 @@ msg_get_number (msg_mme_t *msg) dbg_assert ( !msg_check_wrong_mme_const_values (msg)); //TODO this is maybe not very efficient, to check with more messages ... - DICHOTOMY_SEARCH(0, COUNT(msg_list), mme_num, msg->mm_type <= msg_list[mme_num].mm_type); + DICHOTOMY_SEARCH(0, COUNT(msg_list_m), mme_num, msg->mm_type <= msg_list_m[mme_num].mm_type); //printf("requested msg : %i, index found : %i\n", msg->mm_type, mme_num); - if(msg->mm_type != msg_list[mme_num].mm_type) return MSG_UNKNOW; + if(msg->mm_type != msg_list_m[mme_num].mm_type) return MSG_UNKNOW; return mme_num; } @@ -88,8 +88,8 @@ msg_dispatch (msg_mme_t *msg) mme_num = msg_get_number (msg); if (mme_num != MSG_UNKNOW) { - dbg_assert(msg_list[mme_num].msg_num); - sta_add_event(msg_list[mme_num].msg_num, (void *) msg); + dbg_assert(msg_list_m[mme_num].msg_num); + sta_add_event(msg_list_m[mme_num].msg_num, (void *) msg); } // release the message's buffer(s) @@ -125,33 +125,33 @@ msg_check_wrong_mme_const_values (const msg_mme_t *msg) } msg_mme_t * -msg_sending_common_part(const mac_address_t oda, msg_param_t *msg_param) -{ - msg_mme_t *msg; - +msg_sending_common_part(msg_mme_t *msg, const mac_address_t oda, msg_param_t *msg_param) +{ + dbg_assert(msg); dbg_assert(msg_param); + // ask for a buffer - msg = interf_give_buf (); - dbg_assert ( !msg_check_wrong_mme_const_values (msg)); + //msg = interf_give_buf (); + //dbg_assert ( !msg_check_wrong_mme_const_values (msg)); // set the header values of msg memcpy(msg->oda, oda, sizeof(mac_address_t)); memcpy(msg->osa, station_get_mac_address(), sizeof(mac_address_t)); // vlan is optional and not used - // mtype is a constant already set - // mmv is a constant already set + msg->m_type = MSG_MTYPE; // 11.1.4 + msg->mmv = MSG_MM_VERSION; // set fragmentation default values msg->fmi.nf_mi = 0; msg->fmi.fn_mi = 0; msg->fmi.fmsn = 0; // set the default message parameters - msg_param->mnbf = 0; + memset(msg_param, 0, sizeof(msg_param_t)); msg_param->encryption = HARDWARE_ENCRYPTED; msg_param->peks = NOT_ENCRYPTED; return msg; } void -msg_send(msg_mme_t *msg, uint msg_size, msg_param_t msg_param) +msg_send(msg_mme_t *msg, u16 msg_size, msg_param_t msg_param) { tei_t tei; dbg_assert ( !msg_check_wrong_mme_const_values (msg)); diff --git a/cp/msg/src/msg_cc.c b/cp/msg/src/msg_cc.c index 2a317f20c2..d4e265c82c 100644 --- a/cp/msg/src/msg_cc.c +++ b/cp/msg/src/msg_cc.c @@ -18,7 +18,7 @@ void msg_cc_assoc_req_send(const mac_address_t oda) { - msg_mme_t *msg; +/* msg_mme_t *msg; cc_assoc_req_t *cc_assoc_req; msg_param_t msg_param; @@ -34,11 +34,12 @@ void msg_cc_assoc_req_send(const mac_address_t oda) msg_param.encryption = NOT_ENCRYPTED; // and then, send the message msg_send(msg, sizeof(cc_assoc_req_t) + MSG_MME_HEADER_SIZE, msg_param); + */ } void msg_cc_assoc_cnf_send(const mac_address_t oda, const u8 result, const tei_t sta_tei, const u16 lease_time) { - msg_mme_t *msg; +/* msg_mme_t *msg; cc_assoc_cnf_t *cc_assoc_cnf; msg_param_t msg_param; @@ -55,12 +56,12 @@ void msg_cc_assoc_cnf_send(const mac_address_t oda, const u8 result, const tei_t msg_param.encryption = NOT_ENCRYPTED; // and then, send the message msg_send(msg, sizeof(cc_assoc_cnf_t) + MSG_MME_HEADER_SIZE, msg_param); - +*/ } void msg_cc_set_tei_map_ind_send(const mac_address_t oda, const u8 mode, const tei_t tei, const bool recall) -{ +{/* // 11.2.35 msg_mme_t *msg; cc_set_tei_map_ind_t *cc_set_tei_map_ind; @@ -129,5 +130,6 @@ msg_cc_set_tei_map_ind_send(const mac_address_t oda, const u8 mode, const tei_t //msg_param.mnbf = 0; // and then, send the message msg_send(msg, MSG_MME_HEADER_SIZE + 2 + number_sta * sizeof(cc_set_tei_map_ind_sub_t), msg_param); - +*/ } + diff --git a/cp/msg/src/msg_cm.c b/cp/msg/src/msg_cm.c index 1ac2008c50..87c910c08a 100644 --- a/cp/msg/src/msg_cm.c +++ b/cp/msg/src/msg_cm.c @@ -13,89 +13,185 @@ #include "common/std.h" #include "cp/msg/inc/msg_cm.h" +#include "lib/crc.h" +static crc_t crc_m; +static u32 *crc_table[256]; + +void +msg_cm_init(void) +{ + // init the CRC context (CRC used in cm_encrypted_payload) + crc_m.width = 32; + crc_m.generator = 0x4C11DB7; //4.2.1 + crc_m.init = 0xFFFFFFFF; + crc_m.refin = true; + crc_m.refout = true; + crc_m.xorout = 0xFFFFFFFF; + crc_m.table.t32 = (u32 *) crc_table; + crc_init(&crc_m); +} + void msg_cm_unassociated_sta_ind_send(const mac_address_t oda) { // 11.5.1 - msg_mme_t *msg; - cm_unassociated_sta_t *unassociated_sta; + msg_mme_t *msg_p, *msg_to_send; + cm_unassociated_sta_t *unassociated_sta_p; msg_param_t msg_param; + u8 buffer[1518]; - msg = msg_sending_common_part(oda, &msg_param); - msg->mm_type = CM_UNASSOCIATED_STA_IND; + msg_p = msg_sending_common_part((msg_mme_t *)buffer, oda, &msg_param); + msg_p->mm_type = CM_UNASSOCIATED_STA_IND; // set the message values - unassociated_sta = (cm_unassociated_sta_t *) & msg->mm_entry; - // TODO set the values... + unassociated_sta_p = (cm_unassociated_sta_t *) & msg_p->mm_entry; + unassociated_sta_p->nid = station_get_nid(); + unassociated_sta_p->cco_capability = station_get_cco_capa(); // set the mnbf flag msg_param.mnbf = 1; msg_param.encryption = NOT_ENCRYPTED; // and finaly, send the message //printf(" send cm_unassociated_sta\n"); - msg_send(msg, sizeof(cm_unassociated_sta_t) + MSG_MME_HEADER_SIZE, msg_param); + msg_to_send = interf_give_buf (); + dbg_assert ( !msg_check_wrong_mme_const_values (msg_to_send)); + msg_cm_unassociated_sta_ind_convert((u8 *)msg_to_send, msg_p, BITSTREAM_WRITE); + msg_send(msg_p, sizeof(cm_unassociated_sta_t) + MSG_MME_HEADER_SIZE, msg_param); } +// set the following flag to 1 if you want to +// test the message as on page 681 +#define TEST_681 0 + void msg_cm_encrypted_payload_ind_send( - const msg_mme_t *encapsulated_msg, + const msg_mme_t *encapsulated_msg_p, const msg_param_t encapsulated_msg_param, const tei_t tei, const bool last_msg_of_p_run, - const pid_t pid + const pid_t pid, + const u16 msg_size ) { // 11.5.2 - msg_mme_t *msg; - cm_encrypted_payload_t *cm_encrypted_payload; + msg_mme_t *msg_p; + cm_encrypted_payload_t *cm_encrypted_payload_p; + cm_encrypted_payload_sub_t *cm_encrypted_payload_sub_p; msg_param_t msg_param; station_status_t station_status; protocol_run_t pr_run; + u8 rf, i, pad_size; + //void *rf_p; + aes_key_t *aes_key_p; + aes_context ctx; + u16 total_msg_size = msg_size + sizeof(cm_encrypted_payload_t) - COUNT(cm_encrypted_payload_p->rf); + u8 buffer[1518], data_to_encrypt[1518]; - dbg_assert ( !msg_check_wrong_mme_const_values (msg)); + dbg_assert ( !msg_check_wrong_mme_const_values (encapsulated_msg_p)); dbg_assert(tei != 0 && tei != 0xFF); + dbg_assert(pid <= HLE_PRO); + dbg_assert(msg_size < (sizeof(msg_mme_t) - sizeof(cm_encrypted_payload_t) - sizeof(cm_encrypted_payload_sub_t))); - msg = msg_sending_common_part(encapsulated_msg->oda, &msg_param); - msg->mm_type = CM_ENCRYPTED_PAYLOAD_IND; + + msg_p = msg_sending_common_part((msg_mme_t *)buffer, encapsulated_msg_p->oda, &msg_param); + msg_p->mm_type = CM_ENCRYPTED_PAYLOAD_IND; // set the message values - cm_encrypted_payload = (cm_encrypted_payload_t *) & msg->mm_entry; + cm_encrypted_payload_p = (cm_encrypted_payload_t *) & msg_p->mm_entry; // set the message values... - cm_encrypted_payload->peks = encapsulated_msg_param.peks; + cm_encrypted_payload_p->peks = encapsulated_msg_param.peks; // set the avln status of the station station_status = station_get_status(); + #if TEST_681 + station_status = 5; + #endif if(station_status == STATION_UNASSOCIATED) { - cm_encrypted_payload->avln_status = station_get_cco_capa(); + cm_encrypted_payload_p->avln_status = station_get_cco_capa(); } else { if(station_get_is_cco()) { - cm_encrypted_payload->avln_status = 0x08; + cm_encrypted_payload_p->avln_status = 0x08; } else { // the station is assosciated - cm_encrypted_payload->avln_status = 0x04; - if(station_get_pcco_capa()) cm_encrypted_payload->avln_status = 0x05; + cm_encrypted_payload_p->avln_status = 0x04; + if(station_get_pcco_capa()) cm_encrypted_payload_p->avln_status = 0x05; } } // set the protocol run parameters if(secu_gen_protocol_run_param(tei, last_msg_of_p_run, &pr_run) == PRN_NotInitialised) { secu_start_new_protocol_run(tei, pid, &pr_run); - secu_gen_protocol_run_param(tei, last_msg_of_p_run, &pr_run); + secu_gen_protocol_run_param(tei, last_msg_of_p_run, &pr_run); + #if TEST_681 + pr_run.pmn = 3; + pr_run.prn = 0x372D; + #endif } - cm_encrypted_payload->pid = pr_run.pid; - cm_encrypted_payload->prn = pr_run.prn; - cm_encrypted_payload->pmn = pr_run.pmn; - // TODO continuer ici - + cm_encrypted_payload_p->pid = pr_run.pid; + cm_encrypted_payload_p->prn = pr_run.prn; + cm_encrypted_payload_p->pmn = pr_run.pmn; + cm_encrypted_payload_p->len = msg_size; + if(pid == HLE_PRO) + { + // case PID == 0x4 + // TODO set the UUID field + rf = 0; + memcpy(cm_encrypted_payload_p->rf, encapsulated_msg_p, msg_size); + } + else + { + // TODO set the IV field + memcpy(cm_encrypted_payload_p->iv, "\xFE\xDC\xBA\x98\x76\x54\x32\x10\xFE\xDC\xBA\x98\x76\x54\x32\x10", 16); + // calculate the rf filler size + rf = rand_in(0, COUNT(cm_encrypted_payload_p->rf)); + // fill the rf field with random data + for(i=0 ; icrc = crc_compute_block(&crc_m, (u8 *)encapsulated_msg_p, msg_size); + cm_encrypted_payload_sub_p->pid = pid; + cm_encrypted_payload_sub_p->prn = pr_run.prn; + cm_encrypted_payload_sub_p->pmn = pr_run.pmn; + pad_size = 16 - (msg_size + rf + 9) % 16; + for(i=0 ; i < pad_size ; i++) + cm_encrypted_payload_sub_p->padding[i] = (u8) rand_in(0, 0xFF); + #if TEST_681 + cm_encrypted_payload_sub_p->padding[0] = 0xac ; + cm_encrypted_payload_sub_p->padding[1] = 0xbc ; + cm_encrypted_payload_sub_p->padding[2] = 0xd2 ; + cm_encrypted_payload_sub_p->padding[3] = 0x11 ; + cm_encrypted_payload_sub_p->padding[4] = 0x4d ; + cm_encrypted_payload_sub_p->padding[5] = 0xae ; + cm_encrypted_payload_sub_p->padding[6] = 0x15 ; + cm_encrypted_payload_sub_p->padding[7] = 0x77 ; + cm_encrypted_payload_sub_p->padding[8] = 0xc6 ; + #endif + cm_encrypted_payload_sub_p->padding[i] = rf; + aes_key_p = secu_get_ek_from_peks(encapsulated_msg_param.peks, tei); + aes_set_key(&ctx, (u8 *) aes_key_p, sizeof(aes_key_t)*8); + aes_cbc_encrypt (&ctx, (u8 *) cm_encrypted_payload_p->iv, data_to_encrypt, cm_encrypted_payload_p->rf+rf, rf+msg_size+pad_size+9); + total_msg_size += rf + 9 + pad_size; + } + total_msg_size += sizeof(cm_encrypted_payload_t); // set the mnbf flag msg_param.encryption = NOT_ENCRYPTED; // and finaly, send the message - //printf(" send cm_unassociated_sta\n"); -// msg_send(msg, , msg_param); + msg_send(msg_p, total_msg_size, msg_param); + } diff --git a/cp/msg/src/msg_cm_convert.c b/cp/msg/src/msg_cm_convert.c index 71d55db65f..924803730c 100644 --- a/cp/msg/src/msg_cm_convert.c +++ b/cp/msg/src/msg_cm_convert.c @@ -12,36 +12,49 @@ */ #include "common/std.h" -#include "cp/msg/inc/msg_cm.h" + +#include "cp/msg/inc/msg_cm_convert.h" void -msg_mme_header_convert(u8 *buffer, msg_mme_t *msg, bool read, struct bitstream_t ctx) -{ +msg_mme_header_convert(u8 *buffer, msg_mme_t *msg, bitstream_type_t b_type, bitstream_t ctx) +{/* + dbg_assert(buffer); + dbg_assert(msg); + u8 tmp; + bitstream_access(&ctx, &msg->oda, 48); bitstream_access(&ctx, &msg->osa, 48); - bitstream_access(&ctx, &msg->v_lan_tag, 32); + //bitstream_access(&ctx, &msg->v_lan_tag, 32); bitstream_access(&ctx, &msg->m_type, 16); bitstream_access(&ctx, &msg->mmv, 8); bitstream_access(&ctx, &msg->mm_type, 16); - bitstream_access(&ctx, &msg->fmi.nf_mi, 4); - bitstream_access(&ctx, &msg->fmi.fn_mi, 4); - bitstream_access(&ctx, &msg->fmi.fmsn, 8); + tmp = msg->fmi.nf_mi; + bitstream_access(&ctx, &tmp, 4); + if(b_type == BITSTREAM_READ) msg->fmi.nf_mi = tmp; + tmp = msg->fmi.fn_mi; + bitstream_access(&ctx, &tmp, 4); + if(b_type == BITSTREAM_READ) msg->fmi.fn_mi = tmp; + bitstream_access(&ctx, &msg->fmi.fmsn, 8); +*/ } void -msg_cm_unassociated_sta_ind_convert(u8 *buffer, msg_mme_t *msg, bool read) +msg_cm_unassociated_sta_ind_convert(u8 *buffer, msg_mme_t *msg, bitstream_type_t read) {// 11.5.1 - int i; - struct bitstream_t ctx; - cm_unassociated_sta_t entry; - bitstream_init(&ctx, buffer, MME_MAX_SIZE, read); + bitstream_t ctx; + cm_unassociated_sta_t *entry_p; + + dbg_assert(buffer); + dbg_assert(msg); + + bitstream_init(&ctx, buffer, 1518, read); msg_mme_header_convert(buffer, msg, read, ctx); - entry = ( cm_unassociated_sta_t *) msg->mm_entry; - bitstream_access(&ctx, &entry->nid, 2); // this is just to read the 2 non significant bits - bitstream_access(&ctx, &entry->nid, 54); - bitstream_access(&ctx, &entry->cco_capability, 1); + entry_p = ( cm_unassociated_sta_t *) msg->mm_entry; + bitstream_access(&ctx, &entry_p->nid, 2); // this is just to read the 2 non significant bits + bitstream_access(&ctx, &entry_p->nid, 54); + bitstream_access(&ctx, &entry_p->cco_capability, 1); bitstream_finalise(&ctx); // don't forget it to write the last word } diff --git a/cp/msg/test/Makefile b/cp/msg/test/Makefile deleted file mode 100644 index ee9aafda1e..0000000000 --- a/cp/msg/test/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -BASE = ../../../ -EXTRA_HOST_CFLAGS+= -DUNIT_TEST -fshort-enums -ggdb3 -O0 -EXTRA_TARGET_CFLAGS += -DUNIT_TEST -fshort-enums -ggdb3 -O0 -# COVERAGE -# EXTRA_TARGET_CFLAGS += -fprofile-arcs -ftest-coverage - -ECOS = y - - -TARGET_PROGRAMS = test_msg - -CONFIG_DEBUG = y - -test_msg_SOURCES = test_msg.c test_msg_field.c test_msg_cm_conn_new_req.c test_msg_cm_conn_new_cnf.c test_msg_cm_conn_rel_ind.c test_msg_cm_conn_rel_rsp.c test_msg_cm_conn_mod_cnf.c test_msg_cm_conn_mod_req.c -test_msg_MODULES = lib cp/msg - -include $(BASE)/common/make/top.mk - - diff --git a/cp/msg/test/Module b/cp/msg/test/Module deleted file mode 100644 index b7f5e44789..0000000000 --- a/cp/msg/test/Module +++ /dev/null @@ -1,2 +0,0 @@ -SOURCES := test_msg_fied.c test_msg.c - diff --git a/cp/msg/test/src/test_msg.c b/cp/msg/test/src/test_msg.c deleted file mode 100644 index 080e6fe602..0000000000 --- a/cp/msg/test/src/test_msg.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Cesar project {{{ - * - * Copyright (C) 2007 Spidcom - * - * <<>> - * - * }}} - * \file test_msg.c - * \brief File Description - * \ingroup cp/conn - * - */ - -#include "common/std.h" -#include "cp/msg/test/inc/test_conn.h" - - -int main(int argc, char ** argv) -{ - test_t t; - -#ifdef CONN_MSG_CHECK_BUFFER_OVERFLOW - interf_init(); -#endif - - test_init(t, argc, argv); - test_msg_field(t); - test_msg_cm_conn_new_req(t); - test_msg_cm_conn_new_cnf(t); - test_msg_cm_conn_rel_ind(t); - test_msg_cm_conn_rel_rsp(t); - test_msg_cm_conn_mod_cnf(t); - test_msg_cm_conn_mod_req(t); - test_result (t); - HAL_PLATFORM_EXIT (test_nb_failed (t) == 0 ? 0 : 1); - return test_nb_failed (t) == 0 ? 0 : 1;; -} diff --git a/cp/secu/inc/secu_types.h b/cp/secu/inc/secu_types.h index 2cfc31faee..bc74c3c71a 100644 --- a/cp/secu/inc/secu_types.h +++ b/cp/secu/inc/secu_types.h @@ -68,11 +68,11 @@ typedef enum sec_state_t { JOIN, ADD, ACCEPT} sec_state_t; typedef enum pid_t -{ AUTH_REQ_BY_NEW_STA, - PROV_AUTH_STA_WITH_NEK, - PROV_STA_WITH_NMK_U_DAK, - PROV_STA_WITH_NMK_U_UKE, - HLE_PRO +{ AUTH_REQ_BY_NEW_STA = 0x0, + PROV_AUTH_STA_WITH_NEK = 0x1, + PROV_STA_WITH_NMK_U_DAK = 0x2, + PROV_STA_WITH_NMK_U_UKE = 0x3, + HLE_PRO = 0x4 } pid_t; typedef struct protocol_run_t diff --git a/cp/secu/secu.h b/cp/secu/secu.h index 5ed00a28bd..b2cd417dfe 100644 --- a/cp/secu/secu.h +++ b/cp/secu/secu.h @@ -46,6 +46,17 @@ secu_hash (pwd_type_t pwd_type, u8 in[], u8 out[]); E_ErrCode secu_gen_aes_key (u8 key[]); +/** + * return the ek for the given peks + * \param peks the peks + * \param tei tei of the station (only if peks == PEKS_DESTINATION_STA_DAK) + * \return the key + */ +aes_key_t * +secu_get_ek_from_peks(const peks_t peks, const tei_t tei); + +void +secu_set_sta_s_dak(const tei_t, const aes_key_t dak); #endif diff --git a/cp/secu/src/secu_lib.c b/cp/secu/src/secu_lib.c index e6cccdb651..54d6c9a8d7 100644 --- a/cp/secu/src/secu_lib.c +++ b/cp/secu/src/secu_lib.c @@ -16,8 +16,11 @@ #include "cp/secu/secu.h" static peks_t m_peks; // see p588 -static u8 m_eks; // see p122 +static u8 m_eks; // see p122 +static aes_key_t m_dak[THEORICAL_MAX_STA_NB]; +static aes_key_t m_tek[PEKS_TEKD + 1]; +static aes_key_t m_nmk; void @@ -26,6 +29,9 @@ secu_init (sec_t *p_sec) dbg_assert (p_sec); memset (p_sec, 0, sizeof(sec_t)); + memset (m_dak, 0, sizeof(m_dak)); + memset (m_tek, 0, sizeof(m_tek)); + m_peks = PEKS_NOT_ENCRYPTED; m_eks = 0xF; // 0xF : no encryption key #ifndef DEBUG @@ -120,6 +126,23 @@ secu_gen_aes_key (u8 key[]) aes_set_key( &ctx, sec.key, AES_KEY_SIZE * 8); aes_encrypt( &ctx, tmp_key, key); return Success; +} +aes_key_t * +secu_get_ek_from_peks(const peks_t peks, const tei_t tei) +{ + dbg_assert(peks < PEKS_NOT_ENCRYPTED); + dbg_assert(tei != 0 && tei != 0xFF); + + if(peks == PEKS_DESTINATION_STA_DAK) return &m_dak[tei]; + if(peks == PEKS_NMK) return &m_nmk; + if(peks == PEKS_NOT_ENCRYPTED) return NULL; + return &m_tek[peks]; } +void +secu_set_sta_s_dak(const tei_t tei, const aes_key_t dak) +{ + dbg_assert(tei != 0 && tei != 0xFF); + memcpy(m_dak[tei], dak, sizeof(m_dak[0])); +} diff --git a/cp/secu/src/secu_p_run.c b/cp/secu/src/secu_p_run.c index 39616a5aef..101c3a274d 100644 --- a/cp/secu/src/secu_p_run.c +++ b/cp/secu/src/secu_p_run.c @@ -15,13 +15,16 @@ #include "common/std.h" #include "cp/secu/inc/secu_p_run.h" -static protocol_run_t m_p_run[MAX_STA_NB]; // variables du protocol run +static protocol_run_t m_p_run[THEORICAL_MAX_STA_NB]; // variables du protocol run void secu_p_run_init(void) { + uint i; memset(m_p_run, 0, sizeof(m_p_run)); + for(i = 0 ; i #include "mac/common/store.h" - +#include "cp/cp_types.h" +#include "SEMTypes.h" +#include "cp/station/inc/station_types.h" typedef enum process_usta_result_t { diff --git a/cp/station/src/station_actions.c b/cp/station/src/station_actions.c index aad06eb0fc..99e8a4c313 100644 --- a/cp/station/src/station_actions.c +++ b/cp/station/src/station_actions.c @@ -40,7 +40,6 @@ launch_bbt_timer (void) { bool sta_was_cco = false; uint min_bbt, max_bbt, bbt; - double tmp; //printf("%s\n", __FUNCTION__); // TODO check if before the previous reboot the sta was CCO @@ -56,11 +55,7 @@ launch_bbt_timer (void) min_bbt = MinScanTime_ms; max_bbt = MaxScanTime_ms; } - tmp = rand_r( & station_seed); - tmp /= RAND_MAX; - tmp *= (max_bbt - min_bbt); - bbt = (int) tmp; - bbt += min_bbt; + bbt = rand_in(min_bbt, max_bbt); dbg_assert( (bbt > MinCCoScanTime_ms) && (bbt < MaxScanTime_ms) ); // set the BBT timer //printf("bbt = %i ms\n", bbt); @@ -68,6 +63,16 @@ launch_bbt_timer (void) } +uint rand_in(uint min, uint max) +{ + double tmp; + + dbg_assert(min < max); + tmp = rand_r( & station_seed); + tmp /= RAND_MAX; + tmp *= (max - min); + return (uint) (tmp + min); +} void launch_beacon_timer (void) @@ -79,13 +84,10 @@ void launch_ustt_timer (void) { uint ustt; - double tmp; //printf("%s\n", __FUNCTION__); - tmp = rand_r( & station_seed); - tmp /= RAND_MAX; - tmp *= USAI_ms; - ustt = (int) tmp; + + ustt = rand_in(0, USAI_ms); if(ustt < 10) ustt = 10; // tick is 10 ms //printf("ustt = %i \n", ustt); dbg_assert(ustt < USAI_ms); @@ -148,7 +150,7 @@ process_usta_mme (VS_VOIDPTR mme_address) if(process_usta_result == BECOME_CCO) sta_add_event(TO_CCO, NULL); } -#define TRACE_FSM_STATE 0 +#define TRACE_FSM_STATE 1 VS_VOID trace_cco (VS_VOID) { @@ -306,7 +308,8 @@ VS_VOID process_cc_set_tei_map_ind (VS_VOIDPTR mme_address) } -VS_VOID process_cc_set_tei_map_req (VS_VOIDPTR mme_address) +VS_VOID +process_cc_set_tei_map_req (VS_VOIDPTR mme_address) {//11.2.34 u8 i; cc_set_tei_map_ind_t *cc_set_tei_map_ind; diff --git a/cp/station/src/station_apivs.c b/cp/station/src/station_apivs.c index 87b86ec25a..e5dd770cba 100644 --- a/cp/station/src/station_apivs.c +++ b/cp/station/src/station_apivs.c @@ -82,13 +82,13 @@ station_process_fsm_event(void) void station_test_fsm(void) { - msg_mme_t *msg; +/* msg_mme_t *msg; msg_param_t msg_param; msg = msg_sending_common_part("ABCEFG", &msg_param); - printf("start of fsm test %u\n", sizeof(SEM_CONTEXT)); + printf("start of fsm test\n"); // send the reset event to the fsm if(sta_add_event(SE_RESET, NULL) != EV_OK) dbg_assert(0); station_process_fsm_event(); @@ -110,7 +110,8 @@ station_test_fsm(void) if(sta_add_event(BECOME_BACKUP_CCO, NULL) != EV_OK) dbg_assert(0); if(sta_add_event(BEACON_TIMER_EXPIRES, NULL) != EV_OK) dbg_assert(0); station_process_fsm_event(); - station_print_fsm_states(); + station_print_fsm_states(); + */ } diff --git a/cp/station/src/station_core.c b/cp/station/src/station_core.c index be94f84da7..ecc40337de 100644 --- a/cp/station/src/station_core.c +++ b/cp/station/src/station_core.c @@ -63,25 +63,22 @@ station_init (void) sta_initialize_handler(); // initialize the station data station_data_init(); - // TODO init station_seed - - // 2) init the others modules - interf_init (); - beacon_init(); - // TODO init the others modules - + // TODO init station_seed // wait 60 ms for some zero cross (to calculate network frequency) - #if DEBUG == 0 - cyg_thread_delay (interf_ms_to_cyg_tick (60)); - #endif +// #if DEBUG == 0 +// cyg_thread_delay (interf_ms_to_cyg_tick (60)); +// #endif station_init_fsm(); - station_wait_event (); + #if DEBUG == 1 + // TODO remove the following event when not in debug mode + if(sta_add_event(RECEIVE_DRV_MAC_START_REQ, NULL) != EV_OK) dbg_assert(0); + #endif } void -station_wait_event (void) +station_wait_event (cyg_addrword_t data) { cyg_flag_value_t flag_value, flag_mask; uint i; diff --git a/cp/station/station.h b/cp/station/station.h index e04a6409cb..d65031535f 100644 --- a/cp/station/station.h +++ b/cp/station/station.h @@ -49,7 +49,7 @@ station_init (void); * \return */ void -station_wait_event (void); +station_wait_event (cyg_addrword_t data); /** * \brief create an alarm that will generate an event after diff --git a/cp/test/src/test_interf.c b/cp/test/src/test_interf.c index 7813a3c197..d0b28e107a 100644 --- a/cp/test/src/test_interf.c +++ b/cp/test/src/test_interf.c @@ -83,21 +83,6 @@ int interf_received_frag_test (void) return 0; } -/* - * Test de void interf_msg_add(msg_mme_dest_t mme_dest, msg_mme_t *msg) - * - */ -int interf_msg_add_test (void) -{ - /* - msg_mme_dest_t dest = MSG_STA; - msg_mme_t msg; - - msg_set_mme_const_values ( &msg); - interf_msg_add (dest, &msg); -*/ - return 0; -} /* * Test de void interf_send(msg_mme_t *msg) * @@ -136,46 +121,6 @@ int interf_received_test (void) return 0; } -/* - * Test de void interf_msg_remove(msg_mme_dest_t dest, msg_mme_t *msg) - */ -#define NB_MSG_REMOVE_TEST 4 - -int interf_msg_remove_test (void) -{ - /* - msg_mme_t msg[NB_MSG_REMOVE_TEST]; - msg_mme_dest_t dest = MSG_STA; - int i; - - // init the msg - bzero (msg, sizeof(msg)); - - // init all the interf module - interf_init(); - // init messages - for(i=0 ; i < NB_MSG_REMOVE_TEST ; i++) - { - msg_set_mme_const_values( & msg[i]); - } - // add messages in the fifo - for(i=0 ; ikey_type = 1; + cm_set_key_req->my_nonce = 0x33221100; + cm_set_key_req->your_nonce = 0x11223344; + cm_set_key_req->pid = 2; + cm_set_key_req->prn = 0x372D; + cm_set_key_req->pmn = 3; + cm_set_key_req->cco_capa = 2; + memcpy(cm_set_key_req->nid, "\x02\x6B\xCB\xA5\x35\x4E\x18", 7); + cm_set_key_req->new_eks = 1; + memcpy(cm_set_key_req->new_key, "\xB5\x93\x19\xD7\xE8\x15\x7B\xA0\x01\xB0\x18\x66\x9C\xCE\xE3\x0D", 16); + + msg_param.peks = PEKS_DESTINATION_STA_DAK; + secu_set_sta_s_dak(tei, "\xEE\x7F\x57\x88\xE2\xA0\x21\xC9\x99\x46\x9A\xC5\x2A\xF3\x0A\x06"); + station_set_mac_address("\x00\x46\x47\x48\x49\x50"); + + msg_cm_encrypted_payload_ind_send( + (msg_mme_t *)&msg, + msg_param, + tei, + false, + 2, + sizeof(cm_set_key_req_t) + MSG_MME_HEADER_SIZE + ); + return 0; +} struct msg_test_t { @@ -72,7 +133,8 @@ int msg_test (void) { { msg_init_test, "msg_init"}, { msg_set_mme_const_values_test, "msg_xxx_mme_const_values" }, - { msg_get_number_test, "msg_get_number"} + { msg_get_number_test, "msg_get_number"}, + { msg_cm_encrypted_payload_ind_send_test, "cm_encrypted_payload_ind"} }; printf ("test du module msg\n"); diff --git a/cp/test/src/test_station.c b/cp/test/src/test_station.c index 84f9ab4ce5..9c6540550b 100644 --- a/cp/test/src/test_station.c +++ b/cp/test/src/test_station.c @@ -21,6 +21,7 @@ static unsigned char station_thread_stack[CYGNUM_HAL_STACK_SIZE_TYPICAL]; static cyg_handle_t station_thread_handle; static cyg_thread station_thread; +static sec_t sec_m; /* @@ -248,6 +249,7 @@ process_cc_assoc_req_test(void) msg_mme_t *msg; cc_assoc_req_t *cc_assoc_req; msg_param_t msg_param; + u8 buf[1518]; // init the station with it default parameters station_data_init(); @@ -267,7 +269,7 @@ process_cc_assoc_req_test(void) if(tei != 2) return 2; // simulate the reception of a cc_assoc_req // 1) construct the message - msg = msg_sending_common_part("IJKLMN", &msg_param); + msg = msg_sending_common_part((msg_mme_t *)buf, "IJKLMN", &msg_param); msg->mm_type = CC_ASSOC_REQ; memcpy(&msg->osa, "HELLO!", 6); // set the message values ( 11.2.28 ) @@ -287,6 +289,13 @@ process_cc_assoc_req_test(void) */ int station_run_testing_thread(void) { + // do the CP init procedure + beacon_init(); + interf_init (); + msg_init(); + secu_init(&sec_m); + station_init(); + cyg_thread_resume(station_thread_handle); // wait for the thread to start and init cyg_thread_delay(10); @@ -299,12 +308,13 @@ struct station_test_t char func_name[30]; }; - +/* static void station_thread_launch(cyg_addrword_t data) { - station_init(); + station_wait_event (data); } +*/ int station_test (void) { @@ -325,10 +335,11 @@ int station_test (void) }; printf ("test du module station\n"); + // for the test, we create a thread STA cyg_thread_create( STA_THREAD_PRIORITY, - &station_thread_launch, + &station_wait_event, 0, "STA", station_thread_stack, diff --git a/cp/vstate_fsm/src/SEMEDef.h b/cp/vstate_fsm/src/SEMEDef.h index b4aade39a2..ec53fec422 100644 --- a/cp/vstate_fsm/src/SEMEDef.h +++ b/cp/vstate_fsm/src/SEMEDef.h @@ -3,7 +3,7 @@ * * Function: SEM Defines Header File. * - * Generated: Thu Nov 29 11:24:39 2007 + * Generated: Tue Dec 04 17:07:17 2007 * * Coder 5, 4, 0, 1273 * @@ -23,7 +23,7 @@ #include "SEMTypes.h" -#if (VS_CODER_GUID != 0X0098de850) +#if (VS_CODER_GUID != 0X009de319e) #error The generated file does not match the SEMTypes.h header file. #endif @@ -50,8 +50,8 @@ #define SEM_RMN_ACTIONS 4 #define SEM_RMN_GUARDS 0 #define SEM_RMN_NEGATIVE_STATE_SYNCS 1 -#define SEM_RMN_NEXT_STATES 9 -#define SEM_RMN_POSITIVE_STATE_SYNCS 4 +#define SEM_RMN_NEXT_STATES 10 +#define SEM_RMN_POSITIVE_STATE_SYNCS 5 #define SEM_RMN_SIGNALS 0 #define SEM_SIGNAL 0 diff --git a/cp/vstate_fsm/src/SEMTypes.h b/cp/vstate_fsm/src/SEMTypes.h index 605bac16e3..3db384f508 100644 --- a/cp/vstate_fsm/src/SEMTypes.h +++ b/cp/vstate_fsm/src/SEMTypes.h @@ -3,7 +3,7 @@ * * Function: SEM Types Header File. * - * Generated: Thu Nov 29 11:24:39 2007 + * Generated: Tue Dec 04 17:07:17 2007 * * Coder 5, 4, 0, 1273 * @@ -17,7 +17,7 @@ #define __SEMTYPES_H -#define VS_CODER_GUID 0X0098de850 +#define VS_CODER_GUID 0X009de319e #include diff --git a/cp/vstate_fsm/src/cesar_cp_PConstant.h b/cp/vstate_fsm/src/cesar_cp_PConstant.h index 01f697051a..68e8f6d15a 100644 --- a/cp/vstate_fsm/src/cesar_cp_PConstant.h +++ b/cp/vstate_fsm/src/cesar_cp_PConstant.h @@ -3,7 +3,7 @@ * * Function: VS Project Constant File. * - * Generated: Thu Nov 29 11:24:39 2007 + * Generated: Tue Dec 04 17:07:17 2007 * * Coder 5, 4, 0, 1273 * diff --git a/cp/vstate_fsm/src/cesar_cp_PEvent.h b/cp/vstate_fsm/src/cesar_cp_PEvent.h index d684806edc..37b2e47fbf 100644 --- a/cp/vstate_fsm/src/cesar_cp_PEvent.h +++ b/cp/vstate_fsm/src/cesar_cp_PEvent.h @@ -3,7 +3,7 @@ * * Function: VS Project Event Header File. * - * Generated: Thu Nov 29 11:24:39 2007 + * Generated: Tue Dec 04 17:07:17 2007 * * Coder 5, 4, 0, 1273 * diff --git a/cp/vstate_fsm/src/main_fsm.c b/cp/vstate_fsm/src/main_fsm.c index 7fa9010836..0b7b6771dd 100644 --- a/cp/vstate_fsm/src/main_fsm.c +++ b/cp/vstate_fsm/src/main_fsm.c @@ -3,7 +3,7 @@ * * Function: VS System Source File. * - * Generated: Thu Nov 29 11:24:39 2007 + * Generated: Tue Dec 04 17:07:17 2007 * * Coder 5, 4, 0, 1273 * @@ -19,7 +19,7 @@ #include "main_fsm.h" -#if (VS_CODER_GUID != 0X0098de850) +#if (VS_CODER_GUID != 0X009de319e) #error The generated file does not match the SEMTypes.h header file. #endif @@ -36,68 +36,82 @@ VSDATAmain_fsm const main_fsm = { { - 0X000000150, 0X00000001B, 0X000000000, - 0X000000015, 0X000000009, 0X00000000B, + 0X000000150, 0X00000001D, 0X000000000, + 0X000000017, 0X00000000A, 0X00000000B, 0X000000001, 0X000000000, offsetof(VSDATAmain_fsm, S1) + 0, - offsetof(VSDATAmain_fsm, S1) + 42, 0X000000000, offsetof(VSDATAmain_fsm, S1) + 96, - offsetof(VSDATAmain_fsm, S1) + 690, offsetof(VSDATAmain_fsm, S1) + 788, offsetof(VSDATAmain_fsm, S1) + 846, + offsetof(VSDATAmain_fsm, S1) + 46, 0X000000000, offsetof(VSDATAmain_fsm, S1) + 104, + offsetof(VSDATAmain_fsm, S1) + 888, offsetof(VSDATAmain_fsm, S1) + 998, offsetof(VSDATAmain_fsm, S1) + 1060, 0X000000000, 0X000000000, 0X000000000, 0X000000000, 0X000000000, 0X000000000, }, { - 0X00000, 0X00000, 0X00000, 0X00001, 0X00001, 0X00002, 0X00002, 0X00003, - 0X00003, 0X00003, 0X00004, 0X00004, 0X00005, 0X00005, 0X00006, 0X00006, - 0X00007, 0X00007, 0X00007, 0X00008, 0X00008, 0X0FFFF, 0X0FFFF, 0X0FFFF, + 0X00000, 0X00000, 0X00001, 0X00001, 0X00001, 0X00002, 0X00002, 0X00003, + 0X00003, 0X00004, 0X00004, 0X00004, 0X00005, 0X00005, 0X00006, 0X00006, + 0X00007, 0X00007, 0X00008, 0X00008, 0X00008, 0X00009, 0X00009, 0X0FFFF, 0X0FFFF, 0X0FFFF, 0X0FFFF, 0X0FFFF, 0X0FFFF, 0X0FFFF, 0X0FFFF, 0X0FFFF, - 0X0FFFF, 0X0FFFF, 0X0FFFF, 0X0FFFF, 0X0FFFF, 0X0FFFF, 0X00000, 0X0FFFF, - 0X0FFFF, 0X00000, 0X0FFFF, 0X0FFFF, 0X0FFFF, 0X0FFFF, 0X0FFFF, 0X0FFFF, - 0X04900, 0X00001, 0X00003, 0X00006, 0X00013, 0X00007, 0X0000A, 0X0000C, - 0X0000F, 0X00010, 0X00000, 0X00003, 0X00001, 0X00006, 0X02201, 0X00000, - 0X00004, 0X00001, 0X00003, 0X00009, 0X03401, 0X00000, 0X00005, 0X00002, - 0X0000F, 0X0000C, 0X0000B, 0X00005, 0X0000C, 0X02401, 0X00001, 0X00005, - 0X00002, 0X0000F, 0X0000C, 0X00005, 0X0000C, 0X02301, 0X00001, 0X00002, - 0X00006, 0X00013, 0X0000C, 0X00007, 0X01103, 0X00003, 0X00001, 0X0000A, - 0X00000, 0X00008, 0X01102, 0X00004, 0X00001, 0X00000, 0X00008, 0X03103, - 0X0000A, 0X00002, 0X00005, 0X00000, 0X0000D, 0X0000E, 0X00008, 0X04203, - 0X0000B, 0X00002, 0X00005, 0X00004, 0X00001, 0X0000D, 0X0000E, 0X00003, - 0X00009, 0X01204, 0X0000F, 0X00002, 0X00006, 0X00014, 0X00003, 0X00001, - 0X0000F, 0X04203, 0X00006, 0X0000F, 0X00002, 0X00003, 0X00001, 0X0000E, - 0X00003, 0X00001, 0X00006, 0X01203, 0X00002, 0X00006, 0X00014, 0X00004, - 0X00001, 0X0000F, 0X03202, 0X00006, 0X00002, 0X00004, 0X00001, 0X0000E, - 0X00003, 0X00009, 0X01101, 0X00001, 0X00001, 0X00003, 0X01102, 0X00001, - 0X0000B, 0X00001, 0X0000A, 0X01101, 0X00001, 0X00001, 0X00010, 0X01101, - 0X00001, 0X00001, 0X00011, 0X01202, 0X00003, 0X00001, 0X00004, 0X00001, - 0X00009, 0X01202, 0X00003, 0X00001, 0X00003, 0X00001, 0X00004, 0X01202, - 0X00003, 0X00001, 0X00003, 0X00001, 0X00012, 0X01202, 0X00004, 0X00001, - 0X00004, 0X00001, 0X00013, 0X03303, 0X00002, 0X00008, 0X00005, 0X00014, - 0X00006, 0X00002, 0X0000D, 0X00007, 0X00014, 0X02202, 0X00005, 0X00002, - 0X00005, 0X00002, 0X0000D, 0X00015, 0X02202, 0X00005, 0X00002, 0X00005, - 0X00002, 0X0000D, 0X00016, 0X01404, 0X0000E, 0X00002, 0X00006, 0X00014, - 0X00005, 0X00002, 0X0000F, 0X0000C, 0X0000F, 0X01403, 0X00006, 0X00002, - 0X0000E, 0X00005, 0X00002, 0X0000F, 0X0000C, 0X00005, 0X01404, 0X00008, - 0X00002, 0X00006, 0X00014, 0X00005, 0X00002, 0X0000F, 0X0000C, 0X0000F, - 0X01403, 0X00006, 0X00002, 0X00008, 0X00005, 0X00002, 0X0000F, 0X0000C, - 0X00005, 0X01203, 0X00006, 0X00002, 0X00014, 0X00006, 0X00002, 0X0000F, - 0X02302, 0X00006, 0X00002, 0X00006, 0X00002, 0X00013, 0X00017, 0X00007, - 0X01303, 0X00013, 0X00006, 0X00002, 0X00014, 0X00006, 0X00002, 0X00014, - 0X01303, 0X00006, 0X00002, 0X00014, 0X00013, 0X00006, 0X00002, 0X0000F, - 0X00101, 0X00007, 0X00009, 0X00101, 0X00007, 0X00008, 0X00101, 0X00008, - 0X00007, 0X00101, 0X00009, 0X00007, 0X01101, 0X0000A, 0X0000B, 0X00002, - 0X01101, 0X0000B, 0X0000B, 0X00002, 0X00101, 0X0000B, 0X0000A, 0X00101, - 0X0000C, 0X0000D, 0X00101, 0X0000D, 0X0000C, 0X00101, 0X0000E, 0X0000F, - 0X00103, 0X0000F, 0X00002, 0X00006, 0X0000E, 0X00111, 0X0000F, 0X00002, - 0X0000E, 0X00101, 0X00010, 0X00011, 0X00101, 0X00010, 0X00012, 0X00101, - 0X00011, 0X00010, 0X00102, 0X00012, 0X00001, 0X00011, 0X00101, 0X00012, - 0X00010, 0X00000, 0X000E0, 0X00081, 0X0000E, 0X00073, 0X000FC, 0X00100, - 0X00032, 0X00049, 0X00051, 0X000AB, 0X000B5, 0X00104, 0X00110, 0X00115, - 0X00107, 0X00093, 0X000BE, 0X000C8, 0X000F6, 0X000F9, 0X00037, 0X0003F, - 0X0010D, 0X0010A, 0X0002C, 0X00077, 0X00014, 0X0009D, 0X000D1, 0X000D8, - 0X000A4, 0X00087, 0X0008D, 0X00119, 0X0011C, 0X0011F, 0X00126, 0X00122, - 0X000F3, 0X000F0, 0X00025, 0X0005B, 0X00062, 0X0007B, 0X000E8, 0X0006A, - 0X0006E, 0X0001D, 0X00000, 0X00001, 0X00002, 0X00003, 0X00007, 0X0000D, - 0X0000F, 0X00010, 0X00015, 0X00017, 0X00018, 0X00019, 0X0001A, 0X0001B, - 0X0001D, 0X0001F, 0X00020, 0X00022, 0X00023, 0X00024, 0X00026, 0X00027, - 0X00028, 0X00029, 0X0002A, 0X0002D, 0X0002E, 0X00030, 0X00031 + 0X0FFFF, 0X0FFFF, 0X0FFFF, 0X0FFFF, 0X0FFFF, 0X0FFFF, 0X0FFFF, 0X0FFFF, + 0X0FFFF, 0X0FFFF, 0X00000, 0X0FFFF, 0X0FFFF, 0X00000, 0X0FFFF, 0X0FFFF, + 0X0FFFF, 0X0FFFF, 0X0FFFF, 0X0FFFF, 0X01A00, 0X00001, 0X00003, 0X00005, + 0X00008, 0X00015, 0X00009, 0X0000C, 0X0000E, 0X00011, 0X00012, 0X00000, + 0X01103, 0X00000, 0X00004, 0X00007, 0X00001, 0X0000B, 0X01104, 0X00000, + 0X00004, 0X00008, 0X00016, 0X00001, 0X0000C, 0X01102, 0X00000, 0X00004, + 0X00001, 0X0000D, 0X00101, 0X00000, 0X00001, 0X03301, 0X00001, 0X00000, + 0X00003, 0X00005, 0X00003, 0X00001, 0X00006, 0X02302, 0X00002, 0X00000, + 0X00006, 0X00003, 0X00000, 0X00003, 0X00009, 0X03502, 0X00002, 0X00000, + 0X00007, 0X00004, 0X00000, 0X00011, 0X0000E, 0X0000E, 0X00005, 0X0000F, + 0X02502, 0X00003, 0X00000, 0X00007, 0X00004, 0X00000, 0X00011, 0X0000E, + 0X00005, 0X0000F, 0X02402, 0X00003, 0X00000, 0X00004, 0X00000, 0X00008, + 0X00015, 0X0000F, 0X00007, 0X01204, 0X00005, 0X00003, 0X00000, 0X0000C, + 0X00002, 0X00000, 0X00008, 0X01203, 0X00006, 0X00003, 0X00000, 0X00002, + 0X00000, 0X00008, 0X03204, 0X00000, 0X0000C, 0X00004, 0X00007, 0X00002, + 0X00000, 0X0000B, 0X0000D, 0X00008, 0X04304, 0X00000, 0X0000D, 0X00004, + 0X00007, 0X00006, 0X00003, 0X00000, 0X0000B, 0X0000D, 0X00003, 0X00009, + 0X01305, 0X00000, 0X00011, 0X00004, 0X00008, 0X00016, 0X00005, 0X00003, + 0X00000, 0X0000C, 0X04304, 0X00008, 0X00000, 0X00011, 0X00004, 0X00005, + 0X00003, 0X00000, 0X0000D, 0X00003, 0X00001, 0X00006, 0X01304, 0X00000, + 0X00004, 0X00008, 0X00016, 0X00006, 0X00003, 0X00000, 0X0000C, 0X03303, + 0X00008, 0X00000, 0X00004, 0X00006, 0X00003, 0X00000, 0X0000D, 0X00003, + 0X00009, 0X01202, 0X00003, 0X00000, 0X00003, 0X00000, 0X00003, 0X01103, + 0X00003, 0X00000, 0X0000D, 0X00000, 0X0000A, 0X01202, 0X00003, 0X00000, + 0X00003, 0X00000, 0X00010, 0X01202, 0X00003, 0X00000, 0X00003, 0X00000, + 0X00011, 0X01303, 0X00005, 0X00003, 0X00000, 0X00006, 0X00003, 0X00000, + 0X00009, 0X01303, 0X00005, 0X00003, 0X00000, 0X00005, 0X00003, 0X00000, + 0X00004, 0X01303, 0X00005, 0X00003, 0X00000, 0X00005, 0X00003, 0X00000, + 0X00012, 0X01303, 0X00006, 0X00003, 0X00000, 0X00006, 0X00003, 0X00000, + 0X00013, 0X03404, 0X00004, 0X00000, 0X0000A, 0X00007, 0X00016, 0X00008, + 0X00004, 0X00000, 0X0000B, 0X00007, 0X00014, 0X02303, 0X00007, 0X00004, + 0X00000, 0X00007, 0X00004, 0X00000, 0X0000B, 0X00015, 0X02303, 0X00007, + 0X00004, 0X00000, 0X00007, 0X00004, 0X00000, 0X0000B, 0X00016, 0X01505, + 0X00010, 0X00000, 0X00004, 0X00008, 0X00016, 0X00007, 0X00004, 0X00000, + 0X00011, 0X0000E, 0X0000C, 0X01504, 0X00008, 0X00004, 0X00000, 0X00010, + 0X00007, 0X00004, 0X00000, 0X00011, 0X0000E, 0X00005, 0X01505, 0X0000A, + 0X00000, 0X00004, 0X00008, 0X00016, 0X00007, 0X00004, 0X00000, 0X00011, + 0X0000E, 0X0000C, 0X01504, 0X00008, 0X00004, 0X00000, 0X0000A, 0X00007, + 0X00004, 0X00000, 0X00011, 0X0000E, 0X00005, 0X01304, 0X00008, 0X00004, + 0X00000, 0X00016, 0X00008, 0X00004, 0X00000, 0X0000C, 0X02403, 0X00008, + 0X00004, 0X00000, 0X00008, 0X00004, 0X00000, 0X00015, 0X00017, 0X00007, + 0X01404, 0X00015, 0X00008, 0X00004, 0X00000, 0X00016, 0X00008, 0X00004, + 0X00000, 0X00014, 0X01404, 0X00008, 0X00004, 0X00000, 0X00016, 0X00015, + 0X00008, 0X00004, 0X00000, 0X0000C, 0X00101, 0X00009, 0X0000B, 0X00101, + 0X00009, 0X0000A, 0X00101, 0X0000A, 0X00009, 0X00101, 0X0000B, 0X00009, + 0X01101, 0X0000C, 0X0000D, 0X00002, 0X01101, 0X0000D, 0X0000D, 0X00002, + 0X00101, 0X0000D, 0X0000C, 0X00101, 0X0000E, 0X0000F, 0X00101, 0X0000F, + 0X0000E, 0X00101, 0X00010, 0X00011, 0X00104, 0X00011, 0X00000, 0X00004, + 0X00008, 0X00010, 0X00112, 0X00011, 0X00000, 0X00004, 0X00010, 0X00102, + 0X00011, 0X00001, 0X00010, 0X00101, 0X00012, 0X00013, 0X00101, 0X00012, + 0X00014, 0X00101, 0X00013, 0X00012, 0X00103, 0X00014, 0X00003, 0X00000, + 0X00013, 0X00101, 0X00014, 0X00012, 0X00000, 0X00134, 0X000BD, 0X00029, + 0X000A9, 0X00154, 0X00158, 0X00057, 0X00074, 0X0007E, 0X000F3, 0X000FF, + 0X0015C, 0X00168, 0X0016E, 0X00173, 0X0015F, 0X000D5, 0X0010A, 0X00116, + 0X0014E, 0X00151, 0X0005E, 0X00068, 0X00165, 0X00162, 0X0004F, 0X000AF, + 0X00031, 0X000E1, 0X00121, 0X0012A, 0X000EA, 0X00021, 0X0000C, 0X00012, + 0X00019, 0X0001E, 0X000C5, 0X000CD, 0X00177, 0X0017A, 0X0017D, 0X00185, + 0X00180, 0X0014B, 0X00148, 0X00046, 0X0008A, 0X00093, 0X000B5, 0X0013E, + 0X0009D, 0X000A3, 0X0003C, 0X00000, 0X00001, 0X00002, 0X00003, 0X00007, + 0X0000D, 0X00010, 0X00011, 0X00016, 0X00018, 0X00019, 0X0001A, 0X0001B, + 0X0001C, 0X0001E, 0X00020, 0X00021, 0X00022, 0X00026, 0X00028, 0X00029, + 0X0002A, 0X0002C, 0X0002D, 0X0002E, 0X0002F, 0X00030, 0X00033, 0X00034, + 0X00036, 0X00037 } }; diff --git a/cp/vstate_fsm/src/main_fsm.h b/cp/vstate_fsm/src/main_fsm.h index a1ee3fe2b4..52a4d2a6d7 100644 --- a/cp/vstate_fsm/src/main_fsm.h +++ b/cp/vstate_fsm/src/main_fsm.h @@ -3,7 +3,7 @@ * * Function: Include VS System Data Header File. * - * Generated: Thu Nov 29 11:24:39 2007 + * Generated: Tue Dec 04 17:07:17 2007 * * Coder 5, 4, 0, 1273 * @@ -23,7 +23,7 @@ #include "SEMEDef.h" -#if (VS_CODER_GUID != 0X0098de850) +#if (VS_CODER_GUID != 0X009de319e) #error The generated file does not match the SEMTypes.h header file. #endif @@ -34,7 +34,7 @@ typedef struct { VS_UINT32 S0[0X000000016]; - VS_UINT16 S1[0X001A7]; + VS_UINT16 S1[0X00212]; } VSDATAmain_fsm; diff --git a/cp/vstate_fsm/src/main_fsmAction.h b/cp/vstate_fsm/src/main_fsmAction.h index fddaa9c5e8..b87f655c53 100644 --- a/cp/vstate_fsm/src/main_fsmAction.h +++ b/cp/vstate_fsm/src/main_fsmAction.h @@ -3,7 +3,7 @@ * * Function: VS System Action Expression Pointer Table Header File. * - * Generated: Thu Nov 29 11:24:39 2007 + * Generated: Tue Dec 04 17:07:17 2007 * * Coder 5, 4, 0, 1273 * @@ -23,7 +23,7 @@ #include "SEMEDef.h" -#if (VS_CODER_GUID != 0X0098de850) +#if (VS_CODER_GUID != 0X009de319e) #error The generated file does not match the SEMTypes.h header file. #endif diff --git a/cp/vstate_fsm/src/main_fsmData.c b/cp/vstate_fsm/src/main_fsmData.c index dc207a0bb5..96ce050bec 100644 --- a/cp/vstate_fsm/src/main_fsmData.c +++ b/cp/vstate_fsm/src/main_fsmData.c @@ -3,7 +3,7 @@ * * Function: VS System Data Source File. * - * Generated: Thu Nov 29 11:24:39 2007 + * Generated: Tue Dec 04 17:07:17 2007 * * Coder 5, 4, 0, 1273 * @@ -19,7 +19,7 @@ #include "main_fsmData.h" -#if (VS_CODER_GUID != 0X0098de850) +#if (VS_CODER_GUID != 0X009de319e) #error The generated file does not match the SEMTypes.h header file. #endif @@ -56,7 +56,7 @@ typedef union struct { VS_VOIDPTR VS_VOIDPTRVar[0X00001]; - } DB16; + } DB18; } main_fsmVSDBDATA; @@ -84,22 +84,22 @@ unsigned char main_fsmSMP_Deduct (SEM_CONTEXT VS_TQ_CONTEXT * Context, SEM_EVENT switch (EventNo) { case 3: - main_fsmVSDBVar.DB16.VS_VOIDPTRVar[0] = (VS_VOIDPTR) va_arg(ap, VS_VOIDPTR); + main_fsmVSDBVar.DB18.VS_VOIDPTRVar[0] = (VS_VOIDPTR) va_arg(ap, VS_VOIDPTR); break; case 12: - main_fsmVSDBVar.DB16.VS_VOIDPTRVar[0] = (VS_VOIDPTR) va_arg(ap, VS_VOIDPTR); + main_fsmVSDBVar.DB18.VS_VOIDPTRVar[0] = (VS_VOIDPTR) va_arg(ap, VS_VOIDPTR); break; case 13: - main_fsmVSDBVar.DB16.VS_VOIDPTRVar[0] = (VS_VOIDPTR) va_arg(ap, VS_VOIDPTR); + main_fsmVSDBVar.DB18.VS_VOIDPTRVar[0] = (VS_VOIDPTR) va_arg(ap, VS_VOIDPTR); break; case 14: - main_fsmVSDBVar.DB16.VS_VOIDPTRVar[0] = (VS_VOIDPTR) va_arg(ap, VS_VOIDPTR); + main_fsmVSDBVar.DB18.VS_VOIDPTRVar[0] = (VS_VOIDPTR) va_arg(ap, VS_VOIDPTR); break; case 15: - main_fsmVSDBVar.DB16.VS_VOIDPTRVar[0] = (VS_VOIDPTR) va_arg(ap, VS_VOIDPTR); + main_fsmVSDBVar.DB18.VS_VOIDPTRVar[0] = (VS_VOIDPTR) va_arg(ap, VS_VOIDPTR); break; - case 16: - main_fsmVSDBVar.DB16.VS_VOIDPTRVar[0] = (VS_VOIDPTR) va_arg(ap, VS_VOIDPTR); + case 18: + main_fsmVSDBVar.DB18.VS_VOIDPTRVar[0] = (VS_VOIDPTR) va_arg(ap, VS_VOIDPTR); break; default: @@ -162,39 +162,39 @@ VS_VOID MainVSAction_10 (SEM_CONTEXT VS_TQ_CONTEXT * Context) } VS_VOID MainVSAction_11 (SEM_CONTEXT VS_TQ_CONTEXT * Context) { - process_cc_assoc_req(main_fsmVSDBVar.DB16.VS_VOIDPTRVar[0]); + station_is_cco(0); } VS_VOID MainVSAction_12 (SEM_CONTEXT VS_TQ_CONTEXT * Context) { - station_is_associated(1); + station_is_authenticated(0); } VS_VOID MainVSAction_13 (SEM_CONTEXT VS_TQ_CONTEXT * Context) { - station_is_cco(0); + station_is_associated(0); } VS_VOID MainVSAction_14 (SEM_CONTEXT VS_TQ_CONTEXT * Context) { - station_is_associated(0); + process_cc_assoc_req(main_fsmVSDBVar.DB18.VS_VOIDPTRVar[0]); } VS_VOID MainVSAction_15 (SEM_CONTEXT VS_TQ_CONTEXT * Context) { - station_is_authenticated(0); + station_is_associated(1); } VS_VOID MainVSAction_16 (SEM_CONTEXT VS_TQ_CONTEXT * Context) { - try_associate(main_fsmVSDBVar.DB16.VS_VOIDPTRVar[0]); + try_associate(main_fsmVSDBVar.DB18.VS_VOIDPTRVar[0]); } VS_VOID MainVSAction_17 (SEM_CONTEXT VS_TQ_CONTEXT * Context) { - process_cc_assoc_cnf(main_fsmVSDBVar.DB16.VS_VOIDPTRVar[0]); + process_cc_assoc_cnf(main_fsmVSDBVar.DB18.VS_VOIDPTRVar[0]); } VS_VOID MainVSAction_18 (SEM_CONTEXT VS_TQ_CONTEXT * Context) { - record_usta_mme(main_fsmVSDBVar.DB16.VS_VOIDPTRVar[0]); + record_usta_mme(main_fsmVSDBVar.DB18.VS_VOIDPTRVar[0]); } VS_VOID MainVSAction_19 (SEM_CONTEXT VS_TQ_CONTEXT * Context) { - process_usta_mme(main_fsmVSDBVar.DB16.VS_VOIDPTRVar[0]); + process_usta_mme(main_fsmVSDBVar.DB18.VS_VOIDPTRVar[0]); } VS_VOID MainVSAction_20 (SEM_CONTEXT VS_TQ_CONTEXT * Context) { @@ -202,15 +202,15 @@ VS_VOID MainVSAction_20 (SEM_CONTEXT VS_TQ_CONTEXT * Context) } VS_VOID MainVSAction_21 (SEM_CONTEXT VS_TQ_CONTEXT * Context) { - process_cc_assoc_req(main_fsmVSDBVar.DB16.VS_VOIDPTRVar[0]); + process_cc_assoc_req(main_fsmVSDBVar.DB18.VS_VOIDPTRVar[0]); } VS_VOID MainVSAction_22 (SEM_CONTEXT VS_TQ_CONTEXT * Context) { - process_cc_set_tei_map_req(main_fsmVSDBVar.DB16.VS_VOIDPTRVar[0]); + process_cc_set_tei_map_req(main_fsmVSDBVar.DB18.VS_VOIDPTRVar[0]); } VS_VOID MainVSAction_23 (SEM_CONTEXT VS_TQ_CONTEXT * Context) { - process_cc_set_tei_map_ind(main_fsmVSDBVar.DB16.VS_VOIDPTRVar[0]); + process_cc_set_tei_map_ind(main_fsmVSDBVar.DB18.VS_VOIDPTRVar[0]); } diff --git a/cp/vstate_fsm/src/main_fsmData.h b/cp/vstate_fsm/src/main_fsmData.h index 5ad2439f42..c40a0f19db 100644 --- a/cp/vstate_fsm/src/main_fsmData.h +++ b/cp/vstate_fsm/src/main_fsmData.h @@ -3,7 +3,7 @@ * * Function: VS System Header File. * - * Generated: Thu Nov 29 11:24:39 2007 + * Generated: Tue Dec 04 17:07:17 2007 * * Coder 5, 4, 0, 1273 * @@ -23,14 +23,14 @@ #define VS_NOF_ACTION_EXPRESSIONS 0X018 /* 24 */ #define VS_NOF_ACTION_FUNCTIONS 0X00b /* 11 */ #define VS_NOF_EVENT_GROUPS 0X001 /* 1 */ -#define VS_NOF_EVENTS 0X01b /* 27 */ +#define VS_NOF_EVENTS 0X01d /* 29 */ #define VS_NOF_EXTERNAL_VARIABLES 0X000 /* 0 */ #define VS_NOF_GUARD_EXPRESSIONS 0X000 /* 0 */ #define VS_NOF_INSTANCES 0X001 /* 1 */ #define VS_NOF_INTERNAL_VARIABLES 0X000 /* 0 */ #define VS_NOF_SIGNALS 0X000 /* 0 */ -#define VS_NOF_STATE_MACHINES 0X009 /* 9 */ -#define VS_NOF_STATES 0X015 /* 21 */ +#define VS_NOF_STATE_MACHINES 0X00a /* 10 */ +#define VS_NOF_STATES 0X017 /* 23 */ /* @@ -39,7 +39,7 @@ #include "SEMLibE.h" -#if (VS_CODER_GUID != 0X0098de850) +#if (VS_CODER_GUID != 0X009de319e) #error The generated file does not match the SEMTypes.h header file. #endif @@ -87,17 +87,19 @@ extern unsigned char main_fsmSMP_InitAll (SEM_CONTEXT VS_TQ_CONTEXT * * Context) #define RECEIVE_CC_ASSOC_REQ 0X00D /* 13 */ #define RECEIVE_CC_SET_TEI_MAP_IND 0X00E /* 14 */ #define RECEIVE_CC_SET_TEI_MAP_REQ 0X00F /* 15 */ -#define RECEIVE_USTA_MME 0X010 /* 16 */ -#define SC_ADD 0X011 /* 17 */ -#define SC_JOIN 0X012 /* 18 */ -#define SC_TIMER_EXPIRES 0X013 /* 19 */ -#define TO_CCO 0X014 /* 20 */ -#define TO_HANDOVER 0X015 /* 21 */ -#define TO_HANDOVER_IN_PROGRESS 0X016 /* 22 */ -#define TO_STA 0X017 /* 23 */ -#define TO_USTA 0X018 /* 24 */ -#define UNAUTHENTIFIE_STA 0X019 /* 25 */ -#define USTT_EXPIRES 0X01A /* 26 */ +#define RECEIVE_DRV_MAC_START_REQ 0X010 /* 16 */ +#define RECEIVE_DRV_MAC_STOP_IND 0X011 /* 17 */ +#define RECEIVE_USTA_MME 0X012 /* 18 */ +#define SC_ADD 0X013 /* 19 */ +#define SC_JOIN 0X014 /* 20 */ +#define SC_TIMER_EXPIRES 0X015 /* 21 */ +#define TO_CCO 0X016 /* 22 */ +#define TO_HANDOVER 0X017 /* 23 */ +#define TO_HANDOVER_IN_PROGRESS 0X018 /* 24 */ +#define TO_STA 0X019 /* 25 */ +#define TO_USTA 0X01A /* 26 */ +#define UNAUTHENTIFIE_STA 0X01B /* 27 */ +#define USTT_EXPIRES 0X01C /* 28 */ /* diff --git a/cp/vstate_fsm/src/sta_connection.c b/cp/vstate_fsm/src/sta_connection.c index f76c634b26..0f1798b7c7 100644 --- a/cp/vstate_fsm/src/sta_connection.c +++ b/cp/vstate_fsm/src/sta_connection.c @@ -3,7 +3,7 @@ * * Function: VS System Source File. * - * Generated: Thu Nov 29 11:24:39 2007 + * Generated: Tue Dec 04 17:07:17 2007 * * Coder 5, 4, 0, 1273 * @@ -19,7 +19,7 @@ #include "sta_connection.h" -#if (VS_CODER_GUID != 0X0098de850) +#if (VS_CODER_GUID != 0X009de319e) #error The generated file does not match the SEMTypes.h header file. #endif diff --git a/cp/vstate_fsm/src/sta_connection.h b/cp/vstate_fsm/src/sta_connection.h index fbb041a766..d9e102ae03 100644 --- a/cp/vstate_fsm/src/sta_connection.h +++ b/cp/vstate_fsm/src/sta_connection.h @@ -3,7 +3,7 @@ * * Function: Include VS System Data Header File. * - * Generated: Thu Nov 29 11:24:39 2007 + * Generated: Tue Dec 04 17:07:17 2007 * * Coder 5, 4, 0, 1273 * @@ -23,7 +23,7 @@ #include "SEMEDef.h" -#if (VS_CODER_GUID != 0X0098de850) +#if (VS_CODER_GUID != 0X009de319e) #error The generated file does not match the SEMTypes.h header file. #endif diff --git a/cp/vstate_fsm/src/sta_connectionAction.h b/cp/vstate_fsm/src/sta_connectionAction.h index 6dc163c293..ddac80130d 100644 --- a/cp/vstate_fsm/src/sta_connectionAction.h +++ b/cp/vstate_fsm/src/sta_connectionAction.h @@ -3,7 +3,7 @@ * * Function: VS System Action Expression Pointer Table Header File. * - * Generated: Thu Nov 29 11:24:39 2007 + * Generated: Tue Dec 04 17:07:17 2007 * * Coder 5, 4, 0, 1273 * @@ -23,7 +23,7 @@ #include "SEMEDef.h" -#if (VS_CODER_GUID != 0X0098de850) +#if (VS_CODER_GUID != 0X009de319e) #error The generated file does not match the SEMTypes.h header file. #endif diff --git a/cp/vstate_fsm/src/sta_connectionData.c b/cp/vstate_fsm/src/sta_connectionData.c index 9ef5ab6594..0e874eb101 100644 --- a/cp/vstate_fsm/src/sta_connectionData.c +++ b/cp/vstate_fsm/src/sta_connectionData.c @@ -3,7 +3,7 @@ * * Function: VS System Data Source File. * - * Generated: Thu Nov 29 11:24:39 2007 + * Generated: Tue Dec 04 17:07:17 2007 * * Coder 5, 4, 0, 1273 * @@ -19,7 +19,7 @@ #include "sta_connectionData.h" -#if (VS_CODER_GUID != 0X0098de850) +#if (VS_CODER_GUID != 0X009de319e) #error The generated file does not match the SEMTypes.h header file. #endif diff --git a/cp/vstate_fsm/src/sta_connectionData.h b/cp/vstate_fsm/src/sta_connectionData.h index 973bf51951..e9b76df1e0 100644 --- a/cp/vstate_fsm/src/sta_connectionData.h +++ b/cp/vstate_fsm/src/sta_connectionData.h @@ -3,7 +3,7 @@ * * Function: VS System Header File. * - * Generated: Thu Nov 29 11:24:39 2007 + * Generated: Tue Dec 04 17:07:17 2007 * * Coder 5, 4, 0, 1273 * @@ -39,7 +39,7 @@ #include "SEMLibE.h" -#if (VS_CODER_GUID != 0X0098de850) +#if (VS_CODER_GUID != 0X009de319e) #error The generated file does not match the SEMTypes.h header file. #endif -- cgit v1.2.3