src/lte/model/epc-x2-header.h
author Nicola Baldo <nbaldo@cttc.es>
Mon, 04 Feb 2013 18:47:25 +0100
changeset 9653 382d27da8905
parent 9480 55db96d61f2c
child 10218 97da49da2d6c
permissions -rw-r--r--
merged lena-dev with ns-3-dev
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9331
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
     1
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
     2
/*
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
     3
 * Copyright (c) 2012 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
     4
 *
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
     8
 *
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    12
 * GNU General Public License for more details.
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    13
 *
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    17
 *
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    18
 * Author: Manuel Requena <manuel.requena@cttc.es>
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    19
 */
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    20
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    21
#ifndef EPC_X2_HEADER_H
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    22
#define EPC_X2_HEADER_H
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    23
9396
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
    24
#include "ns3/epc-x2-sap.h"
9331
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    25
#include "ns3/header.h"
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    26
9396
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
    27
#include <vector>
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
    28
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
    29
9331
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    30
namespace ns3 {
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    31
9396
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
    32
9331
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    33
class EpcX2Header : public Header
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    34
{
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    35
public:
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    36
  EpcX2Header ();
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    37
  virtual ~EpcX2Header ();
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    38
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    39
  static TypeId GetTypeId (void);
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    40
  virtual TypeId GetInstanceTypeId (void) const;
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    41
  virtual uint32_t GetSerializedSize (void) const;
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    42
  virtual void Serialize (Buffer::Iterator start) const;
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    43
  virtual uint32_t Deserialize (Buffer::Iterator start);
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    44
  virtual void Print (std::ostream &os) const;
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    45
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    46
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    47
  uint8_t GetMessageType () const;
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    48
  void SetMessageType (uint8_t messageType);
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    49
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    50
  uint8_t GetProcedureCode () const;
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    51
  void SetProcedureCode (uint8_t procedureCode);
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    52
9396
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
    53
  void SetLengthOfIes (uint32_t lengthOfIes);
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
    54
  void SetNumberOfIes (uint32_t numberOfIes);
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
    55
9331
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    56
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    57
  enum ProcedureCode_t {
9404
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
    58
    HandoverPreparation     = 0,
9434
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
    59
    LoadIndication          = 2,
9478
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
    60
    SnStatusTransfer        = 4,
9434
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
    61
    UeContextRelease        = 5,
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
    62
    ResourceStatusReporting = 10
9331
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    63
  };
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    64
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    65
  enum TypeOfMessage_t {
9396
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
    66
    InitiatingMessage       = 0,
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
    67
    SuccessfulOutcome       = 1,
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
    68
    UnsuccessfulOutcome     = 2
9331
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    69
  };
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    70
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    71
private:
9396
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
    72
  uint32_t m_headerLength;
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
    73
9331
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    74
  uint8_t m_messageType;
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    75
  uint8_t m_procedureCode;
9396
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
    76
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
    77
  uint32_t m_lengthOfIes;
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
    78
  uint32_t m_numberOfIes;
9331
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    79
};
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    80
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    81
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    82
class EpcX2HandoverRequestHeader : public Header
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    83
{
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    84
public:
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    85
  EpcX2HandoverRequestHeader ();
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    86
  virtual ~EpcX2HandoverRequestHeader ();
9417
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
    87
9331
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    88
  static TypeId GetTypeId (void);
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    89
  virtual TypeId GetInstanceTypeId (void) const;
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    90
  virtual uint32_t GetSerializedSize (void) const;
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    91
  virtual void Serialize (Buffer::Iterator start) const;
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    92
  virtual uint32_t Deserialize (Buffer::Iterator start);
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    93
  virtual void Print (std::ostream &os) const;
9396
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
    94
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
    95
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
    96
  uint16_t GetOldEnbUeX2apId () const;
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
    97
  void SetOldEnbUeX2apId (uint16_t x2apId);
9417
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
    98
9331
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
    99
  uint16_t GetCause () const;
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   100
  void SetCause (uint16_t cause);
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   101
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   102
  uint16_t GetTargetCellId () const;
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   103
  void SetTargetCellId (uint16_t targetCellId);
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   104
9437
9c5081f582ad Add support for MME UE S1AP ID in HandoverRequest X2 primitive
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   105
  uint32_t GetMmeUeS1apId () const;
9c5081f582ad Add support for MME UE S1AP ID in HandoverRequest X2 primitive
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   106
  void SetMmeUeS1apId (uint32_t mmeUeS1apId);
9c5081f582ad Add support for MME UE S1AP ID in HandoverRequest X2 primitive
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   107
9396
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   108
  std::vector <EpcX2Sap::ErabToBeSetupItem> GetBearers () const;
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   109
  void SetBearers (std::vector <EpcX2Sap::ErabToBeSetupItem> bearers);
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   110
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   111
  uint64_t GetUeAggregateMaxBitRateDownlink () const;
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   112
  void SetUeAggregateMaxBitRateDownlink (uint64_t bitRate);
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   113
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   114
  uint64_t GetUeAggregateMaxBitRateUplink () const;
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   115
  void SetUeAggregateMaxBitRateUplink (uint64_t bitRate);
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   116
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   117
  uint32_t GetLengthOfIes () const;
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   118
  uint32_t GetNumberOfIes () const;
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   119
9331
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   120
private:
9396
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   121
  uint32_t          m_numberOfIes;
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   122
  uint32_t          m_headerLength;
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   123
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   124
  uint16_t          m_oldEnbUeX2apId;
9331
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   125
  uint16_t          m_cause;
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   126
  uint16_t          m_targetCellId;
9437
9c5081f582ad Add support for MME UE S1AP ID in HandoverRequest X2 primitive
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   127
  uint32_t          m_mmeUeS1apId;
9396
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   128
  uint64_t          m_ueAggregateMaxBitRateDownlink;
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   129
  uint64_t          m_ueAggregateMaxBitRateUplink;
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   130
  std::vector <EpcX2Sap::ErabToBeSetupItem> m_erabsToBeSetupList;
9331
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   131
};
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   132
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   133
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   134
class EpcX2HandoverRequestAckHeader : public Header
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   135
{
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   136
public:
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   137
  EpcX2HandoverRequestAckHeader ();
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   138
  virtual ~EpcX2HandoverRequestAckHeader ();
9455
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   139
9331
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   140
  static TypeId GetTypeId (void);
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   141
  virtual TypeId GetInstanceTypeId (void) const;
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   142
  virtual uint32_t GetSerializedSize (void) const;
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   143
  virtual void Serialize (Buffer::Iterator start) const;
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   144
  virtual uint32_t Deserialize (Buffer::Iterator start);
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   145
  virtual void Print (std::ostream &os) const;
9417
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   146
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   147
9396
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   148
  uint16_t GetOldEnbUeX2apId () const;
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   149
  void SetOldEnbUeX2apId (uint16_t x2apId);
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   150
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   151
  uint16_t GetNewEnbUeX2apId () const;
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   152
  void SetNewEnbUeX2apId (uint16_t x2apId);
9331
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   153
9396
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   154
  std::vector <EpcX2Sap::ErabAdmittedItem> GetAdmittedBearers () const;
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   155
  void SetAdmittedBearers (std::vector <EpcX2Sap::ErabAdmittedItem> bearers);
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   156
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   157
  std::vector <EpcX2Sap::ErabNotAdmittedItem> GetNotAdmittedBearers () const;
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   158
  void SetNotAdmittedBearers (std::vector <EpcX2Sap::ErabNotAdmittedItem> bearers);
9331
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   159
9410
fa212cd4e671 management of the bearers in the X2 messages
Manuel Requena <manuel.requena@cttc.es>
parents: 9404
diff changeset
   160
  uint32_t GetLengthOfIes () const;
fa212cd4e671 management of the bearers in the X2 messages
Manuel Requena <manuel.requena@cttc.es>
parents: 9404
diff changeset
   161
  uint32_t GetNumberOfIes () const;
fa212cd4e671 management of the bearers in the X2 messages
Manuel Requena <manuel.requena@cttc.es>
parents: 9404
diff changeset
   162
9331
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   163
private:
9410
fa212cd4e671 management of the bearers in the X2 messages
Manuel Requena <manuel.requena@cttc.es>
parents: 9404
diff changeset
   164
  uint32_t          m_numberOfIes;
fa212cd4e671 management of the bearers in the X2 messages
Manuel Requena <manuel.requena@cttc.es>
parents: 9404
diff changeset
   165
  uint32_t          m_headerLength;
fa212cd4e671 management of the bearers in the X2 messages
Manuel Requena <manuel.requena@cttc.es>
parents: 9404
diff changeset
   166
9396
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   167
  uint16_t          m_oldEnbUeX2apId;
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   168
  uint16_t          m_newEnbUeX2apId;
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   169
  std::vector <EpcX2Sap::ErabAdmittedItem>     m_erabsAdmittedList;
f6d2e9aff2de Add some IEs to the X2 message headers
Manuel Requena <manuel.requena@cttc.es>
parents: 9331
diff changeset
   170
  std::vector <EpcX2Sap::ErabNotAdmittedItem>  m_erabsNotAdmittedList;
9331
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   171
};
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   172
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   173
9455
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   174
class EpcX2HandoverPreparationFailureHeader : public Header
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   175
{
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   176
public:
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   177
  EpcX2HandoverPreparationFailureHeader ();
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   178
  virtual ~EpcX2HandoverPreparationFailureHeader ();
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   179
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   180
  static TypeId GetTypeId (void);
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   181
  virtual TypeId GetInstanceTypeId (void) const;
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   182
  virtual uint32_t GetSerializedSize (void) const;
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   183
  virtual void Serialize (Buffer::Iterator start) const;
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   184
  virtual uint32_t Deserialize (Buffer::Iterator start);
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   185
  virtual void Print (std::ostream &os) const;
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   186
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   187
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   188
  uint16_t GetOldEnbUeX2apId () const;
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   189
  void SetOldEnbUeX2apId (uint16_t x2apId);
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   190
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   191
  uint16_t GetCause () const;
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   192
  void SetCause (uint16_t cause);
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   193
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   194
  uint16_t GetCriticalityDiagnostics () const;
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   195
  void SetCriticalityDiagnostics (uint16_t criticalityDiagnostics);
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   196
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   197
  uint32_t GetLengthOfIes () const;
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   198
  uint32_t GetNumberOfIes () const;
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   199
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   200
private:
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   201
  uint32_t          m_numberOfIes;
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   202
  uint32_t          m_headerLength;
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   203
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   204
  uint16_t          m_oldEnbUeX2apId;
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   205
  uint16_t          m_cause;
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   206
  uint16_t          m_criticalityDiagnostics;
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   207
};
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   208
9d73d503574d Add HandoverPreparationFailure X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9434
diff changeset
   209
9478
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   210
class EpcX2SnStatusTransferHeader : public Header
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   211
{
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   212
public:
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   213
  EpcX2SnStatusTransferHeader ();
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   214
  virtual ~EpcX2SnStatusTransferHeader ();
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   215
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   216
  static TypeId GetTypeId (void);
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   217
  virtual TypeId GetInstanceTypeId (void) const;
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   218
  virtual uint32_t GetSerializedSize (void) const;
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   219
  virtual void Serialize (Buffer::Iterator start) const;
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   220
  virtual uint32_t Deserialize (Buffer::Iterator start);
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   221
  virtual void Print (std::ostream &os) const;
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   222
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   223
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   224
  uint16_t GetOldEnbUeX2apId () const;
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   225
  void SetOldEnbUeX2apId (uint16_t x2apId);
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   226
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   227
  uint16_t GetNewEnbUeX2apId () const;
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   228
  void SetNewEnbUeX2apId (uint16_t x2apId);
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   229
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   230
  std::vector <EpcX2Sap::ErabsSubjectToStatusTransferItem> GetErabsSubjectToStatusTransferList () const;
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   231
  void SetErabsSubjectToStatusTransferList (std::vector <EpcX2Sap::ErabsSubjectToStatusTransferItem> erabs);
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   232
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   233
  uint32_t GetLengthOfIes () const;
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   234
  uint32_t GetNumberOfIes () const;
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   235
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   236
private:
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   237
  uint32_t          m_numberOfIes;
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   238
  uint32_t          m_headerLength;
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   239
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   240
  uint16_t          m_oldEnbUeX2apId;
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   241
  uint16_t          m_newEnbUeX2apId;
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   242
  std::vector <EpcX2Sap::ErabsSubjectToStatusTransferItem> m_erabsSubjectToStatusTransferList;
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   243
};
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   244
f17713be49a3 Add SnStatusTransfer X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9455
diff changeset
   245
9404
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
   246
class EpcX2UeContextReleaseHeader : public Header
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
   247
{
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
   248
public:
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
   249
  EpcX2UeContextReleaseHeader ();
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
   250
  virtual ~EpcX2UeContextReleaseHeader ();
9417
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   251
9404
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
   252
  static TypeId GetTypeId (void);
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
   253
  virtual TypeId GetInstanceTypeId (void) const;
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
   254
  virtual uint32_t GetSerializedSize (void) const;
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
   255
  virtual void Serialize (Buffer::Iterator start) const;
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
   256
  virtual uint32_t Deserialize (Buffer::Iterator start);
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
   257
  virtual void Print (std::ostream &os) const;
9417
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   258
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   259
9404
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
   260
  uint16_t GetOldEnbUeX2apId () const;
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
   261
  void SetOldEnbUeX2apId (uint16_t x2apId);
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
   262
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
   263
  uint16_t GetNewEnbUeX2apId () const;
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
   264
  void SetNewEnbUeX2apId (uint16_t x2apId);
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
   265
9410
fa212cd4e671 management of the bearers in the X2 messages
Manuel Requena <manuel.requena@cttc.es>
parents: 9404
diff changeset
   266
  uint32_t GetLengthOfIes () const;
fa212cd4e671 management of the bearers in the X2 messages
Manuel Requena <manuel.requena@cttc.es>
parents: 9404
diff changeset
   267
  uint32_t GetNumberOfIes () const;
fa212cd4e671 management of the bearers in the X2 messages
Manuel Requena <manuel.requena@cttc.es>
parents: 9404
diff changeset
   268
9404
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
   269
private:
9410
fa212cd4e671 management of the bearers in the X2 messages
Manuel Requena <manuel.requena@cttc.es>
parents: 9404
diff changeset
   270
  uint32_t          m_numberOfIes;
fa212cd4e671 management of the bearers in the X2 messages
Manuel Requena <manuel.requena@cttc.es>
parents: 9404
diff changeset
   271
  uint32_t          m_headerLength;
fa212cd4e671 management of the bearers in the X2 messages
Manuel Requena <manuel.requena@cttc.es>
parents: 9404
diff changeset
   272
9404
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
   273
  uint16_t          m_oldEnbUeX2apId;
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
   274
  uint16_t          m_newEnbUeX2apId;
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
   275
};
1f737f190823 Add UE Context Release X2 message
Manuel Requena <manuel.requena@cttc.es>
parents: 9396
diff changeset
   276
9417
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   277
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   278
class EpcX2LoadInformationHeader : public Header
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   279
{
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   280
public:
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   281
  EpcX2LoadInformationHeader ();
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   282
  virtual ~EpcX2LoadInformationHeader ();
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   283
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   284
  static TypeId GetTypeId (void);
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   285
  virtual TypeId GetInstanceTypeId (void) const;
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   286
  virtual uint32_t GetSerializedSize (void) const;
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   287
  virtual void Serialize (Buffer::Iterator start) const;
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   288
  virtual uint32_t Deserialize (Buffer::Iterator start);
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   289
  virtual void Print (std::ostream &os) const;
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   290
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   291
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   292
  std::vector <EpcX2Sap::CellInformationItem> GetCellInformationList () const;
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   293
  void SetCellInformationList (std::vector <EpcX2Sap::CellInformationItem> cellInformationList);
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   294
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   295
  uint32_t GetLengthOfIes () const;
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   296
  uint32_t GetNumberOfIes () const;
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   297
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   298
private:
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   299
  uint32_t          m_numberOfIes;
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   300
  uint32_t          m_headerLength;
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   301
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   302
  std::vector <EpcX2Sap::CellInformationItem> m_cellInformationList;
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   303
};
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   304
dc76cb60379a Add Load Informatin X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9410
diff changeset
   305
9434
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   306
class EpcX2ResourceStatusUpdateHeader : public Header
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   307
{
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   308
public:
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   309
  EpcX2ResourceStatusUpdateHeader ();
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   310
  virtual ~EpcX2ResourceStatusUpdateHeader ();
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   311
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   312
  static TypeId GetTypeId (void);
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   313
  virtual TypeId GetInstanceTypeId (void) const;
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   314
  virtual uint32_t GetSerializedSize (void) const;
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   315
  virtual void Serialize (Buffer::Iterator start) const;
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   316
  virtual uint32_t Deserialize (Buffer::Iterator start);
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   317
  virtual void Print (std::ostream &os) const;
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   318
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   319
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   320
  uint16_t GetEnb1MeasurementId () const;
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   321
  void SetEnb1MeasurementId (uint16_t enb1MeasurementId);
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   322
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   323
  uint16_t GetEnb2MeasurementId () const;
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   324
  void SetEnb2MeasurementId (uint16_t enb2MeasurementId);
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   325
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   326
  std::vector <EpcX2Sap::CellMeasurementResultItem> GetCellMeasurementResultList () const;
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   327
  void SetCellMeasurementResultList (std::vector <EpcX2Sap::CellMeasurementResultItem> cellMeasurementResultList);
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   328
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   329
  uint32_t GetLengthOfIes () const;
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   330
  uint32_t GetNumberOfIes () const;
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   331
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   332
private:
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   333
  uint32_t          m_numberOfIes;
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   334
  uint32_t          m_headerLength;
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   335
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   336
  uint16_t          m_enb1MeasurementId;
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   337
  uint16_t          m_enb2MeasurementId;
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   338
  std::vector <EpcX2Sap::CellMeasurementResultItem> m_cellMeasurementResultList;
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   339
};
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   340
6c3ce4dbad56 Add ResourceStatusUpdate X2 message header
Manuel Requena <manuel.requena@cttc.es>
parents: 9417
diff changeset
   341
9331
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   342
} // namespace ns3
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   343
6db5b873966c Add draft of X2AP protocol
Manuel Requena <manuel.requena@cttc.es>
parents:
diff changeset
   344
#endif // EPC_X2_HEADER_H