src/lte/helper/epc-helper.h
author Manuel Requena <manuel.requena@cttc.es>
Fri, 14 Dec 2012 16:54:29 +0100
changeset 9556 29b3091d8fb8
parent 9489 6bcfc2ee2332
parent 9554 ab3b569597fe
child 10442 a420385d5438
permissions -rw-r--r--
merge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8378
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     1
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     2
/*
9488
3e4545c949d1 Add parameters and default values of the X2 links
Manuel Requena <manuel.requena@cttc.es>
parents: 9345
diff changeset
     3
 * Copyright (c) 2011-2012 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
8378
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     4
 *
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     8
 *
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    12
 * GNU General Public License for more details.
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    13
 *
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    17
 *
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    18
 * Author: Jaume Nin <jnin@cttc.es>
8380
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
    19
 *         Nicola Baldo <nbaldo@cttc.es>
9488
3e4545c949d1 Add parameters and default values of the X2 links
Manuel Requena <manuel.requena@cttc.es>
parents: 9345
diff changeset
    20
 *         Manuel Requena <manuel.requena@cttc.es>
8378
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    21
 */
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    22
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    23
#ifndef EPC_HELPER_H
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    24
#define EPC_HELPER_H
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    25
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    26
#include <ns3/object.h>
8380
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
    27
#include <ns3/ipv4-address-helper.h>
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
    28
#include <ns3/data-rate.h>
8463
cc818aa536a5 renamed LteTft --> EpcTft
Nicola Baldo <nbaldo@cttc.es>
parents: 8450
diff changeset
    29
#include <ns3/epc-tft.h>
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8568
diff changeset
    30
