summaryrefslogtreecommitdiff
path: root/cesar/cp/msg/src
diff options
context:
space:
mode:
authorThierry Carré2013-04-16 14:53:11 +0200
committerThierry Carré2013-04-26 17:03:33 +0200
commit0bc0483286679663bc9748fdd32147e92318a360 (patch)
tree43541ffc160d1d3fba5650eaed876d0fcbc98a86 /cesar/cp/msg/src
parent8b6153e8156feaed4464675bf80657dd02e3e888 (diff)
parent8dc1cc159e1749659b49a27c592344b74dd2e3a6 (diff)
Merge branch 't3789_force_role' into eoc-drv
Conflicts: cesar/cp/msg/src/msg.c cleopatre/devkit/plcd/inc/plcd_ctx.h cleopatre/devkit/plcd/inc/plcd_stack.h cleopatre/devkit/plcd/src/plcd_main.c cleopatre/devkit/plcd/src/plcd_stack.c common/lib/mmtcgen/mme.txt cesar/cp/sta/mgr/sta_own_data.h
Diffstat (limited to 'cesar/cp/msg/src')
-rw-r--r--cesar/cp/msg/src/msg.c2
-rw-r--r--cesar/cp/msg/src/msg_drv.c17
2 files changed, 19 insertions, 0 deletions
diff --git a/cesar/cp/msg/src/msg.c b/cesar/cp/msg/src/msg.c
index c59a038f53..9037f44854 100644
--- a/cesar/cp/msg/src/msg.c
+++ b/cesar/cp/msg/src/msg.c
@@ -308,6 +308,8 @@ cp_msg_mme_allowed_t cp_msg_mme_allowed[] =
CP_MSG_MME_ALLOWED_ENTRY (DRV_EOC_STA_SET_EOC_CONFIG_REQ, STA_UNASSOC, NEK_ENC_NO, FROM_H1_YES, DRV_EOC_STA_SET_EOC_CONFIG_REQ),
CP_MSG_MME_ALLOWED_ENTRY (DRV_EOC_STA_SET_EOC_CONFIG_CNF, STA_UNASSOC, NEK_ENC_NO, FROM_H1_NO, NO_EVENT),
#endif /* CONFIG_CP_EOC */
+ CP_MSG_MME_ALLOWED_ENTRY (DRV_STA_FORCE_ROLE_REQ, STA_UNASSOC, NEK_ENC_NO, FROM_H1_YES, DRV_STA_FORCE_ROLE_REQ),
+ CP_MSG_MME_ALLOWED_ENTRY (DRV_STA_FORCE_ROLE_CNF, STA_UNASSOC, NEK_ENC_NO, FROM_H1_NO, NO_EVENT),
};
uint cp_msg_mme_allowed_count = COUNT (cp_msg_mme_allowed);
diff --git a/cesar/cp/msg/src/msg_drv.c b/cesar/cp/msg/src/msg_drv.c
index 4dba4b3f09..390af9b173 100644
--- a/cesar/cp/msg/src/msg_drv.c
+++ b/cesar/cp/msg/src/msg_drv.c
@@ -575,6 +575,23 @@ cp_msg_drv_sta_get_key_cnf_send (cp_t *ctx, cp_mme_peer_t *peer,
}
bool
+cp_msg_drv_sta_force_role_req_receive (
+ cp_t *ctx, cp_mme_rx_t *mme, char *force_role)
+{
+ dbg_assert (ctx);
+ dbg_assert (mme);
+
+ if (cp_msg_mme_read_error (ctx, mme))
+ {
+ *force_role = bitstream_read (&mme->bitstream, 8);
+
+ if (*force_role < MAC_FORCE_ROLE_NB)
+ return true;
+ }
+ return false;
+}
+
+bool
cp_msg_drv_sta_status_req_receive (cp_t *ctx, cp_mme_rx_t *mme)
{
dbg_assert (ctx);