summaryrefslogtreecommitdiff
path: root/cp/msg/msg.h
diff options
context:
space:
mode:
Diffstat (limited to 'cp/msg/msg.h')
-rw-r--r--cp/msg/msg.h45
1 files changed, 34 insertions, 11 deletions
diff --git a/cp/msg/msg.h b/cp/msg/msg.h
index da118872f0..47c271adcd 100644
--- a/cp/msg/msg.h
+++ b/cp/msg/msg.h
@@ -16,6 +16,12 @@
#include "cp/cp_types.h"
+#include "mac/sar/inc/sar_mf.h"
+/*
+ * Homeplug AV constantes
+ */
+#define MSG_VLAN_TAG 0 // TBD
+#define MSG_MTYPE 0xe188 // 11.1
/*
* Familles et numéros de message
@@ -43,22 +49,22 @@ typedef enum msg_mme_dest_t {MSG_STA, MSG_CCO} msg_mme_dest_t;
typedef struct msg_fmi_t // Table 11-178
{
- u8 nf_fmi:4; // Number of fragments for message
- u8 fn_fmi:4; // fragment number
+ u8 nf_mi:4; // Number of fragments for message
+ u8 fn_mi:4; // fragment number
u8 fmsn; // fragmentation message sequence number
} msg_fmi_t;
-typedef struct msg_mme_t // Table 11-178
+typedef struct msg_mme_t // Table 11-178
{
- mac_adresse_t oda[6];
- mac_adresse_t osa[6];
- u32 v_lan_tag;
- u16 m_type;
+ mac_adresse_t oda;
+ mac_adresse_t osa;
+ u32 v_lan_tag;
+ u16 m_type;
u8 mmv;
- mm_type_t mm_type __attribute__ ((packed));
+ mm_type_t mm_type;
msg_fmi_t fmi;
- u8 mm_entry[MAC_FRAME_SIZE];
-} msg_mme_t;
+ u8 mm_entry[SAR_MSDU_PAYLOAD_MAX_SIZE - 23]; // 23 = header size
+} __attribute__ ((packed)) msg_mme_t;
typedef struct msg_list_mme_t
{
@@ -80,7 +86,7 @@ extern msg_list_mme_t msg_list[];
* \return the message number or UNKNOW_MSG
*/
u16
-msg_get_number(msg_mme_t msg[]);
+msg_get_number(msg_mme_t *msg);
/**
* \brief
@@ -91,5 +97,22 @@ void *
msg_dispatch(msg_mme_t *msg);
+/**
+ * \brief set the const values of mme (ie mtype)
+ * \param Msg : pointer to the message
+ * \return
+ */
+void
+msg_set_mme_const_values(msg_mme_t *msg);
+
+/**
+ * \brief check the const values of mme (ie mtype)
+ * \param Msg : pointer to the message
+ * \return true if ok
+ */
+bool
+msg_check_wrong_mme_const_values(msg_mme_t *msg);
+
+
#endif