--- a/src/lte/model/epc-x2-header.h Fri Jul 20 18:55:47 2012 +0200
+++ b/src/lte/model/epc-x2-header.h Wed Aug 01 12:40:15 2012 +0200
@@ -21,10 +21,15 @@
#ifndef EPC_X2_HEADER_H
#define EPC_X2_HEADER_H
+#include "ns3/epc-x2-sap.h"
#include "ns3/header.h"
+#include <vector>
+
+
namespace ns3 {
+
class EpcX2Header : public Header
{
public:
@@ -45,20 +50,28 @@
uint8_t GetProcedureCode () const;
void SetProcedureCode (uint8_t procedureCode);
+ void SetLengthOfIes (uint32_t lengthOfIes);
+ void SetNumberOfIes (uint32_t numberOfIes);
+
enum ProcedureCode_t {
- HANDOVER_PREPARATION_TYPE = 0
+ HandoverPreparation = 0
};
enum TypeOfMessage_t {
- INITIATING_MESSAGE = 0,
- SUCCESSFUL_OUTCOME = 1,
- UNSUCCESSFUL_OUTCOME = 2
+ InitiatingMessage = 0,
+ SuccessfulOutcome = 1,
+ UnsuccessfulOutcome = 2
};
private:
+ uint32_t m_headerLength;
+
uint8_t m_messageType;
uint8_t m_procedureCode;
+
+ uint32_t m_lengthOfIes;
+ uint32_t m_numberOfIes;
};
@@ -74,7 +87,10 @@
virtual void Serialize (Buffer::Iterator start) const;
virtual uint32_t Deserialize (Buffer::Iterator start);
virtual void Print (std::ostream &os) const;
-
+
+
+ uint16_t GetOldEnbUeX2apId () const;
+ void SetOldEnbUeX2apId (uint16_t x2apId);
uint16_t GetCause () const;
void SetCause (uint16_t cause);
@@ -82,11 +98,28 @@
uint16_t GetTargetCellId () const;
void SetTargetCellId (uint16_t targetCellId);
+ std::vector <EpcX2Sap::ErabToBeSetupItem> GetBearers () const;
+ void SetBearers (std::vector <EpcX2Sap::ErabToBeSetupItem> bearers);
+
+ uint64_t GetUeAggregateMaxBitRateDownlink () const;
+ void SetUeAggregateMaxBitRateDownlink (uint64_t bitRate);
+
+ uint64_t GetUeAggregateMaxBitRateUplink () const;
+ void SetUeAggregateMaxBitRateUplink (uint64_t bitRate);
+
+ uint32_t GetLengthOfIes () const;
+ uint32_t GetNumberOfIes () const;
+
private:
- uint16_t m_oldEnbUeX2apId; // TODO MRE When and why this is used?
+ uint32_t m_numberOfIes;
+ uint32_t m_headerLength;
+
+ uint16_t m_oldEnbUeX2apId;
uint16_t m_cause;
uint16_t m_targetCellId;
- std::list<uint16_t> m_erabsList;
+ uint64_t m_ueAggregateMaxBitRateDownlink;
+ uint64_t m_ueAggregateMaxBitRateUplink;
+ std::vector <EpcX2Sap::ErabToBeSetupItem> m_erabsToBeSetupList;
};
@@ -104,17 +137,23 @@
virtual void Print (std::ostream &os) const;
- uint16_t GetCause () const;
- void SetCause (uint16_t cause);
+ uint16_t GetOldEnbUeX2apId () const;
+ void SetOldEnbUeX2apId (uint16_t x2apId);
+
+ uint16_t GetNewEnbUeX2apId () const;
+ void SetNewEnbUeX2apId (uint16_t x2apId);
- uint16_t GetTargetCellId () const;
- void SetTargetCellId (uint16_t targetCellId);
+ std::vector <EpcX2Sap::ErabAdmittedItem> GetAdmittedBearers () const;
+ void SetAdmittedBearers (std::vector <EpcX2Sap::ErabAdmittedItem> bearers);
+
+ std::vector <EpcX2Sap::ErabNotAdmittedItem> GetNotAdmittedBearers () const;
+ void SetNotAdmittedBearers (std::vector <EpcX2Sap::ErabNotAdmittedItem> bearers);
private:
- uint16_t m_oldEnbUeX2apId; // TODO MRE When and why this is used?
- uint16_t m_cause;
- uint16_t m_targetCellId;
- std::list<uint16_t> m_erabsList;
+ uint16_t m_oldEnbUeX2apId;
+ uint16_t m_newEnbUeX2apId;
+ std::vector <EpcX2Sap::ErabAdmittedItem> m_erabsAdmittedList;
+ std::vector <EpcX2Sap::ErabNotAdmittedItem> m_erabsNotAdmittedList;
};