#include <ns3/eps-bearer.h>
8378
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    31
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    32
namespace ns3 {
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    33
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    34
class Node;
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    35
class NetDevice;
8568
fc43230a29f5 fixed valgrind errors of epc-s1u tests
Nicola Baldo <nbaldo@cttc.es>
parents: 8463
diff changeset
    36
class VirtualNetDevice;
8380
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
    37
class EpcSgwPgwApplication;
9326
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
    38
class EpcX2;
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents: 9345
diff changeset
    39
class EpcMme;
8378
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    40
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    41
/**
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    42
 * \brief Helper class to handle the creation of the EPC entities and protocols.
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    43
 *
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    44
 * This Helper will create an EPC network topology comprising of a
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    45
 * single node that implements both the SGW and PGW functionality, and
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    46
 * is connected to all the eNBs in the simulation by means of the S1-U
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    47
 * interface. 
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    48
 */
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    49
class EpcHelper : public Object
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    50
{
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    51
public:
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    52
  
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    53
  /** 
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    54
   * Constructor
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    55
   */
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    56
  EpcHelper ();
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    57
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    58
  /** 
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    59
   * Destructor
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    60
   */  
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    61
  virtual ~EpcHelper ();
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    62
  
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    63
  // inherited from Object
8380
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
    64
  static TypeId GetTypeId (void);
8568
fc43230a29f5 fixed valgrind errors of epc-s1u tests
Nicola Baldo <nbaldo@cttc.es>
parents: 8463
diff changeset
    65
  virtual void DoDispose ();
8378
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    66
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    67
  
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    68
  /** 
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    69
   * Add an eNB to the EPC
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    70
   * 
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    71
   * \param enbNode the previosuly created eNB node which is to be
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    72
   * added to the EPC
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    73
   * \param lteEnbNetDevice the LteEnbNetDevice of the eNB node
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents: 9345
diff changeset
    74
   * \param cellId ID of the eNB
8378
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    75
   */
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents: 9345
diff changeset
    76
  void AddEnb (Ptr<Node> enbNode, Ptr<NetDevice> lteEnbNetDevice, uint16_t cellId);
8378
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    77
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8568
diff changeset
    78
  /** 
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents: 9345
diff changeset
    79
   * Notify the EPC of the existance of a new UE which might attach at a later time
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8568
diff changeset
    80
   * 
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8568
diff changeset
    81
   * \param ueLteDevice the UE device to be attached
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8568
diff changeset
    82
   * \param imsi the unique identifier of the UE
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8568
diff changeset
    83
   */
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents: 9345
diff changeset
    84
  void AddUe (Ptr<NetDevice> ueLteDevice, uint64_t imsi);
8378
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    85
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    86
  /** 
9326
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
    87
   * Add an X2 interface between two eNB
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
    88
   * 
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
    89
   * \param enbNode1 one eNB peer of the X2 interface
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
    90
   * \param enbNode2 the other eNB peer of the X2 interface
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
    91
   */
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
    92
  void AddX2Interface (Ptr<Node> enbNode1, Ptr<Node> enbNode2);
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
    93
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
    94
  /** 
8378
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    95
   * Activate an EPS bearer, setting up the corresponding S1-U tunnel.
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    96
   * 
8380
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
    97
   * 
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
    98
   * 
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8568
diff changeset
    99
   * \param ueLteDevice the Ipv4-enabled device of the UE, normally
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8568
diff changeset
   100
   * connected via the LTE radio interface
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8568
diff changeset
   101
   * \param imsi the unique identifier of the UE
8380
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
   102
   * \param tft the Traffic Flow Template of the new bearer
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8568
diff changeset
   103
   * \param bearer struct describing the characteristics of the EPS bearer to be activated
8378
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   104
   */
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8568
diff changeset
   105
  void ActivateEpsBearer (Ptr<NetDevice> ueLteDevice, uint64_t imsi, Ptr<EpcTft> tft, EpsBearer bearer);
8378
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   106
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   107
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   108
  /** 
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   109
   * 
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   110
   * \return a pointer to the node implementing PGW
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   111
   * functionality. Note that in this particular implementation this
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   112
   * node will also hold the SGW functionality. The primary use
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   113
   * intended for this method is to allow the user to configure the Gi
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   114
   * interface of the PGW, i.e., to connect the PGW to the internet.
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   115
   */
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   116
  Ptr<Node> GetPgwNode ();
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   117
8380
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
   118
  /** 
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
   119
   * Assign IPv4 addresses to UE devices
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
   120
   * 
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
   121
   * \param ueDevices the set of UE devices
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
   122
   * 
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
   123
   * \return the interface container, \see Ipv4AddressHelper::Assign() which has similar semantics
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
   124
   */
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
   125
  Ipv4InterfaceContainer AssignUeIpv4Address (NetDeviceContainer ueDevices);
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
   126
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
   127
8386
419cbd9e357f S1-U now working also in uplink
Nicola Baldo <nbaldo@cttc.es>
parents: 8385
diff changeset
   128
  /** 
419cbd9e357f S1-U now working also in uplink
Nicola Baldo <nbaldo@cttc.es>
parents: 8385
diff changeset
   129
   * 
419cbd9e357f S1-U now working also in uplink
Nicola Baldo <nbaldo@cttc.es>
parents: 8385
diff changeset
   130
   * \return the address of the Default Gateway to be used by UEs to reach the internet
419cbd9e357f S1-U now working also in uplink
Nicola Baldo <nbaldo@cttc.es>
parents: 8385
diff changeset
   131
   */
419cbd9e357f S1-U now working also in uplink
Nicola Baldo <nbaldo@cttc.es>
parents: 8385
diff changeset
   132
  Ipv4Address GetUeDefaultGatewayAddress ();
419cbd9e357f S1-U now working also in uplink
Nicola Baldo <nbaldo@cttc.es>
parents: 8385
diff changeset
   133
419cbd9e357f S1-U now working also in uplink
Nicola Baldo <nbaldo@cttc.es>
parents: 8385
diff changeset
   134
8380
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
   135
8378
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   136
private:
9326
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
   137
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
   138
  /**
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
   139
   * SGW-PGW network element
8380
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
   140
   */
8378
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   141
8380
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
   142
  /** 
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
   143
   * helper to assign addresses to UE devices as well as to the TUN device of the SGW/PGW
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
   144
   */
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
   145
  Ipv4AddressHelper m_ueAddressHelper; 
8378
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   146
  
8380
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
   147
  Ptr<Node> m_sgwPgw; 
f615b30c26e1 S1-U working in downlink
Nicola Baldo <nbaldo@cttc.es>
parents: 8378
diff changeset
   148
  Ptr<EpcSgwPgwApplication> m_sgwPgwApp;
8568
fc43230a29f5 fixed valgrind errors of epc-s1u tests
Nicola Baldo <nbaldo@cttc.es>
parents: 8463
diff changeset
   149
  Ptr<VirtualNetDevice> m_tunDevice;
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents: 9345
diff changeset
   150
  Ptr<EpcMme> m_mme;
9326
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
   151
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
   152
  /**
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
   153
   * S1-U interfaces
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
   154
   */
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
   155
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
   156
  /** 
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
   157
   * helper to assign addresses to S1-U NetDevices 
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
   158
   */
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
   159
  Ipv4AddressHelper m_s1uIpv4AddressHelper; 
8378
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   160
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   161
  DataRate m_s1uLinkDataRate;
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   162
  Time     m_s1uLinkDelay;
8385
1c778218d880 S1-U downlink working with multiple eNBs and UEs
Nicola Baldo <nbaldo@cttc.es>
parents: 8380
diff changeset
   163
  uint16_t m_s1uLinkMtu;
8378
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   164
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   165
  /**
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   166
   * UDP port where the GTP-U Socket is bound, fixed by the standard as 2152
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   167
   */
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   168
  uint16_t m_gtpuUdpPort;
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   169
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8568
diff changeset
   170
  /**
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8568
diff changeset
   171
   * Map storing for each IMSI the corresponding eNB NetDevice
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8568
diff changeset
   172
   * 
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8568
diff changeset
   173
   */
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8568
diff changeset
   174
  std::map<uint64_t, Ptr<NetDevice> > m_imsiEnbDeviceMap;
9338
Nicola Baldo <nbaldo@cttc.es>
parents: 9337 9328
diff changeset
   175
  
9326
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
   176
  /** 
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
   177
   * helper to assign addresses to X2 NetDevices 
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
   178
   */
9338
Nicola Baldo <nbaldo@cttc.es>
parents: 9337 9328
diff changeset
   179
  Ipv4AddressHelper m_x2Ipv4AddressHelper;   
9326
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
   180
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
   181
  DataRate m_x2LinkDataRate;
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
   182
  Time     m_x2LinkDelay;
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
   183
  uint16_t m_x2LinkMtu;
1cc7eb255f08 Add support for X2 handover in LTE Helper
Manuel Requena <manuel.requena@cttc.es>
parents: 8568
diff changeset
   184
8378
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   185
};
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   186
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   187
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   188
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   189
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   190
} // namespace ns3
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   191
0d8107d1548b save changes before merge
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   192
#endif // EPC_HELPER_H