summaryrefslogtreecommitdiff
path: root/cesar/cp/sta
diff options
context:
space:
mode:
Diffstat (limited to 'cesar/cp/sta')
-rw-r--r--cesar/cp/sta/action/src/vs.c29
-rw-r--r--cesar/cp/sta/action/vs.h8
2 files changed, 37 insertions, 0 deletions
diff --git a/cesar/cp/sta/action/src/vs.c b/cesar/cp/sta/action/src/vs.c
index 5de6fc29ab..6f307fdae2 100644
--- a/cesar/cp/sta/action/src/vs.c
+++ b/cesar/cp/sta/action/src/vs.c
@@ -21,6 +21,7 @@
#include "cp/sta/action/misc.h"
#include "ce/rx/bitloading/nsr.h"
#include "mac/sar/sar_pb_stats.h"
+#include "cl/cl_mactotei.h"
/**
* Handle STARTED => VS_GET_TONEMAP.REQ.
@@ -632,3 +633,31 @@ cp_sta_action_vs__started__vs_get_pb_stats_req (cp_t *ctx, cp_mme_rx_t *mme)
sar_read_pb_stats_end (ctx->sar);
}
}
+
+void
+cp_sta_action_vs__started__vs_get_mactotei_req (cp_t *ctx, cp_mme_rx_t *mme)
+{
+ dbg_assert(ctx);
+ dbg_assert(mme);
+
+ if (cp_msg_vs_get_mactotei_req_receive (ctx, mme))
+ {
+ cp_mme_tx_t *mme_tx;
+ uint nb_entry = cl_mactotei_table_size (ctx->cl);
+
+ mme_tx = cp_msg_vs_get_mactotei_cnf_send_begin (ctx, &mme->peer,
+ nb_entry);
+ dbg_assert (mme_tx);
+ uint i;
+ for (i=0; i<nb_entry; i++)
+ {
+ cl_mactotei_entry_t data;
+ cl_mactotei_table_get_entry (ctx->cl, i, &data);
+
+ cp_msg_vs_get_mactotei_cnf_send_entry (ctx, mme_tx, data.mac,
+ (cp_tei_t) data.tei,
+ data.tag);
+ }
+ cp_msg_vs_get_mactotei_cnf_send_end (ctx, mme_tx);
+ }
+}
diff --git a/cesar/cp/sta/action/vs.h b/cesar/cp/sta/action/vs.h
index eefb1019be..4ab9016f03 100644
--- a/cesar/cp/sta/action/vs.h
+++ b/cesar/cp/sta/action/vs.h
@@ -74,6 +74,14 @@ void
cp_sta_action_vs__started__vs_get_pb_stats_req (cp_t *ctx, cp_mme_rx_t *mme);
/**
+ * Handle STARTED => VS_GET_MACTOTEI.REQ.
+ * \param ctx control plane context
+ * \param mme received MME handle
+ */
+void
+cp_sta_action_vs__started__vs_get_mactotei_req (cp_t *ctx, cp_mme_rx_t *mme);
+
+/**
* Handle STARTED => VS_GET_CE_STATS.REQ.
* \param ctx control plane context
* \param mme received MME handle