From df2a457d157e3d5322d89f34ca1a47aad89d84c0 Mon Sep 17 00:00:00 2001
From: Lionel Gauthier <lionel.gauthier@eurecom.fr>
Date: Wed, 15 Jan 2014 13:55:35 +0000
Subject: [PATCH] Added RLC AM PDUS

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4883 818b1a75-f10b-46b9-bf7c-635c3b92a50f
---
 openair2/COMMON/messages_def.h       |  1 +
 openair2/COMMON/messages_types.h     |  1 +
 openair2/COMMON/phy_messages_types.h |  2 +-
 openair2/COMMON/ral_messages_types.h | 34 +++++++++++++++++++++++++++-
 4 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/openair2/COMMON/messages_def.h b/openair2/COMMON/messages_def.h
index cf5302dda3..4e79804822 100644
--- a/openair2/COMMON/messages_def.h
+++ b/openair2/COMMON/messages_def.h
@@ -11,4 +11,5 @@
 #include "sctp_messages_def.h"
 #include "x2ap_messages_def.h"
 #include "ral_messages_def.h"
+#include "rlc_messages_def.h"
 
diff --git a/openair2/COMMON/messages_types.h b/openair2/COMMON/messages_types.h
index 6a64f45184..6a7cbf52ac 100644
--- a/openair2/COMMON/messages_types.h
+++ b/openair2/COMMON/messages_types.h
@@ -19,5 +19,6 @@
 #include "sctp_messages_types.h"
 #include "x2ap_messages_types.h"
 #include "ral_messages_types.h"
+#include "rlc_messages_types.h"
 
 #endif /* MESSAGES_TYPES_H_ */
diff --git a/openair2/COMMON/phy_messages_types.h b/openair2/COMMON/phy_messages_types.h
index a079b8877b..fb0913b5c0 100644
--- a/openair2/COMMON/phy_messages_types.h
+++ b/openair2/COMMON/phy_messages_types.h
@@ -67,7 +67,7 @@ typedef struct PhyMeasThresholdReq_s {
 
 typedef struct PhyMeasReportInd_s {
     ral_threshold_t            threshold;
-    ral_link_param_type_t      link_param_type;
+    ral_link_param_t           link_param;
 } PhyMeasReportInd;
 
 // UE: PHY -> RRC messages
diff --git a/openair2/COMMON/ral_messages_types.h b/openair2/COMMON/ral_messages_types.h
index 00c2748d81..b46067365e 100755
--- a/openair2/COMMON/ral_messages_types.h
+++ b/openair2/COMMON/ral_messages_types.h
@@ -173,6 +173,7 @@ typedef struct rrc_ral_connection_reconfiguration_ho_ind_s {
 
 #define RAL_ABOVE_THRESHOLD                                    MIH_C_ABOVE_THRESHOLD
 #define RAL_BELOW_THRESHOLD                                    MIH_C_BELOW_THRESHOLD
+#define RAL_NO_THRESHOLD                                       0xFF
 typedef struct ral_threshold_s {
     uint16_t        threshold_val;
     uint8_t         threshold_xdir;
@@ -224,6 +225,37 @@ typedef struct ral_link_param_type_s {
     } _union;
 } ral_link_param_type_t;
 
+typedef uint16_t               ral_link_param_val_t;
+typedef MIH_C_NUM_COS_TYPES_T  ral_num_cos_types_t  ;
+
+typedef struct ral_qos_param_val_s {
+    ral_choice_t                 choice;
+    union  {
+        ral_num_cos_types_t      num_qos_types;
+        LIST(MIH_C_MIN_PK_TX_DELAY, min_pk_tx_delay)
+        LIST(MIH_C_AVG_PK_TX_DELAY, avg_pk_tx_delay)
+        LIST(MIH_C_MAX_PK_TX_DELAY, max_pk_tx_delay)
+        LIST(MIH_C_PK_DELAY_JITTER, pk_delay_jitter)
+        LIST(MIH_C_PK_LOSS_RATE,    pk_loss_rate)
+    } _union;
+} ral_qos_param_val_t;
+#define RAL_QOS_PARAM_VAL_CHOICE_NUM_QOS_TYPES   MIH_C_QOS_PARAM_VAL_CHOICE_NUM_QOS_TYPES
+#define RAL_QOS_PARAM_VAL_CHOICE_MIN_PK_TX_DELAY MIH_C_QOS_PARAM_VAL_CHOICE_MIN_PK_TX_DELAY
+#define RAL_QOS_PARAM_VAL_CHOICE_AVG_PK_TX_DELAY MIH_C_QOS_PARAM_VAL_CHOICE_AVG_PK_TX_DELAY
+#define RAL_QOS_PARAM_VAL_CHOICE_MAX_PK_TX_DELAY MIH_C_QOS_PARAM_VAL_CHOICE_MAX_PK_TX_DELAY
+#define RAL_QOS_PARAM_VAL_CHOICE_PK_DELAY_JITTER MIH_C_QOS_PARAM_VAL_CHOICE_PK_DELAY_JITTER
+#define RAL_QOS_PARAM_VAL_CHOICE_PK_LOSS_RATE    MIH_C_QOS_PARAM_VAL_CHOICE_PK_LOSS_RATE
+
+typedef struct ral_link_param_s {
+    ral_link_param_type_t      link_param_type;
+    ral_choice_t               choice;
+    union  {
+        ral_link_param_val_t   link_param_val;
+        ral_qos_param_val_t    qos_param_val;
+    } _union;
+} ral_link_param_t;
+#define RAL_LINK_PARAM_CHOICE_LINK_PARAM_VAL MIH_C_LINK_PARAM_CHOICE_LINK_PARAM_VAL
+#define RAL_LINK_PARAM_CHOICE_QOS_PARAM_VAL  MIH_C_LINK_PARAM_CHOICE_QOS_PARAM_VAL
 
 typedef struct ral_link_cfg_param_s {
     ral_link_param_type_t        link_param_type;
@@ -275,7 +307,7 @@ typedef struct rrc_ral_configure_threshold_conf_s {
 
 typedef struct rrc_ral_measurement_report_ind_s{
     ral_threshold_t            threshold;
-    ral_link_param_type_t      link_param_type;
+    ral_link_param_t           link_param;
 }rrc_ral_measurement_report_ind_t;
 
 
-- 
GitLab