View | Details | Raw Unified | Return to bug 938
Collapse All | Expand All

(-)a/src/lte/helper/lte-helper.h (-10 / +42 lines)
 Lines 294-300    Link Here 
294
  /** 
294
  /** 
295
   * \brief Manual attachment of a UE device to the network via the closest
295
   * \brief Manual attachment of a UE device to the network via the closest
296
   *        eNodeB (with respect to distance) among those in the set.
296
   *        eNodeB (with respect to distance) among those in the set.
297
   * \param ueDevices the set UE device to be attached
297
   * \param ueDevice the UE device to be attached
298
   * \param enbDevices the set of eNodeB devices to be considered
298
   * \param enbDevices the set of eNodeB devices to be considered
299
   *
299
   *
300
   * This function finds among the eNodeB set the closest eNodeB for the UE,
300
   * This function finds among the eNodeB set the closest eNodeB for the UE,
 Lines 319-325    Link Here 
319
  /**
319
  /**
320
   * Activate a dedicated EPS bearer on a given UE device
320
   * Activate a dedicated EPS bearer on a given UE device
321
   *
321
   *
322
   * \param ueDevices the set of UE devices
322
   * \param ueDevice the UE device
323
   * \param bearer the characteristics of the bearer to be activated
323
   * \param bearer the characteristics of the bearer to be activated
324
   * \param tft the Traffic Flow Template that identifies the traffic to go on this bearer
324
   * \param tft the Traffic Flow Template that identifies the traffic to go on this bearer
325
   */
325
   */
 Lines 342-355    Link Here 
342
  void AddX2Interface (Ptr<Node> enbNode1, Ptr<Node> enbNode2);
342
  void AddX2Interface (Ptr<Node> enbNode1, Ptr<Node> enbNode2);
343
343
344
  /**
344
  /**
345
   * Trigger an X2-based handover of a UE between two eNBs
345
   * \brief Manually trigger an X2-based handover of a UE between two eNBs at a
346
   *        specific simulation time.
347
   * \param hoTime when the Handover is initiated
348
   * \param ueDev the UE that hands off, must be of the type LteUeNetDevice
349
   * \param sourceEnbDev source eNB, must be of the type LteEnbNetDevice
350
   *                     (originally the UE is attached to this eNB)
351
   * \param targetEnbDev target eNB, must be of the type LteEnbNetDevice
352
   *                     (the UE is finally connected to this eNB)
346
   *
353
   *
347
   * \param hoTime when the Handover is initiated
354
   * \warning Requires the use of EPC mode. See SetEpcHelper() method.
348
   * \param ueDev the UE that hands off
349
   * \param enbDev1 source eNB, originally the UE is attached to this eNB
350
   * \param enbDev2 target eNB, the UE is finally connected to this eNB
351
   */
355
   */
352
  void HandoverRequest (Time hoTime, Ptr<NetDevice> ueDev, Ptr<NetDevice> sourceEnbDev, Ptr<NetDevice> targetEnbDev);
356
  void HandoverRequest (Time hoTime, Ptr<NetDevice> ueDev,
357
                        Ptr<NetDevice> sourceEnbDev, Ptr<NetDevice> targetEnbDev);
353
358
354
359
355
  /** 
360
  /** 
 Lines 375-386    Link Here 
375
  /** 
380
  /** 
376
   * 
381
   * 
377
   * 
382
   * 
378
   * \param type the fading model to be used
383
   * \param model the fading model to be used
379
   */
384
   */
380
  void SetFadingModel (std::string model);
385
  void SetFadingModel (std::string model);
381
386
382
  /**
387
  /**
383
   * set an attribute of the fading model
388
   * set an attribute of the fading model
389
   *
390
   * \param n the name of the attribute
391
   * \param v the value of the attribute
384
   */
392
   */
385
  void SetFadingModelAttribute (std::string n, const AttributeValue &v);
393
  void SetFadingModelAttribute (std::string n, const AttributeValue &v);
386
394
 Lines 494-503    Link Here 
494
  virtual void DoInitialize (void);
502
  virtual void DoInitialize (void);
495
503
496
private:
504
private:
505
  /**
506
   * \brief Create an eNodeB device (LteEnbNetDevice) on the given node.
507
   * \param n the node where the device is to be installed
508
   * \return pointer to the created device
509
   */
497
  Ptr<NetDevice> InstallSingleEnbDevice (Ptr<Node> n);
510
  Ptr<NetDevice> InstallSingleEnbDevice (Ptr<Node> n);
511
512
  /**
513
   * \brief Create a UE device (LteUeNetDevice) on the given node.
514
   * \param n the node where the device is to be installed
515
   * \return pointer to the created device
516
   */
498
  Ptr<NetDevice> InstallSingleUeDevice (Ptr<Node> n);
517
  Ptr<NetDevice> InstallSingleUeDevice (Ptr<Node> n);
499
518
500
  void DoHandoverRequest (Ptr<NetDevice> ueDev, Ptr<NetDevice> sourceEnbDev, Ptr<NetDevice> targetEnbDev);
519
  /**
520
   * \brief The actual function to trigger a manual handover.
521
   * \param ueDev the UE that hands off, must be of the type LteUeNetDevice
522
   * \param sourceEnbDev source eNB, must be of the type LteEnbNetDevice
523
   *                     (originally the UE is attached to this eNB)
524
   * \param targetEnbDev target eNB, must be of the type LteEnbNetDevice
525
   *                     (the UE is finally connected to this eNB)
526
   *
527
   * This method is normally scheduled by HandoverRequest() to run at a specific
528
   * time where a manual handover is desired by the simulation user.
529
   */
530
  void DoHandoverRequest (Ptr<NetDevice> ueDev,
531
                          Ptr<NetDevice> sourceEnbDev,
532
                          Ptr<NetDevice> targetEnbDev);
501
533
502
  Ptr<SpectrumChannel> m_downlinkChannel;
534
  Ptr<SpectrumChannel> m_downlinkChannel;
503
  Ptr<SpectrumChannel> m_uplinkChannel;
535
  Ptr<SpectrumChannel> m_uplinkChannel;
(-)a/src/lte/helper/lte-stats-calculator.h (+6 lines)
 Lines 51-56    Link Here 
51
51
52
  /**
52
  /**
53
   * Get the name of the file where the uplink statistics will be stored.
53
   * Get the name of the file where the uplink statistics will be stored.
54
   * @return the name of the file where the uplink statistics will be stored
54
   */
55
   */
55
  std::string GetUlOutputFilename (void);
56
  std::string GetUlOutputFilename (void);
56
57
 Lines 63-74    Link Here 
63
64
64
  /**
65
  /**
65
   * Get the name of the file where the downlink statistics will be stored.
66
   * Get the name of the file where the downlink statistics will be stored.
67
   * @return the name of the file where the downlink statistics will be stored
66
   */
68
   */
67
  std::string GetDlOutputFilename (void);
69
  std::string GetDlOutputFilename (void);
68
70
69
  /**
71
  /**
70
   * Checks if there is an already stored IMSI for the given path
72
   * Checks if there is an already stored IMSI for the given path
71
   * @param path Path in the attribute system to check
73
   * @param path Path in the attribute system to check
74
   * @return true if the path exists, false otherwise
72
   */
75
   */
73
  bool ExistsImsiPath (std::string path);
76
  bool ExistsImsiPath (std::string path);
74
77
 Lines 82-93    Link Here 
82
  /**
85
  /**
83
   * Retrieves the imsi information for the given path
86
   * Retrieves the imsi information for the given path
84
   * @param path Path in the attribute system to get
87
   * @param path Path in the attribute system to get
88
   * @return the IMSI associated with the given path
85
   */
89
   */
86
  uint64_t GetImsiPath (std::string path);
90
  uint64_t GetImsiPath (std::string path);
87
91
88
  /**
92
  /**
89
   * Checks if there is an already stored cell id for the given path
93
   * Checks if there is an already stored cell id for the given path
90
   * @param path Path in the attribute system to check
94
   * @param path Path in the attribute system to check
95
   * @return true if the path exists, false otherwise
91
   */
96
   */
92
  bool ExistsCellIdPath (std::string path);
97
  bool ExistsCellIdPath (std::string path);
93
98
 Lines 101-106    Link Here 
101
  /**
106
  /**
102
   * Retrieves the cell id information for the given path
107
   * Retrieves the cell id information for the given path
103
   * @param path Path in the attribute system to get
108
   * @param path Path in the attribute system to get
109
   * @return the cell ID associated with the given path
104
   */
110
   */
105
  uint16_t GetCellIdPath (std::string path);
111
  uint16_t GetCellIdPath (std::string path);
106
112
(-)a/src/lte/helper/mac-stats-calculator.cc (-3 / +3 lines)
 Lines 133-141    Link Here 
133
133
134
void
134
void
135
MacStatsCalculator::UlScheduling (uint16_t cellId, uint64_t imsi, uint32_t frameNo,
135
MacStatsCalculator::UlScheduling (uint16_t cellId, uint64_t imsi, uint32_t frameNo,
136
                                  uint32_t subframeNo, uint16_t rnti,uint8_t mcs, uint16_t size)
136
                                  uint32_t subframeNo, uint16_t rnti,uint8_t mcsTb, uint16_t size)
137
{
137
{
138
  NS_LOG_FUNCTION (this << cellId << imsi << frameNo << subframeNo << rnti << (uint32_t) mcs << size);
138
  NS_LOG_FUNCTION (this << cellId << imsi << frameNo << subframeNo << rnti << (uint32_t) mcsTb << size);
139
  NS_LOG_INFO ("Write UL Mac Stats in " << GetUlOutputFilename ().c_str ());
139
  NS_LOG_INFO ("Write UL Mac Stats in " << GetUlOutputFilename ().c_str ());
140
140
141
  std::ofstream outFile;
141
  std::ofstream outFile;
 Lines 167-173    Link Here 
167
  outFile << frameNo << "\t";
167
  outFile << frameNo << "\t";
168
  outFile << subframeNo << "\t";
168
  outFile << subframeNo << "\t";
169
  outFile << rnti << "\t";
169
  outFile << rnti << "\t";
170
  outFile << (uint32_t) mcs << "\t";
170
  outFile << (uint32_t) mcsTb << "\t";
171
  outFile << size << std::endl;
171
  outFile << size << std::endl;
172
  outFile.close ();
172
  outFile.close ();
173
}
173
}
(-)a/src/lte/helper/mac-stats-calculator.h (-4 / +4 lines)
 Lines 53-61    Link Here 
53
   */
53
   */
54
  virtual ~MacStatsCalculator ();
54
  virtual ~MacStatsCalculator ();
55
55
56
  /**
56
  // Inherited from ns3::Object
57
   * Inherited from ns3::Object
58
   */
59
  static TypeId GetTypeId (void);
57
  static TypeId GetTypeId (void);
60
58
61
  /**
59
  /**
 Lines 67-72    Link Here 
67
65
68
  /**
66
  /**
69
   * Get the name of the file where the uplink statistics will be stored.
67
   * Get the name of the file where the uplink statistics will be stored.
68
   * @return the name of the file where the uplink statistics will be stored
70
   */
69
   */
71
  std::string GetUlOutputFilename (void);
70
  std::string GetUlOutputFilename (void);
72
71
 Lines 79-84    Link Here 
79
78
80
  /**
79
  /**
81
   * Get the name of the file where the downlink statistics will be stored.
80
   * Get the name of the file where the downlink statistics will be stored.
81
   * @return the name of the file where the downlink statistics will be stored
82
   */
82
   */
83
  std::string GetDlOutputFilename (void);
83
  std::string GetDlOutputFilename (void);
84
84
 Lines 108-114    Link Here 
108
   * @param sizeTb Size of transport block
108
   * @param sizeTb Size of transport block
109
   */
109
   */
110
  void UlScheduling (uint16_t cellId, uint64_t imsi,uint32_t frameNo, uint32_t subframeNo,
110
  void UlScheduling (uint16_t cellId, uint64_t imsi,uint32_t frameNo, uint32_t subframeNo,
111
                     uint16_t rnti, uint8_t mcs, uint16_t sizeTb);
111
                     uint16_t rnti, uint8_t mcsTb, uint16_t sizeTb);
112
112
113
  
113
  
114
  /** 
114
  /** 
(-)a/src/lte/helper/phy-rx-stats-calculator.h (-27 / +5 lines)
 Lines 58-66    Link Here 
58
   */
58
   */
59
  virtual ~PhyRxStatsCalculator ();
59
  virtual ~PhyRxStatsCalculator ();
60
60
61
  /**
61
  // Inherited from ns3::Object
62
   * Inherited from ns3::Object
63
   */
64
  static TypeId GetTypeId (void);
62
  static TypeId GetTypeId (void);
65
63
66
  /**
64
  /**
 Lines 72-77    Link Here 
72
70
73
  /**
71
  /**
74
   * Get the name of the file where the UL RX PHY statistics will be stored.
72
   * Get the name of the file where the UL RX PHY statistics will be stored.
73
   * @return the name of the file where the UL RX PHY statistics will be stored
75
   */
74
   */
76
  std::string GetUlRxOutputFilename (void);
75
  std::string GetUlRxOutputFilename (void);
77
76
 Lines 84-123    Link Here 
84
83
85
  /**
84
  /**
86
   * Get the name of the file where the DL RX PHY statistics will be stored.
85
   * Get the name of the file where the DL RX PHY statistics will be stored.
86
   * @return the name of the file where the DL RX PHY statistics will be stored
87
   */
87
   */
88
  std::string GetDlRxOutputFilename (void);
88
  std::string GetDlRxOutputFilename (void);
89
89
90
  /**
90
  /**
91
   * Notifies the stats calculator that an downlink reception has occurred.
91
   * Notifies the stats calculator that an downlink reception has occurred.
92
   * @param cellId Cell ID of the attached Enb
92
   * @param params Trace information regarding PHY reception stats
93
   * @param imsi IMSI of the scheduled UE
94
   * @param frameNo Frame number
95
   * @param subframeNo Subframe number
96
   * @param rnti C-RNTI scheduled
97
   * @param layer the layer (cw) of the transmission
98
   * @param txMode the transmission Mode
99
   * @param mcs MCS for transport block
100
   * @param size Size of transport block
101
   * @param rv the redundancy version (HARQ)
102
   * @param ndi new data indicator flag
103
   * @param correctness correctness of the TB received
104
   */
93
   */
105
  void DlPhyReception (PhyReceptionStatParameters params);
94
  void DlPhyReception (PhyReceptionStatParameters params);
106
95
107
  /**
96
  /**
108
   * Notifies the stats calculator that an uplink reception has occurred.
97
   * Notifies the stats calculator that an uplink reception has occurred.
109
   * @param cellId Cell ID of the attached Enb
98
   * @param params Trace information regarding PHY reception stats
110
   * @param imsi IMSI of the scheduled UE
111
   * @param frameNo Frame number
112
   * @param subframeNo Subframe number
113
   * @param rnti C-RNTI scheduled
114
   * @param layer the layer (cw) of the transmission
115
   * @param txMode the transmission Mode
116
   * @param mcs MCS for transport block
117
   * @param size Size of transport block
118
   * @param rv the redundancy version (HARQ)
119
   * @param ndi new data indicator flag
120
   * @param correctness correctness of the TB received
121
   */
99
   */
122
  void UlPhyReception (PhyReceptionStatParameters params);
100
  void UlPhyReception (PhyReceptionStatParameters params);
123
101
(-)a/src/lte/helper/phy-stats-calculator.h (-6 / +5 lines)
 Lines 63-82    Link Here 
63
   */
63
   */
64
  virtual ~PhyStatsCalculator ();
64
  virtual ~PhyStatsCalculator ();
65
65
66
  /**
66
  // Inherited from ns3::Object
67
   * Inherited from ns3::Object
68
   */
69
  static TypeId GetTypeId (void);
67
  static TypeId GetTypeId (void);
70
68
71
  /**
69
  /**
72
   * Set the name of the file where the RSRP/SINR statistics will be stored.
70
   * Set the name of the file where the RSRP/SINR statistics will be stored.
73
   *
71
   *
74
   * \param filename string with the name of the file
72
   * @param filename string with the name of the file
75
   */
73
   */
76
  void SetCurrentCellRsrpSinrFilename (std::string filename);
74
  void SetCurrentCellRsrpSinrFilename (std::string filename);
77
75
78
  /**
76
  /**
79
   * Get the name of the file where the RSRP/SINR statistics will be stored.
77
   * Get the name of the file where the RSRP/SINR statistics will be stored.
78
   * @return the name of the file where the RSRP/SINR statistics will be stored
80
   */
79
   */
81
  std::string GetCurrentCellRsrpSinrFilename  (void);
80
  std::string GetCurrentCellRsrpSinrFilename  (void);
82
81
 Lines 89-94    Link Here 
89
88
90
  /**
89
  /**
91
   * Get the name of the file where the UE SINR statistics will be stored.
90
   * Get the name of the file where the UE SINR statistics will be stored.
91
   * @return the name of the file where the UE SINR statistics will be stored
92
   */
92
   */
93
  std::string GetUeSinrFilename (void);
93
  std::string GetUeSinrFilename (void);
94
94
 Lines 101-106    Link Here 
101
101
102
  /**
102
  /**
103
   * Get the name of the file where the interference statistics will be stored.
103
   * Get the name of the file where the interference statistics will be stored.
104
   * @return the name of the file where the interference statistics will be stored
104
   */
105
   */
105
  std::string GetInterferenceFilename (void);
106
  std::string GetInterferenceFilename (void);
106
107
 Lines 123-130    Link Here 
123
  void ReportUeSinr (uint16_t cellId, uint64_t imsi, uint16_t rnti, double sinrLinear);
124
  void ReportUeSinr (uint16_t cellId, uint64_t imsi, uint16_t rnti, double sinrLinear);
124
  /**
125
  /**
125
   * Notifies the stats calculator that an interference report has occurred.
126
   * Notifies the stats calculator that an interference report has occurred.
126
   * @param imsi IMSI of the scheduled UE
127
   * @param rnti C-RNTI scheduled
128
   * @param cellId Cell ID of the reported Enb
127
   * @param cellId Cell ID of the reported Enb
129
   * @param interference Measured interference for each RB
128
   * @param interference Measured interference for each RB
130
   */
129
   */
(-)a/src/lte/helper/phy-tx-stats-calculator.h (-26 / +6 lines)
 Lines 60-79    Link Here 
60
   */
60
   */
61
  virtual ~PhyTxStatsCalculator ();
61
  virtual ~PhyTxStatsCalculator ();
62
62
63
  /**
63
  // Inherited from ns3::Object
64
   * Inherited from ns3::Object
65
   */
66
  static TypeId GetTypeId (void);
64
  static TypeId GetTypeId (void);
67
65
68
  /**
66
  /**
69
   * Set the name of the file where the UL Tx PHY statistics will be stored.
67
   * Set the name of the file where the UL Tx PHY statistics will be stored.
70
   *
68
   *
71
   * \param outputFilename string with the name of the file
69
   * @param outputFilename string with the name of the file
72
   */
70
   */
73
  void SetUlTxOutputFilename (std::string outputFilename);
71
  void SetUlTxOutputFilename (std::string outputFilename);
74
72
75
  /**
73
  /**
76
   * Get the name of the file where the UL RX PHY statistics will be stored.
74
   * Get the name of the file where the UL RX PHY statistics will be stored.
75
   * @return the name of the file where the UL RX PHY statistics will be stored
77
   */
76
   */
78
  std::string GetUlTxOutputFilename (void);
77
  std::string GetUlTxOutputFilename (void);
79
78
 Lines 86-123    Link Here 
86
85
87
  /**
86
  /**
88
   * Get the name of the file where the DL TX PHY statistics will be stored.
87
   * Get the name of the file where the DL TX PHY statistics will be stored.
88
   * @return the name of the file where the DL TX PHY statistics will be stored
89
   */
89
   */
90
  std::string GetDlTxOutputFilename (void);
90
  std::string GetDlTxOutputFilename (void);
91
91
92
  /**
92
  /**
93
   * Notifies the stats calculator that an downlink trasmission has occurred.
93
   * Notifies the stats calculator that an downlink trasmission has occurred.
94
   * @param cellId Cell ID of the attached Enb
94
   * @param params Trace information regarding PHY transmission stats
95
   * @param imsi IMSI of the scheduled UE
96
   * @param frameNo Frame number
97
   * @param subframeNo Subframe number
98
   * @param rnti C-RNTI scheduled
99
   * @param layer the layer (cw) of the transmission
100
   * @param txMode the transmission Mode
101
   * @param mcs MCS for transport block
102
   * @param size Size of transport block
103
   * @param rv the redundancy version (HARQ)
104
   * @param ndi new data indicator flag
105
   */
95
   */
106
  void DlPhyTransmission (PhyTransmissionStatParameters params);
96
  void DlPhyTransmission (PhyTransmissionStatParameters params);
107
97
108
  /**
98
  /**
109
   * Notifies the stats calculator that an uplink trasmission has occurred.
99
   * Notifies the stats calculator that an uplink trasmission has occurred.
110
   * @param cellId Cell ID of the attached Enb
100
   * @param params Trace information regarding PHY transmission stats
111
   * @param imsi IMSI of the scheduled UE
112
   * @param frameNo Frame number
113
   * @param subframeNo Subframe number
114
   * @param rnti C-RNTI scheduled
115
   * @param layer the layer (cw) of the transmission
116
   * @param txMode the transmission Mode
117
   * @param mcs MCS for transport block
118
   * @param size Size of transport block
119
   * @param rv the redundancy version (HARQ)
120
   * @param ndi new data indicator flag
121
   */
101
   */
122
  void UlPhyTransmission (PhyTransmissionStatParameters params);
102
  void UlPhyTransmission (PhyTransmissionStatParameters params);
123
103
(-)a/src/lte/helper/radio-bearer-stats-calculator.h (-4 / +6 lines)
 Lines 79-109    Link Here 
79
  virtual
79
  virtual
80
  ~RadioBearerStatsCalculator ();
80
  ~RadioBearerStatsCalculator ();
81
81
82
  /**
82
  // Inherited from ns3::Object
83
   * Inherited from ns3::Object
84
   */
85
  static TypeId GetTypeId (void);
83
  static TypeId GetTypeId (void);
86
  void DoDispose ();
84
  void DoDispose ();
87
85
88
  /**
86
  /**
89
   * Get the name of the file where the uplink statistics will be stored.
87
   * Get the name of the file where the uplink statistics will be stored.
88
   * @return the name of the file where the uplink statistics will be stored
90
   */
89
   */
91
  std::string GetUlOutputFilename (void);
90
  std::string GetUlOutputFilename (void);
92
91
93
  /**
92
  /**
94
   * Get the name of the file where the downlink statistics will be stored.
93
   * Get the name of the file where the downlink statistics will be stored.
94
   * @return the name of the file where the downlink statistics will be stored
95
   */
95
   */
96
  std::string GetDlOutputFilename (void);
96
  std::string GetDlOutputFilename (void);
97
97
98
  /**
98
  /**
99
   * Set the name of the file where the uplink PDCP statistics will be stored.
99
   * Set the name of the file where the uplink PDCP statistics will be stored.
100
   *
100
   *
101
   * \param outputFilename string with the name of the file
101
   * @param outputFilename string with the name of the file
102
   */
102
   */
103
  void SetUlPdcpOutputFilename (std::string outputFilename);
103
  void SetUlPdcpOutputFilename (std::string outputFilename);
104
104
105
  /**
105
  /**
106
   * Get the name of the file where the uplink PDCP statistics will be stored.
106
   * Get the name of the file where the uplink PDCP statistics will be stored.
107
   * @return the name of the file where the uplink PDCP statistics will be stored
107
   */
108
   */
108
  std::string GetUlPdcpOutputFilename (void);
109
  std::string GetUlPdcpOutputFilename (void);
109
110
 Lines 116-121    Link Here 
116
117
117
  /**
118
  /**
118
   * Get the name of the file where the downlink PDCP statistics will be stored.
119
   * Get the name of the file where the downlink PDCP statistics will be stored.
120
   * @return the name of the file where the downlink PDCP statistics will be stored
119
   */
121
   */
120
  std::string GetDlPdcpOutputFilename (void);
122
  std::string GetDlPdcpOutputFilename (void);
121
123
(-)a/src/lte/model/epc-mme.h (-2 / +2 lines)
 Lines 84-93    Link Here 
84
84
85
  /** 
85
  /** 
86
   * Add a new ENB to the MME. 
86
   * Add a new ENB to the MME. 
87
   * \param imsi the unique identifier of the UE
87
   * \param ecgi E-UTRAN Cell Global ID, the unique identifier of the eNodeB
88
   * \param enbS1apSap the ENB side of the S1-AP SAP 
88
   * \param enbS1apSap the ENB side of the S1-AP SAP 
89
   */
89
   */
90
  void AddEnb (uint16_t egci, Ipv4Address enbS1UAddr, EpcS1apSapEnb* enbS1apSap); 
90
  void AddEnb (uint16_t ecgi, Ipv4Address enbS1UAddr, EpcS1apSapEnb* enbS1apSap);
91
  
91
  
92
  /** 
92
  /** 
93
   * Add a new UE to the MME. This is the equivalent of storing the UE
93
   * Add a new UE to the MME. This is the equivalent of storing the UE
(-)a/src/lte/model/epc-s11-sap.h (-4 / +4 lines)
 Lines 99-105    Link Here 
99
  /** 
99
  /** 
100
   * send a Create Session Response message
100
   * send a Create Session Response message
101
   * 
101
   * 
102
   * \params msg the message
102
   * \param msg the message
103
   */
103
   */
104
  virtual void CreateSessionResponse (CreateSessionResponseMessage msg) = 0;
104
  virtual void CreateSessionResponse (CreateSessionResponseMessage msg) = 0;
105
105
 Lines 120-126    Link Here 
120
  /** 
120
  /** 
121
   * send a Modify Bearer Response message
121
   * send a Modify Bearer Response message
122
   * 
122
   * 
123
   * \params msg the message
123
   * \param msg the message
124
   */
124
   */
125
  virtual void ModifyBearerResponse (ModifyBearerResponseMessage msg) = 0;
125
  virtual void ModifyBearerResponse (ModifyBearerResponseMessage msg) = 0;
126
126
 Lines 158-164    Link Here 
158
  /** 
158
  /** 
159
   * send a Create Session Request message
159
   * send a Create Session Request message
160
   * 
160
   * 
161
   * \params msg the message
161
   * \param msg the message
162
   */
162
   */
163
  virtual void CreateSessionRequest (CreateSessionRequestMessage msg) = 0;
163
  virtual void CreateSessionRequest (CreateSessionRequestMessage msg) = 0;
164
164
 Lines 174-180    Link Here 
174
  /** 
174
  /** 
175
   * send a Modify Bearer Request message
175
   * send a Modify Bearer Request message
176
   * 
176
   * 
177
   * \params msg the message
177
   * \param msg the message
178
   */
178
   */
179
  virtual void ModifyBearerRequest (ModifyBearerRequestMessage msg) = 0;
179
  virtual void ModifyBearerRequest (ModifyBearerRequestMessage msg) = 0;
180
180
(-)a/src/lte/model/epc-s1ap-sap.h (-6 / +10 lines)
 Lines 53-63    Link Here 
53
   * 
53
   * 
54
   * \param mmeUeS1Id in practice, we use the IMSI
54
   * \param mmeUeS1Id in practice, we use the IMSI
55
   * \param enbUeS1Id in practice, we use the RNTI
55
   * \param enbUeS1Id in practice, we use the RNTI
56
   * \param s-tmsi in practice, the imsi
56
   * \param stmsi in practice, the imsi
57
   * \param ecgi in practice, the cell Id
57
   * \param ecgi in practice, the cell Id
58
   * 
58
   * 
59
   */
59
   */
60
  virtual void InitialUeMessage (uint64_t mmeUeS1Id, uint16_t enbUeS1Id, uint64_t imsi, uint16_t ecgi) = 0;
60
  virtual void InitialUeMessage (uint64_t mmeUeS1Id, uint16_t enbUeS1Id, uint64_t stmsi, uint16_t ecgi) = 0;
61
61
62
62
63
  /**
63
  /**
 Lines 76-85    Link Here 
76
   * 
76
   * 
77
   * \param mmeUeS1Id in practice, we use the IMSI
77
   * \param mmeUeS1Id in practice, we use the IMSI
78
   * \param enbUeS1Id in practice, we use the RNTI
78
   * \param enbUeS1Id in practice, we use the RNTI
79
   * \param ecgi in practice, the cell Id
79
   * \param erabSetupList
80
   * 
80
   * 
81
   */
81
   */
82
  virtual void InitialContextSetupResponse (uint64_t mmeUeS1Id, uint16_t enbUeS1Id, std::list<ErabSetupItem> erabSetupList) = 0;
82
  virtual void InitialContextSetupResponse (uint64_t mmeUeS1Id,
83
                                            uint16_t enbUeS1Id,
84
                                            std::list<ErabSetupItem> erabSetupList) = 0;
83
85
84
86
85
  /**
87
  /**
 Lines 126-135    Link Here 
126
   * 
128
   * 
127
   * \param mmeUeS1Id in practice, we use the IMSI
129
   * \param mmeUeS1Id in practice, we use the IMSI
128
   * \param enbUeS1Id in practice, we use the RNTI
130
   * \param enbUeS1Id in practice, we use the RNTI
129
   * \param ecgi in practice, the cell Id
131
   * \param erabToBeSetupList
130
   * 
132
   * 
131
   */
133
   */
132
  virtual void InitialContextSetupRequest (uint64_t mmeUeS1Id, uint16_t enbUeS1Id, std::list<ErabToBeSetupItem> erabToBeSetupList) = 0;
134
  virtual void InitialContextSetupRequest (uint64_t mmeUeS1Id,
135
                                           uint16_t enbUeS1Id,
136
                                           std::list<ErabToBeSetupItem> erabToBeSetupList) = 0;
133
137
134
138
135
  /**
139
  /**
(-)a/src/lte/model/epc-sgw-pgw-application.h (-1 / +2 lines)
 Lines 130-136    Link Here 
130
   * Let the SGW be aware of a new eNB 
130
   * Let the SGW be aware of a new eNB 
131
   * 
131
   * 
132
   * \param cellId the cell identifier
132
   * \param cellId the cell identifier
133
   * \param enbAdd the address of the eNB
133
   * \param enbAddr the address of the eNB
134
   * \param sgwAddr the address of the SGW
134
   */
135
   */
135
  void AddEnb (uint16_t cellId, Ipv4Address enbAddr, Ipv4Address sgwAddr);
136
  void AddEnb (uint16_t cellId, Ipv4Address enbAddr, Ipv4Address sgwAddr);
136
137
(-)a/src/lte/model/epc-tft.h (-1 / +1 lines)
 Lines 124-130    Link Here 
124
  /** 
124
  /** 
125
   * add a PacketFilter to the Traffic Flow Template
125
   * add a PacketFilter to the Traffic Flow Template
126
   * 
126
   * 
127
   * \param the PacketFilter to be added
127
   * \param f the PacketFilter to be added
128
   * 
128
   * 
129
   * \return the id( 0 <= id < 16) of the newly added filter, if the addition was successful. Will fail if you try to add more than 15 filters. This is to be compliant with TS 24.008.
129
   * \return the id( 0 <= id < 16) of the newly added filter, if the addition was successful. Will fail if you try to add more than 15 filters. This is to be compliant with TS 24.008.
130
   */
130
   */
(-)a/src/lte/model/epc-x2.h (-3 / +8 lines)
 Lines 92-106    Link Here 
92
  void SetEpcX2SapUser (EpcX2SapUser * s);
92
  void SetEpcX2SapUser (EpcX2SapUser * s);
93
93
94
  /**
94
  /**
95
   * \param s the X2 SAP Provider interface offered by this EPC X2 entity
95
   * \return the X2 SAP Provider interface offered by this EPC X2 entity
96
   */
96
   */
97
  EpcX2SapProvider* GetEpcX2SapProvider ();
97
  EpcX2SapProvider* GetEpcX2SapProvider ();
98
98
99
99
100
  /**
100
  /**
101
   * \param s the X2 SAP Provider interface offered by this EPC X2 entity
101
   * Add an X2 interface to this EPC X2 entity
102
   * \param enb1CellId the cell ID of the current eNodeB
103
   * \param enb1X2Address the address of the current eNodeB
104
   * \param enb2CellId the cell ID of the neighbouring eNodeB
105
   * \param enb2X2Address the address of the neighbouring eNodeB
102
   */
106
   */
103
  void AddX2Interface (uint16_t enb1CellId, Ipv4Address enb1X2Address, uint16_t enb2CellId, Ipv4Address enb2X2Address);
107
  void AddX2Interface (uint16_t enb1CellId, Ipv4Address enb1X2Address,
108
                       uint16_t enb2CellId, Ipv4Address enb2X2Address);
104
109
105
110
106
  /** 
111
  /** 
(-)a/src/lte/model/eps-bearer-tag.h (-1 / +1 lines)
 Lines 54-60    Link Here 
54
   *
54
   *
55
   * @param rnti the value of the RNTI to set
55
   * @param rnti the value of the RNTI to set
56
   */
56
   */
57
  void SetRnti (uint16_t tid);
57
  void SetRnti (uint16_t rnti);
58
58
59
  /**
59
  /**
60
   * Set the bearer id to the given value.
60
   * Set the bearer id to the given value.
(-)a/src/lte/model/lte-amc.h (-2 / +3 lines)
 Lines 86-94    Link Here 
86
   * \brief Create a message with CQI feedback
86
   * \brief Create a message with CQI feedback
87
   * \param sinr the SpectrumValue vector of SINR for evaluating the CQI
87
   * \param sinr the SpectrumValue vector of SINR for evaluating the CQI
88
   * \param rbgSize size of RB group (in RBs) for evaluating subband/wideband CQI
88
   * \param rbgSize size of RB group (in RBs) for evaluating subband/wideband CQI
89
   *
89
   * \return a vector of CQI feedbacks
90
   */
90
   */
91
  /*static*/ std::vector<int> CreateCqiFeedbacks (const SpectrumValue& sinr, uint8_t rbgSize = 0);
91
  /*static*/ std::vector<int> CreateCqiFeedbacks (const SpectrumValue& sinr,
92
                                                  uint8_t rbgSize = 0);
92
93
93
  /**
94
  /**
94
   * \brief Get a proper CQI for the spectrale efficiency value.
95
   * \brief Get a proper CQI for the spectrale efficiency value.
(-)a/src/lte/model/lte-anr.h (-3 / +3 lines)
 Lines 82-89    Link Here 
82
public:
82
public:
83
  /**
83
  /**
84
   * \brief Creates an ANR instance.
84
   * \brief Creates an ANR instance.
85
   * \param the cell ID of the eNodeB instance whom this ANR instance is to be
85
   * \param servingCellId the cell ID of the eNodeB instance whom this ANR
86
   *        associated with
86
   *                      instance is to be associated with
87
   */
87
   */
88
  LteAnr (uint16_t servingCellId);
88
  LteAnr (uint16_t servingCellId);
89
  virtual ~LteAnr ();
89
  virtual ~LteAnr ();
 Lines 109-115    Link Here 
109
109
110
  /**
110
  /**
111
   * \brief Remove an existing Neighbour Relation entry.
111
   * \brief Remove an existing Neighbour Relation entry.
112
   * \param the cell ID to be removed from the NRT
112
   * \param cellId the cell ID to be removed from the NRT
113
   *
113
   *
114
   * This function simulates the Neighbour Relation removal operation by
114
   * This function simulates the Neighbour Relation removal operation by
115
   * network operations and maintenance, as depicted in Section 22.3.2a of
115
   * network operations and maintenance, as depicted in Section 22.3.2a of
(-)a/src/lte/model/lte-common.h (-19 / +19 lines)
 Lines 118-148    Link Here 
118
struct PhyTransmissionStatParameters
118
struct PhyTransmissionStatParameters
119
{
119
{
120
  int64_t  m_timestamp; // in millisecond
120
  int64_t  m_timestamp; // in millisecond
121
  uint16_t m_cellId;
121
  uint16_t m_cellId;  ///< Cell ID of the attached Enb
122
  uint64_t m_imsi;
122
  uint64_t m_imsi;    ///< IMSI of the scheduled UE
123
  uint16_t m_rnti;
123
  uint16_t m_rnti;    ///< C-RNTI scheduled
124
  uint8_t  m_txMode;
124
  uint8_t  m_txMode;  ///< the transmission Mode
125
  uint8_t  m_layer;
125
  uint8_t  m_layer;   ///< the layer (cw) of the transmission
126
  uint8_t  m_mcs;
126
  uint8_t  m_mcs;     ///< MCS for transport block
127
  uint16_t m_size;
127
  uint16_t m_size;    ///< Size of transport block
128
  uint8_t  m_rv;
128
  uint8_t  m_rv;      ///< the redundancy version (HARQ)
129
  uint8_t  m_ndi;
129
  uint8_t  m_ndi;     ///< new data indicator flag
130
};
130
};
131
131
132
132
133
struct PhyReceptionStatParameters
133
struct PhyReceptionStatParameters
134
{
134
{
135
  int64_t  m_timestamp; // in millisecond
135
  int64_t  m_timestamp; // in millisecond
136
  uint16_t m_cellId;
136
  uint16_t m_cellId;       ///< Cell ID of the attached Enb
137
  uint64_t m_imsi;
137
  uint64_t m_imsi;         ///< IMSI of the scheduled UE
138
  uint16_t m_rnti;
138
  uint16_t m_rnti;         ///< C-RNTI scheduled
139
  uint8_t  m_txMode;
139
  uint8_t  m_txMode;       ///< the transmission Mode
140
  uint8_t  m_layer;
140
  uint8_t  m_layer;        ///< the layer (cw) of the transmission
141
  uint8_t  m_mcs;
141
  uint8_t  m_mcs;          ///< MCS for transport block
142
  uint16_t m_size;
142
  uint16_t m_size;         ///< Size of transport block
143
  uint8_t  m_rv;
143
  uint8_t  m_rv;           ///< the redundancy version (HARQ)
144
  uint8_t  m_ndi;
144
  uint8_t  m_ndi;          ///< new data indicator flag
145
  uint8_t  m_correctness;
145
  uint8_t  m_correctness;  ///< correctness of the TB received
146
};
146
};
147
147
148
148
(-)a/src/lte/model/lte-control-messages.h (-4 / +4 lines)
 Lines 189-195    Link Here 
189
  * \brief add a BSR feedback record into the message.
189
  * \brief add a BSR feedback record into the message.
190
  * \param bsr the BSR feedback
190
  * \param bsr the BSR feedback
191
  */
191
  */
192
  void SetBsr (MacCeListElement_s ulcqi);
192
  void SetBsr (MacCeListElement_s bsr);
193
193
194
  /**
194
  /**
195
  * \brief Get BSR informations
195
  * \brief Get BSR informations
 Lines 218-224    Link Here 
218
218
219
  /**
219
  /**
220
  * \brief add a DL HARQ feedback record into the message.
220
  * \brief add a DL HARQ feedback record into the message.
221
  * \param DlInfoListElement_s the dl HARQ feedback
221
  * \param m the DL HARQ feedback
222
  */
222
  */
223
  void SetDlHarqFeedback (DlInfoListElement_s m);
223
  void SetDlHarqFeedback (DlInfoListElement_s m);
224
224
 Lines 249-255    Link Here 
249
  /** 
249
  /** 
250
   * Set the Random Access Preamble Identifier (RAPID), see 3GPP TS 36.321 6.2.2
250
   * Set the Random Access Preamble Identifier (RAPID), see 3GPP TS 36.321 6.2.2
251
   *
251
   *
252
   * \param rapid
252
   * \param rapid the RAPID
253
   */
253
   */
254
  void SetRapId (uint32_t rapid);
254
  void SetRapId (uint32_t rapid);
255
  
255
  
 Lines 387-393    Link Here 
387
387
388
  /**
388
  /**
389
   * \brief Replace the SIB1 content of this control message.
389
   * \brief Replace the SIB1 content of this control message.
390
   * \param sib the desired SIB1 content
390
   * \param sib1 the desired SIB1 content
391
   */
391
   */
392
  void SetSib1 (LteRrcSap::SystemInformationBlockType1 sib1);
392
  void SetSib1 (LteRrcSap::SystemInformationBlockType1 sib1);
393
393
(-)a/src/lte/model/lte-enb-cphy-sap.h (-3 / +3 lines)
 Lines 83-95    Link Here 
83
   * \param rnti the RNTI of the user
83
   * \param rnti the RNTI of the user
84
   * \param txMode the transmissionMode of the user
84
   * \param txMode the transmissionMode of the user
85
   */
85
   */
86
  virtual void SetTransmissionMode (uint16_t  rnti, uint8_t txMode) = 0;
86
  virtual void SetTransmissionMode (uint16_t rnti, uint8_t txMode) = 0;
87
87
88
  /**
88
  /**
89
   * \param rnti the RNTI of the user
89
   * \param rnti the RNTI of the user
90
   * \param txMode the SRS Configuration Index of the user
90
   * \param srsCi the SRS Configuration Index of the user
91
   */
91
   */
92
  virtual void SetSrsConfigurationIndex (uint16_t  rnti, uint16_t srsCi) = 0;
92
  virtual void SetSrsConfigurationIndex (uint16_t rnti, uint16_t srsCi) = 0;
93
93
94
  /** 
94
  /** 
95
   * 
95
   * 
(-)a/src/lte/model/lte-enb-mac.h (-1 / +1 lines)
 Lines 133-139    Link Here 
133
133
134
  /**
134
  /**
135
  * \brief Receive a CE element containing the buffer status report
135
  * \brief Receive a CE element containing the buffer status report
136
  * \param msg the BSR message
136
  * \param bsr the BSR message
137
  */
137
  */
138
  void ReceiveBsrMessage  (MacCeListElement_s bsr);
138
  void ReceiveBsrMessage  (MacCeListElement_s bsr);
139
139
(-)a/src/lte/model/lte-enb-net-device.h (-2 / +2 lines)
 Lines 108-114    Link Here 
108
  uint16_t GetDlEarfcn () const;
108
  uint16_t GetDlEarfcn () const;
109
109
110
  /** 
110
  /** 
111
   * \param bw the downlink carrier frequency (EARFCN)
111
   * \param earfcn the downlink carrier frequency (EARFCN)
112
   */
112
   */
113
  void SetDlEarfcn (uint16_t earfcn);
113
  void SetDlEarfcn (uint16_t earfcn);
114
114
 Lines 118-124    Link Here 
118
  uint16_t GetUlEarfcn () const;
118
  uint16_t GetUlEarfcn () const;
119
119
120
  /** 
120
  /** 
121
   * \param bw the uplink carrier frequency (EARFCN)
121
   * \param earfcn the uplink carrier frequency (EARFCN)
122
   */
122
   */
123
  void SetUlEarfcn (uint16_t earfcn);
123
  void SetUlEarfcn (uint16_t earfcn);
124
124
(-)a/src/lte/model/lte-enb-phy.h (-3 / +5 lines)
 Lines 95-101    Link Here 
95
  void SetLteEnbCphySapUser (LteEnbCphySapUser* s);
95
  void SetLteEnbCphySapUser (LteEnbCphySapUser* s);
96
96
97
  /**
97
  /**
98
   * \param pw the transmission power in dBm
98
   * \param pow the transmission power in dBm
99
   */
99
   */
100
  void SetTxPower (double pow);
100
  void SetTxPower (double pow);
101
101
 Lines 106-112    Link Here 
106
106
107
107
108
  /**
108
  /**
109
   * \param pw the noise figure in dB
109
   * \param pow the noise figure in dB
110
   */
110
   */
111
  void SetNoiseFigure (double pow);
111
  void SetNoiseFigure (double pow);
112
112
 Lines 178-183    Link Here 
178
  * \brief Create the UL CQI feedback from SINR values perceived at
178
  * \brief Create the UL CQI feedback from SINR values perceived at
179
  * the physical layer with the PUSCH signal received from eNB
179
  * the physical layer with the PUSCH signal received from eNB
180
  * \param sinr SINR values vector
180
  * \param sinr SINR values vector
181
  * \return UL CQI feedback in the format usable by an FF MAC scheduler
181
  */
182
  */
182
  FfMacSchedSapProvider::SchedUlCqiInfoReqParameters CreatePuschCqiReport (const SpectrumValue& sinr);
183
  FfMacSchedSapProvider::SchedUlCqiInfoReqParameters CreatePuschCqiReport (const SpectrumValue& sinr);
183
  
184
  
 Lines 185-190    Link Here 
185
  * \brief Create the UL CQI feedback from SINR values perceived at
186
  * \brief Create the UL CQI feedback from SINR values perceived at
186
  * the physical layer with the SRS signal received from eNB
187
  * the physical layer with the SRS signal received from eNB
187
  * \param sinr SINR values vector
188
  * \param sinr SINR values vector
189
  * \return UL CQI feedback in the format usable by an FF MAC scheduler
188
  */
190
  */
189
  FfMacSchedSapProvider::SchedUlCqiInfoReqParameters CreateSrsCqiReport (const SpectrumValue& sinr);
191
  FfMacSchedSapProvider::SchedUlCqiInfoReqParameters CreateSrsCqiReport (const SpectrumValue& sinr);
190
192
 Lines 242-248    Link Here 
242
  virtual void GenerateCtrlCqiReport (const SpectrumValue& sinr);
244
  virtual void GenerateCtrlCqiReport (const SpectrumValue& sinr);
243
  virtual void GenerateDataCqiReport (const SpectrumValue& sinr);
245
  virtual void GenerateDataCqiReport (const SpectrumValue& sinr);
244
  virtual void ReportInterference (const SpectrumValue& interf);
246
  virtual void ReportInterference (const SpectrumValue& interf);
245
  virtual void ReportRsReceivedPower (const SpectrumValue& interf);
247
  virtual void ReportRsReceivedPower (const SpectrumValue& power);
246
248
247
249
248
250
(-)a/src/lte/model/lte-enb-rrc.cc (-2 / +1 lines)
 Lines 1754-1761    Link Here 
1754
LteEnbRrc::DoRecvRrcConnectionRequest (uint16_t rnti, LteRrcSap::RrcConnectionRequest msg)
1754
LteEnbRrc::DoRecvRrcConnectionRequest (uint16_t rnti, LteRrcSap::RrcConnectionRequest msg)
1755
{
1755
{
1756
  NS_LOG_FUNCTION (this << rnti);
1756
  NS_LOG_FUNCTION (this << rnti);
1757
  
1757
  GetUeManager (rnti)->RecvRrcConnectionRequest (msg);
1758
    GetUeManager (rnti)->RecvRrcConnectionRequest (msg);
1759
}
1758
}
1760
1759
1761
void
1760
void
(-)a/src/lte/model/lte-enb-rrc.h (-7 / +23 lines)
 Lines 235-255    Link Here 
235
   */
235
   */
236
  void RecvUeContextRelease (EpcX2SapUser::UeContextReleaseParams params); 
236
  void RecvUeContextRelease (EpcX2SapUser::UeContextReleaseParams params); 
237
237
238
  // methods forwarded from RRC SAP
238
239
  // METHODS FORWARDED FROM ENB RRC SAP ///////////////////////////////////////
240
241
  /// Part of the RRC protocol. Implement the LteEnbRrcSapProvider::CompleteSetupUe interface.
239
  void CompleteSetupUe (LteEnbRrcSapProvider::CompleteSetupUeParameters params);
242
  void CompleteSetupUe (LteEnbRrcSapProvider::CompleteSetupUeParameters params);
243
  /// Part of the RRC protocol. Implement the LteEnbRrcSapProvider::RecvRrcConnectionRequest interface.
240
  void RecvRrcConnectionRequest (LteRrcSap::RrcConnectionRequest msg);
244
  void RecvRrcConnectionRequest (LteRrcSap::RrcConnectionRequest msg);
245
  /// Part of the RRC protocol. Implement the LteEnbRrcSapProvider::RecvRrcConnectionSetupCompleted interface.
241
  void RecvRrcConnectionSetupCompleted (LteRrcSap::RrcConnectionSetupCompleted msg);
246
  void RecvRrcConnectionSetupCompleted (LteRrcSap::RrcConnectionSetupCompleted msg);
247
  /// Part of the RRC protocol. Implement the LteEnbRrcSapProvider::RecvRrcConnectionReconfigurationCompleted interface.
242
  void RecvRrcConnectionReconfigurationCompleted (LteRrcSap::RrcConnectionReconfigurationCompleted msg);
248
  void RecvRrcConnectionReconfigurationCompleted (LteRrcSap::RrcConnectionReconfigurationCompleted msg);
249
  /// Part of the RRC protocol. Implement the LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentRequest interface.
243
  void RecvRrcConnectionReestablishmentRequest (LteRrcSap::RrcConnectionReestablishmentRequest msg);
250
  void RecvRrcConnectionReestablishmentRequest (LteRrcSap::RrcConnectionReestablishmentRequest msg);
251
  /// Part of the RRC protocol. Implement the LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentComplete interface.
244
  void RecvRrcConnectionReestablishmentComplete (LteRrcSap::RrcConnectionReestablishmentComplete msg);
252
  void RecvRrcConnectionReestablishmentComplete (LteRrcSap::RrcConnectionReestablishmentComplete msg);
253
  /// Part of the RRC protocol. Implement the LteEnbRrcSapProvider::RecvMeasurementReport interface.
245
  void RecvMeasurementReport (LteRrcSap::MeasurementReport msg);
254
  void RecvMeasurementReport (LteRrcSap::MeasurementReport msg);
246
255
247
256
248
  // methods forwarded from CMAC SAP
257
  // METHODS FORWARDED FROM ENB CMAC SAP //////////////////////////////////////
258
249
  void CmacUeConfigUpdateInd (LteEnbCmacSapUser::UeConfig cmacParams);
259
  void CmacUeConfigUpdateInd (LteEnbCmacSapUser::UeConfig cmacParams);
250
260
261
  // METHODS FORWARDED FROM ENB PDCP SAP //////////////////////////////////////
251
262
252
  // methods forwarded from PDCP SAP
253
  void DoReceivePdcpSdu (LtePdcpSapUser::ReceivePdcpSduParameters params);
263
  void DoReceivePdcpSdu (LtePdcpSapUser::ReceivePdcpSduParameters params);
254
  
264
  
255
  /** 
265
  /** 
 Lines 629-635    Link Here 
629
  /** 
639
  /** 
630
   * set the callback used to forward data packets up the stack
640
   * set the callback used to forward data packets up the stack
631
   * 
641
   * 
632
   * \param void 
633
   * \param cb 
642
   * \param cb 
634
   */
643
   */
635
  void SetForwardUpCallback (Callback <void, Ptr<Packet> > cb);
644
  void SetForwardUpCallback (Callback <void, Ptr<Packet> > cb);
 Lines 672-679    Link Here 
672
   * by sending a handover request to the target eNB over the X2
681
   * by sending a handover request to the target eNB over the X2
673
   * interface 
682
   * interface 
674
   *
683
   *
675
   * \param imsi the id of the UE to be handed over 
684
   * \param rnti the ID of the UE to be handed over
676
   * \param cellId the id of the target eNB
685
   * \param cellId the ID of the target eNB
677
   */
686
   */
678
  void SendHandoverRequest (uint16_t rnti, uint16_t cellId);
687
  void SendHandoverRequest (uint16_t rnti, uint16_t cellId);
679
688
 Lines 691-702    Link Here 
691
700
692
  // RRC SAP methods
701
  // RRC SAP methods
693
702
703
  /// Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::CompleteSetupUe interface to UeManager::CompleteSetupUe
694
  void DoCompleteSetupUe (uint16_t rnti, LteEnbRrcSapProvider::CompleteSetupUeParameters params);
704
  void DoCompleteSetupUe (uint16_t rnti, LteEnbRrcSapProvider::CompleteSetupUeParameters params);
705
  /// Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::RecvRrcConnectionRequest interface to UeManager::RecvRrcConnectionRequest
695
  void DoRecvRrcConnectionRequest (uint16_t rnti, LteRrcSap::RrcConnectionRequest msg);
706
  void DoRecvRrcConnectionRequest (uint16_t rnti, LteRrcSap::RrcConnectionRequest msg);
707
  /// Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::RecvRrcConnectionSetupCompleted interface to UeManager::RecvRrcConnectionSetupCompleted
696
  void DoRecvRrcConnectionSetupCompleted (uint16_t rnti, LteRrcSap::RrcConnectionSetupCompleted msg);
708
  void DoRecvRrcConnectionSetupCompleted (uint16_t rnti, LteRrcSap::RrcConnectionSetupCompleted msg);
709
  /// Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::RecvRrcConnectionReconfigurationCompleted interface to UeManager::RecvRrcConnectionReconfigurationCompleted
697
  void DoRecvRrcConnectionReconfigurationCompleted (uint16_t rnti, LteRrcSap::RrcConnectionReconfigurationCompleted msg);
710
  void DoRecvRrcConnectionReconfigurationCompleted (uint16_t rnti, LteRrcSap::RrcConnectionReconfigurationCompleted msg);
711
  /// Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentRequest interface to UeManager::RecvRrcConnectionReestablishmentRequest
698
  void DoRecvRrcConnectionReestablishmentRequest (uint16_t rnti, LteRrcSap::RrcConnectionReestablishmentRequest msg);
712
  void DoRecvRrcConnectionReestablishmentRequest (uint16_t rnti, LteRrcSap::RrcConnectionReestablishmentRequest msg);
713
  /// Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentComplete interface to UeManager::RecvRrcConnectionReestablishmentComplete
699
  void DoRecvRrcConnectionReestablishmentComplete (uint16_t rnti, LteRrcSap::RrcConnectionReestablishmentComplete msg);
714
  void DoRecvRrcConnectionReestablishmentComplete (uint16_t rnti, LteRrcSap::RrcConnectionReestablishmentComplete msg);
715
  /// Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::RecvMeasurementReport interface to UeManager::RecvMeasurementReport
700
  void DoRecvMeasurementReport (uint16_t rnti, LteRrcSap::MeasurementReport msg);
716
  void DoRecvMeasurementReport (uint16_t rnti, LteRrcSap::MeasurementReport msg);
701
717
702
  // S1 SAP methods
718
  // S1 SAP methods
 Lines 767-773    Link Here 
767
  /** 
783
  /** 
768
   * Add a neighbour with an X2 interface
784
   * Add a neighbour with an X2 interface
769
   *
785
   *
770
   * \param cellid neighbouring cell id
786
   * \param cellId neighbouring cell id
771
   */
787
   */
772
  void AddX2Neighbour (uint16_t cellId);
788
  void AddX2Neighbour (uint16_t cellId);
773
789
(-)a/src/lte/model/lte-harq-phy.h (-1 / +1 lines)
 Lines 88-95    Link Here 
88
  /**
88
  /**
89
  * \brief Return the info of the HARQ procId in case of retranmissions
89
  * \brief Return the info of the HARQ procId in case of retranmissions
90
  * for UL (asynchronous)
90
  * for UL (asynchronous)
91
  * \param rnti the RNTI of the transmitter
91
  * \param harqProcId the HARQ proc id
92
  * \param harqProcId the HARQ proc id
92
  * \param layer layer no. (for MIMO spatail multiplexing)
93
  * \return the vector of the info related to HARQ proc Id
93
  * \return the vector of the info related to HARQ proc Id
94
  */
94
  */
95
  HarqProcessInfoList_t GetHarqProcessInfoUl (uint16_t rnti, uint8_t harqProcId);
95
  HarqProcessInfoList_t GetHarqProcessInfoUl (uint16_t rnti, uint8_t harqProcId);
(-)a/src/lte/model/lte-mi-error-model.h (-2 / +2 lines)
 Lines 82-89    Link Here 
82
  static double Mib (const SpectrumValue& sinr, const std::vector<int>& map, uint8_t mcs);
82
  static double Mib (const SpectrumValue& sinr, const std::vector<int>& map, uint8_t mcs);
83
  /** 
83
  /** 
84
   * \brief map the mmib (mean mutual information per bit) for different MCS
84
   * \brief map the mmib (mean mutual information per bit) for different MCS
85
   * \param mmib mean mutual information per bit of a code-block
85
   * \param mib mean mutual information per bit of a code-block
86
   * \param mcs the MCS
86
   * \param ecrId Effective Code Rate ID
87
   * \param cbSize the size of the CB
87
   * \param cbSize the size of the CB
88
   * \return the code block error rate
88
   * \return the code block error rate
89
   */
89
   */
(-)a/src/lte/model/lte-pdcp-tag.h (+1 lines)
 Lines 56-61    Link Here 
56
56
57
  /**
57
  /**
58
   * Get the instant when the PDCP delivers the PDU to the MAC SAP provider
58
   * Get the instant when the PDCP delivers the PDU to the MAC SAP provider
59
   * @return the sender timestamp
59
   */
60
   */
60
  Time  GetSenderTimestamp (void) const;
61
  Time  GetSenderTimestamp (void) const;
61
62
(-)a/src/lte/model/lte-pdcp.h (-2 / +2 lines)
 Lines 68-74    Link Here 
68
  /**
68
  /**
69
   *
69
   *
70
   *
70
   *
71
   * \param s the PDCP SAP Provider interface offered to the RRC by this LTE_PDCP
71
   * \return the PDCP SAP Provider interface offered to the RRC by this LTE_PDCP
72
   */
72
   */
73
  LtePdcpSapProvider* GetLtePdcpSapProvider ();
73
  LtePdcpSapProvider* GetLtePdcpSapProvider ();
74
74
 Lines 82-88    Link Here 
82
  /**
82
  /**
83
   *
83
   *
84
   *
84
   *
85
   * \param s the RLC SAP User interface offered to the RLC by this LTE_PDCP
85
   * \return the RLC SAP User interface offered to the RLC by this LTE_PDCP
86
   */
86
   */
87
  LteRlcSapUser* GetLteRlcSapUser ();
87
  LteRlcSapUser* GetLteRlcSapUser ();
88
88
(-)a/src/lte/model/lte-phy.h (-13 / +6 lines)
 Lines 121-133    Link Here 
121
  void DoDispose ();
121
  void DoDispose ();
122
122
123
  /**
123
  /**
124
   * \brief Receive SendLteControlMessage (PDCCH map, CQI feedbacks) using the ideal control channel
125
   * \param msg the Ideal Control Message to receive
126
   */
127
//   virtual void ReceiveLteControlMessage (Ptr<LteControlMessage> msg) = 0;
128
129
130
  /**
131
   * \param tti transmission time interval
124
   * \param tti transmission time interval
132
   */
125
   */
133
  void SetTti (double tti);
126
  void SetTti (double tti);
 Lines 188-194    Link Here 
188
   * 
181
   * 
189
   * \param sinr the SINR vs frequency measured by the device
182
   * \param sinr the SINR vs frequency measured by the device
190
   */
183
   */
191
  virtual void  GenerateCtrlCqiReport (const SpectrumValue& sinr) = 0;
184
  virtual void GenerateCtrlCqiReport (const SpectrumValue& sinr) = 0;
192
  
185
  
193
  /** 
186
  /** 
194
  * generate a CQI report based on the given SINR of Data frame
187
  * generate a CQI report based on the given SINR of Data frame
 Lines 196-220    Link Here 
196
  * 
189
  * 
197
  * \param sinr the SINR vs frequency measured by the device
190
  * \param sinr the SINR vs frequency measured by the device
198
  */
191
  */
199
  virtual void  GenerateDataCqiReport (const SpectrumValue& sinr) = 0;
192
  virtual void GenerateDataCqiReport (const SpectrumValue& sinr) = 0;
200
193
201
  /**
194
  /**
202
  * generate a report based on the linear interference and noise power
195
  * generate a report based on the linear interference and noise power
203
  * perceived during DATA frame
196
  * perceived during DATA frame
204
  * NOTE: used only by eNB 
197
  * NOTE: used only by eNB 
205
  *
198
  *
206
  * \param sinr the interference + noise power measured by the device
199
  * \param interf the interference + noise power measured by the device
207
  */
200
  */
208
  virtual void ReportInterference (const SpectrumValue& power) = 0;
201
  virtual void ReportInterference (const SpectrumValue& interf) = 0;
209
202
210
  /**
203
  /**
211
  * generate a report based on the linear RS power perceived during CTRL 
204
  * generate a report based on the linear RS power perceived during CTRL 
212
  * frame
205
  * frame
213
  * NOTE: used only by UE for evaluating RSRP
206
  * NOTE: used only by UE for evaluating RSRP
214
  *
207
  *
215
  * \param sinr the RS power measured by the device
208
  * \param power the RS power measured by the device
216
  */
209
  */
217
  virtual void ReportRsReceivedPower (const SpectrumValue& interf) = 0;
210
  virtual void ReportRsReceivedPower (const SpectrumValue& power) = 0;
218
211
219
212
220
213
(-)a/src/lte/model/lte-radio-bearer-tag.h (-2 / +2 lines)
 Lines 57-63    Link Here 
57
   *
57
   *
58
   * @param rnti the value of the RNTI to set
58
   * @param rnti the value of the RNTI to set
59
   */
59
   */
60
  void SetRnti (uint16_t tid);
60
  void SetRnti (uint16_t rnti);
61
61
62
  /**
62
  /**
63
   * Set the LC id to the given value.
63
   * Set the LC id to the given value.
 Lines 71-77    Link Here 
71
  *
71
  *
72
  * @param layer the value of the layer to set
72
  * @param layer the value of the layer to set
73
  */
73
  */
74
  void SetLayer (uint8_t lcid);
74
  void SetLayer (uint8_t layer);
75
75
76
76
77
  virtual void Serialize (TagBuffer i) const;
77
  virtual void Serialize (TagBuffer i) const;
(-)a/src/lte/model/lte-rlc-tag.h (+1 lines)
 Lines 55-60    Link Here 
55
55
56
  /**
56
  /**
57
   * Get the instant when the RLC delivers the PDU to the MAC SAP provider
57
   * Get the instant when the RLC delivers the PDU to the MAC SAP provider
58
   * @return the sender timestamp
58
   */
59
   */
59
  Time  GetSenderTimestamp (void) const
60
  Time  GetSenderTimestamp (void) const
60
  {
61
  {
(-)a/src/lte/model/lte-rlc.h (-2 / +2 lines)
 Lines 81-87    Link Here 
81
  /**
81
  /**
82
   *
82
   *
83
   *
83
   *
84
   * \param s the RLC SAP Provider interface offered to the PDCP by this LTE_RLC
84
   * \return the RLC SAP Provider interface offered to the PDCP by this LTE_RLC
85
   */
85
   */
86
  LteRlcSapProvider* GetLteRlcSapProvider ();
86
  LteRlcSapProvider* GetLteRlcSapProvider ();
87
87
 Lines 95-101    Link Here 
95
  /**
95
  /**
96
   *
96
   *
97
   *
97
   *
98
   * \param s the MAC SAP User interface offered to the MAC by this LTE_RLC
98
   * \return the MAC SAP User interface offered to the MAC by this LTE_RLC
99
   */
99
   */
100
  LteMacSapUser* GetLteMacSapUser ();
100
  LteMacSapUser* GetLteMacSapUser ();
101
101
(-)a/src/lte/model/lte-rrc-sap.h (-21 / +222 lines)
 Lines 600-609    Link Here 
600
600
601
601
602
/**
602
/**
603
 * Service Access Point (SAP) used by the UE RRC to send messages to
603
 * \brief Part of the RRC protocol. This Service Access Point (SAP) is used by
604
 * the eNB. Each method defined in this class correspond to the
604
 *        the UE RRC to send messages to the eNB. Each method defined in this
605
 * transmission of a message that is defined in section 6.2.2 of TS
605
 *        class corresponds to the transmission of a message that is defined in
606
 * 36.331.
606
 *        Section 6.2.2 of TS 36.331.
607
 */
607
 */
608
class LteUeRrcSapUser : public LteRrcSap
608
class LteUeRrcSapUser : public LteRrcSap
609
{
609
{
 Lines 615-634    Link Here 
615
  };
615
  };
616
616
617
  virtual void Setup (SetupParameters params) = 0;
617
  virtual void Setup (SetupParameters params) = 0;
618
619
  /**
620
   * \brief Send an _RRCConnectionRequest message to the serving eNodeB
621
   *        during an RRC connection establishment procedure
622
   *        (Section 5.3.3 of TS 36.331).
623
   * \param msg the message
624
   */
618
  virtual void SendRrcConnectionRequest (RrcConnectionRequest msg) = 0;
625
  virtual void SendRrcConnectionRequest (RrcConnectionRequest msg) = 0;
626
627
  /**
628
   * \brief Send an _RRCConnectionSetupComplete_ message to the serving eNodeB
629
   *        during an RRC connection establishment procedure
630
   *        (Section 5.3.3 of TS 36.331).
631
   * \param msg the message
632
   */
619
  virtual void SendRrcConnectionSetupCompleted (RrcConnectionSetupCompleted msg) = 0;
633
  virtual void SendRrcConnectionSetupCompleted (RrcConnectionSetupCompleted msg) = 0;
634
635
  /**
636
   * \brief Send an _RRCConnectionReconfigurationComplete_ message to the serving eNodeB
637
   *        during an RRC connection reconfiguration procedure
638
   *        (Section 5.3.5 of TS 36.331).
639
   * \param msg the message
640
   */
620
  virtual void SendRrcConnectionReconfigurationCompleted (RrcConnectionReconfigurationCompleted msg) = 0;
641
  virtual void SendRrcConnectionReconfigurationCompleted (RrcConnectionReconfigurationCompleted msg) = 0;
642
643
  /**
644
   * \brief Send an _RRCConnectionReestablishmentRequest_ message to the serving eNodeB
645
   *        during an RRC connection re-establishment procedure
646
   *        (Section 5.3.7 of TS 36.331).
647
   * \param msg the message
648
   */
621
  virtual void SendRrcConnectionReestablishmentRequest (RrcConnectionReestablishmentRequest msg) = 0;
649
  virtual void SendRrcConnectionReestablishmentRequest (RrcConnectionReestablishmentRequest msg) = 0;
650
651
  /**
652
   * \brief Send an _RRCConnectionReestablishmentComplete_ message to the serving eNodeB
653
   *        during an RRC connection re-establishment procedure
654
   *        (Section 5.3.7 of TS 36.331).
655
   * \param msg the message
656
   */
622
  virtual void SendRrcConnectionReestablishmentComplete (RrcConnectionReestablishmentComplete msg) = 0;
657
  virtual void SendRrcConnectionReestablishmentComplete (RrcConnectionReestablishmentComplete msg) = 0;
658
659
  /**
660
   * \brief Send a _MeasurementReport_ message to the serving eNodeB
661
   *        during a measurement reporting procedure
662
   *        (Section 5.5.5 of TS 36.331).
663
   * \param msg the message
664
   */
623
  virtual void SendMeasurementReport (MeasurementReport msg) = 0;
665
  virtual void SendMeasurementReport (MeasurementReport msg) = 0;
666
624
};
667
};
625
668
626
669
627
/**
670
/**
628
 * Service Access Point (SAP) used to let the UE RRC receive a message
671
 * \brief Part of the RRC protocol. This Service Access Point (SAP) is used to
629
 * from the eNB RRC. Each method defined in this class correspond to
672
 *        let the UE RRC receive a message from the eNB RRC. Each method defined
630
 * the reception of a message that is defined in section 6.2.2 of TS
673
 *        in this class corresponds to the reception of a message that is
631
 * 36.331.
674
 *        defined in Section 6.2.2 of TS 36.331.
632
 */
675
 */
633
class LteUeRrcSapProvider : public LteRrcSap
676
class LteUeRrcSapProvider : public LteRrcSap
634
{
677
{
 Lines 640-661    Link Here 
640
  };
683
  };
641
684
642
  virtual void CompleteSetup (CompleteSetupParameters params) = 0;
685
  virtual void CompleteSetup (CompleteSetupParameters params) = 0;
686
687
  /**
688
   * \brief Receive a _SystemInformation_ message from the serving eNodeB
689
   *        during a system information acquisition procedure
690
   *        (Section 5.2.2 of TS 36.331).
691
   * \param msg the message
692
   */
643
  virtual void RecvSystemInformation (SystemInformation msg) = 0;
693
  virtual void RecvSystemInformation (SystemInformation msg) = 0;
694
695
  /**
696
   * \brief Receive an _RRCConnectionSetup_ message from the serving eNodeB
697
   *        during an RRC connection establishment procedure
698
   *        (Section 5.3.3 of TS 36.331).
699
   * \param msg the message
700
   */
644
  virtual void RecvRrcConnectionSetup (RrcConnectionSetup msg) = 0;
701
  virtual void RecvRrcConnectionSetup (RrcConnectionSetup msg) = 0;
702
703
  /**
704
   * \brief Receive an _RRCConnectionReconfiguration_ message from the serving eNodeB
705
   *        during an RRC connection reconfiguration procedure
706
   *        (Section 5.3.5 of TS 36.331).
707
   * \param msg the message
708
   */
645
  virtual void RecvRrcConnectionReconfiguration (RrcConnectionReconfiguration msg) = 0;
709
  virtual void RecvRrcConnectionReconfiguration (RrcConnectionReconfiguration msg) = 0;
710
711
  /**
712
   * \brief Receive an _RRCConnectionReestablishment_ message from the serving eNodeB
713
   *        during an RRC connection re-establishment procedure
714
   *        (Section 5.3.7 of TS 36.331).
715
   * \param msg the message
716
   */
646
  virtual void RecvRrcConnectionReestablishment (RrcConnectionReestablishment msg) = 0;
717
  virtual void RecvRrcConnectionReestablishment (RrcConnectionReestablishment msg) = 0;
718
719
  /**
720
   * \brief Receive an _RRCConnectionReestablishmentReject_ message from the serving eNodeB
721
   *        during an RRC connection re-establishment procedure
722
   *        (Section 5.3.7 of TS 36.331).
723
   * \param msg the message
724
   */
647
  virtual void RecvRrcConnectionReestablishmentReject (RrcConnectionReestablishmentReject msg) = 0;
725
  virtual void RecvRrcConnectionReestablishmentReject (RrcConnectionReestablishmentReject msg) = 0;
726
727
  /**
728
   * \brief Receive an _RRCConnectionRelease_ message from the serving eNodeB
729
   *        during an RRC connection release procedure
730
   *        (Section 5.3.8 of TS 36.331).
731
   * \param msg the message
732
   */
648
  virtual void RecvRrcConnectionRelease (RrcConnectionRelease msg) = 0;
733
  virtual void RecvRrcConnectionRelease (RrcConnectionRelease msg) = 0;
734
735
  /**
736
   * \brief Receive an _RRCConnectionReject_ message from the serving eNodeB
737
   *        during an RRC connection establishment procedure
738
   *        (Section 5.3.3 of TS 36.331).
739
   * \param msg the message
740
   */
649
  virtual void RecvRrcConnectionReject (RrcConnectionReject msg) = 0;
741
  virtual void RecvRrcConnectionReject (RrcConnectionReject msg) = 0;
650
742
651
};
743
};
652
744
653
745
654
/**
746
/**
655
 * Service Access Point (SAP) used by the eNB RRC to send messages to
747
 * \brief Part of the RRC protocol. This Service Access Point (SAP) is used by
656
 * the UE RC.  Each method defined in this class correspond to
748
 *        the eNB RRC to send messages to the UE RRC.  Each method defined in
657
 * the transmission of a message that is defined in section 6.2.2 of TS
749
 *        this class corresponds to the transmission of a message that is
658
 * 36.331.
750
 *        defined in Section 6.2.2 of TS 36.331.
659
 */
751
 */
660
class LteEnbRrcSapUser : public LteRrcSap
752
class LteEnbRrcSapUser : public LteRrcSap
661
{
753
{
 Lines 668-680    Link Here 
668
760
669
  virtual void SetupUe (uint16_t rnti, SetupUeParameters params) = 0;
761
  virtual void SetupUe (uint16_t rnti, SetupUeParameters params) = 0;
670
  virtual void RemoveUe (uint16_t rnti) = 0;
762
  virtual void RemoveUe (uint16_t rnti) = 0;
763
764
  /**
765
   * \brief Send a _SystemInformation_ message to all attached UEs
766
   *        during a system information acquisition procedure
767
   *        (Section 5.2.2 of TS 36.331).
768
   * \param msg the message
769
   */
671
  virtual void SendSystemInformation (SystemInformation msg) = 0;
770
  virtual void SendSystemInformation (SystemInformation msg) = 0;
771
772
  /**
773
   * \brief Send an _RRCConnectionSetup_ message to a UE
774
   *        during an RRC connection establishment procedure
775
   *        (Section 5.3.3 of TS 36.331).
776
   * \param rnti the RNTI of the destination UE
777
   * \param msg the message
778
   */
672
  virtual void SendRrcConnectionSetup (uint16_t rnti, RrcConnectionSetup msg) = 0;
779
  virtual void SendRrcConnectionSetup (uint16_t rnti, RrcConnectionSetup msg) = 0;
780
781
  /**
782
   * \brief Send an _RRCConnectionReconfiguration_ message to a UE
783
   *        during an RRC connection reconfiguration procedure
784
   *        (Section 5.3.5 of TS 36.331).
785
   * \param rnti the RNTI of the destination UE
786
   * \param msg the message
787
   */
673
  virtual void SendRrcConnectionReconfiguration (uint16_t rnti, RrcConnectionReconfiguration msg) = 0;
788
  virtual void SendRrcConnectionReconfiguration (uint16_t rnti, RrcConnectionReconfiguration msg) = 0;
789
790
  /**
791
   * \brief Send an _RRCConnectionReestablishment_ message to a UE
792
   *        during an RRC connection re-establishment procedure
793
   *        (Section 5.3.7 of TS 36.331).
794
   * \param rnti the RNTI of the destination UE
795
   * \param msg the message
796
   */
674
  virtual void SendRrcConnectionReestablishment (uint16_t rnti, RrcConnectionReestablishment msg) = 0;
797
  virtual void SendRrcConnectionReestablishment (uint16_t rnti, RrcConnectionReestablishment msg) = 0;
798
799
  /**
800
   * \brief Send an _RRCConnectionReestablishmentReject_ message to a UE
801
   *        during an RRC connection re-establishment procedure
802
   *        (Section 5.3.7 of TS 36.331).
803
   * \param rnti the RNTI of the destination UE
804
   * \param msg the message
805
   */
675
  virtual void SendRrcConnectionReestablishmentReject (uint16_t rnti, RrcConnectionReestablishmentReject msg) = 0;
806
  virtual void SendRrcConnectionReestablishmentReject (uint16_t rnti, RrcConnectionReestablishmentReject msg) = 0;
807
808
  /**
809
   * \brief Send an _RRCConnectionRelease_ message to a UE
810
   *        during an RRC connection release procedure
811
   *        (Section 5.3.8 of TS 36.331).
812
   * \param rnti the RNTI of the destination UE
813
   * \param msg the message
814
   */
676
  virtual void SendRrcConnectionRelease (uint16_t rnti, RrcConnectionRelease msg) = 0;
815
  virtual void SendRrcConnectionRelease (uint16_t rnti, RrcConnectionRelease msg) = 0;
816
817
  /**
818
   * \brief Send an _RRCConnectionReject_ message to a UE
819
   *        during an RRC connection establishment procedure
820
   *        (Section 5.3.3 of TS 36.331).
821
   * \param rnti the RNTI of the destination UE
822
   * \param msg the message
823
   */
677
  virtual void SendRrcConnectionReject (uint16_t rnti, RrcConnectionReject msg) = 0;
824
  virtual void SendRrcConnectionReject (uint16_t rnti, RrcConnectionReject msg) = 0;
825
678
  virtual Ptr<Packet> EncodeHandoverPreparationInformation (HandoverPreparationInfo msg) = 0;
826
  virtual Ptr<Packet> EncodeHandoverPreparationInformation (HandoverPreparationInfo msg) = 0;
679
  virtual HandoverPreparationInfo DecodeHandoverPreparationInformation (Ptr<Packet> p) = 0;
827
  virtual HandoverPreparationInfo DecodeHandoverPreparationInformation (Ptr<Packet> p) = 0;
680
  virtual Ptr<Packet> EncodeHandoverCommand (RrcConnectionReconfiguration msg) = 0;
828
  virtual Ptr<Packet> EncodeHandoverCommand (RrcConnectionReconfiguration msg) = 0;
 Lines 684-693    Link Here 
684
832
685
833
686
/**
834
/**
687
 * Service Access Point (SAP) used to let the eNB RRC receive a
835
 * \brief Part of the RRC protocol. This Service Access Point (SAP) is used to
688
 * message from a UE RRC.  Each method defined in this class correspond to
836
 *        let the eNB RRC receive a message from a UE RRC.  Each method defined
689
 * the reception of a message that is defined in section 6.2.2 of TS
837
 *        in this class corresponds to the reception of a message that is
690
 * 36.331.
838
 *        defined in Section 6.2.2 of TS 36.331.
691
 */
839
 */
692
class LteEnbRrcSapProvider : public LteRrcSap
840
class LteEnbRrcSapProvider : public LteRrcSap
693
{
841
{
 Lines 699-709    Link Here 
699
  };
847
  };
700
848
701
  virtual void CompleteSetupUe (uint16_t rnti, CompleteSetupUeParameters params) = 0;
849
  virtual void CompleteSetupUe (uint16_t rnti, CompleteSetupUeParameters params) = 0;
702
  virtual void RecvRrcConnectionRequest (uint16_t rnti, RrcConnectionRequest msg) = 0;
850
703
  virtual void RecvRrcConnectionSetupCompleted (uint16_t rnti, RrcConnectionSetupCompleted msg) = 0;
851
  /**
704
  virtual void RecvRrcConnectionReconfigurationCompleted (uint16_t rnti, RrcConnectionReconfigurationCompleted msg) = 0;
852
   * \brief Receive an _RRCConnectionRequest_ message from a UE
705
  virtual void RecvRrcConnectionReestablishmentRequest (uint16_t rnti, RrcConnectionReestablishmentRequest msg) = 0;
853
   *        during an RRC connection establishment procedure
706
  virtual void RecvRrcConnectionReestablishmentComplete (uint16_t rnti, RrcConnectionReestablishmentComplete msg) = 0;
854
   *        (Section 5.3.3 of TS 36.331).
855
   * \param rnti the RNTI of UE which sent the message
856
   * \param msg the message
857
   */
858
  virtual void RecvRrcConnectionRequest (uint16_t rnti,
859
                                         RrcConnectionRequest msg) = 0;
860
861
  /**
862
   * \brief Receive an _RRCConnectionSetupComplete_ message from a UE
863
   *        during an RRC connection establishment procedure
864
   *        (Section 5.3.3 of TS 36.331).
865
   * \param rnti the RNTI of UE which sent the message
866
   * \param msg the message
867
   */
868
  virtual void RecvRrcConnectionSetupCompleted (uint16_t rnti,
869
                                                RrcConnectionSetupCompleted msg) = 0;
870
871
  /**
872
   * \brief Receive an _RRCConnectionReconfigurationComplete_ message from a UE
873
   *        during an RRC connection reconfiguration procedure
874
   *        (Section 5.3.5 of TS 36.331).
875
   * \param rnti the RNTI of UE which sent the message
876
   * \param msg the message
877
   */
878
  virtual void RecvRrcConnectionReconfigurationCompleted (uint16_t rnti,
879
                                                          RrcConnectionReconfigurationCompleted msg) = 0;
880
881
  /**
882
   * \brief Receive an _RRCConnectionReestablishmentRequest_ message from a UE
883
   *        during an RRC connection re-establishment procedure
884
   *        (Section 5.3.7 of TS 36.331).
885
   * \param rnti the RNTI of UE which sent the message
886
   * \param msg the message
887
   */
888
  virtual void RecvRrcConnectionReestablishmentRequest (uint16_t rnti,
889
                                                        RrcConnectionReestablishmentRequest msg) = 0;
890
891
  /**
892
   * \brief Receive an _RRCConnectionReestablishmentComplete_ message from a UE
893
   *        during an RRC connection re-establishment procedure
894
   *        (Section 5.3.7 of TS 36.331).
895
   * \param rnti the RNTI of UE which sent the message
896
   * \param msg the message
897
   */
898
  virtual void RecvRrcConnectionReestablishmentComplete (uint16_t rnti,
899
                                                         RrcConnectionReestablishmentComplete msg) = 0;
900
901
  /**
902
   * \brief Receive a _MeasurementReport_ message from a UE
903
   *        during a measurement reporting procedure
904
   *        (Section 5.5.5 of TS 36.331).
905
   * \param rnti the RNTI of UE which sent the message
906
   * \param msg the message
907
   */
707
  virtual void RecvMeasurementReport (uint16_t rnti, MeasurementReport msg) = 0;
908
  virtual void RecvMeasurementReport (uint16_t rnti, MeasurementReport msg) = 0;
708
909
709
};
910
};
(-)a/src/lte/model/lte-spectrum-phy.h (-14 / +11 lines)
 Lines 227-233    Link Here 
227
  * Start a transmission of control frame in DL
227
  * Start a transmission of control frame in DL
228
  *
228
  *
229
  *
229
  *
230
  * @param ctrlMsgList the burst of contrl messages to be transmitted
230
  * @param ctrlMsgList the burst of control messages to be transmitted
231
  * @param pss the flag for transmitting the primary synchronization signal
231
  * @param pss the flag for transmitting the primary synchronization signal
232
  *
232
  *
233
  * @return true if an error occurred and the transmission was not
233
  * @return true if an error occurred and the transmission was not
 Lines 239-247    Link Here 
239
  /**
239
  /**
240
  * Start a transmission of control frame in UL
240
  * Start a transmission of control frame in UL
241
  *
241
  *
242
  *
243
  * @param pb the burst of control messages to be transmitted
244
  *
245
  * @return true if an error occurred and the transmission was not
242
  * @return true if an error occurred and the transmission was not
246
  * started, false otherwise.
243
  * started, false otherwise.
247
  */
244
  */
 Lines 250-256    Link Here 
250
247
251
  /**
248
  /**
252
   * set the callback for the end of a TX, as part of the
249
   * set the callback for the end of a TX, as part of the
253
   * interconnections betweenthe PHY and the MAC
250
   * interconnections between the PHY and the MAC
254
   *
251
   *
255
   * @param c the callback
252
   * @param c the callback
256
   */
253
   */
 Lines 258-264    Link Here 
258
255
259
  /**
256
  /**
260
   * set the callback for the end of a RX in error, as part of the
257
   * set the callback for the end of a RX in error, as part of the
261
   * interconnections betweenthe PHY and the MAC
258
   * interconnections between the PHY and the MAC
262
   *
259
   *
263
   * @param c the callback
260
   * @param c the callback
264
   */
261
   */
 Lines 266-272    Link Here 
266
263
267
  /**
264
  /**
268
   * set the callback for the successful end of a RX, as part of the
265
   * set the callback for the successful end of a RX, as part of the
269
   * interconnections betweenthe PHY and the MAC
266
   * interconnections between the PHY and the MAC
270
   *
267
   *
271
   * @param c the callback
268
   * @param c the callback
272
   */
269
   */
 Lines 274-280    Link Here 
274
  
271
  
275
  /**
272
  /**
276
  * set the callback for the successful end of a RX ctrl frame, as part 
273
  * set the callback for the successful end of a RX ctrl frame, as part 
277
  * of the interconnections betweenthe LteSpectrumPhy and the PHY
274
  * of the interconnections between the LteSpectrumPhy and the PHY
278
  *
275
  *
279
  * @param c the callback
276
  * @param c the callback
280
  */
277
  */
 Lines 282-288    Link Here 
282
  
279
  
283
  /**
280
  /**
284
  * set the callback for the erroneous end of a RX ctrl frame, as part 
281
  * set the callback for the erroneous end of a RX ctrl frame, as part 
285
  * of the interconnections betweenthe LteSpectrumPhy and the PHY
282
  * of the interconnections between the LteSpectrumPhy and the PHY
286
  *
283
  *
287
  * @param c the callback
284
  * @param c the callback
288
  */
285
  */
 Lines 298-304    Link Here 
298
295
299
  /**
296
  /**
300
  * set the callback for the DL HARQ feedback as part of the 
297
  * set the callback for the DL HARQ feedback as part of the 
301
  * interconnections betweenthe LteSpectrumPhy and the PHY
298
  * interconnections between the LteSpectrumPhy and the PHY
302
  *
299
  *
303
  * @param c the callback
300
  * @param c the callback
304
  */
301
  */
 Lines 306-312    Link Here 
306
303
307
  /**
304
  /**
308
  * set the callback for the UL HARQ feedback as part of the
305
  * set the callback for the UL HARQ feedback as part of the
309
  * interconnections betweenthe LteSpectrumPhy and the PHY
306
  * interconnections between the LteSpectrumPhy and the PHY
310
  *
307
  *
311
  * @param c the callback
308
  * @param c the callback
312
  */
309
  */
 Lines 330-336    Link Here 
330
  *
327
  *
331
  *
328
  *
332
  * \param p the new LteSinrChunkProcessor to be added to the RS power 
329
  * \param p the new LteSinrChunkProcessor to be added to the RS power 
333
  * \processing chain
330
  *          processing chain
334
  */
331
  */
335
  void AddRsPowerChunkProcessor (Ptr<LteSinrChunkProcessor> p);
332
  void AddRsPowerChunkProcessor (Ptr<LteSinrChunkProcessor> p);
336
  
333
  
 Lines 342-348    Link Here 
342
  void AddDataSinrChunkProcessor (Ptr<LteSinrChunkProcessor> p);
339
  void AddDataSinrChunkProcessor (Ptr<LteSinrChunkProcessor> p);
343
340
344
  /**
341
  /**
345
  *  LteSinrChunkProcessor devoted to evaluate intefrerence + noise power 
342
  *  LteSinrChunkProcessor devoted to evaluate interference + noise power
346
  *  in control symbols of the subframe
343
  *  in control symbols of the subframe
347
  *
344
  *
348
  * \param p the new LteSinrChunkProcessor to be added to the data processing chain
345
  * \param p the new LteSinrChunkProcessor to be added to the data processing chain
 Lines 350-356    Link Here 
350
  void AddInterferenceCtrlChunkProcessor (Ptr<LteSinrChunkProcessor> p);
347
  void AddInterferenceCtrlChunkProcessor (Ptr<LteSinrChunkProcessor> p);
351
348
352
  /**
349
  /**
353
  *  LteSinrChunkProcessor devoted to evaluate intefrerence + noise power
350
  *  LteSinrChunkProcessor devoted to evaluate interference + noise power
354
  *  in data symbols of the subframe
351
  *  in data symbols of the subframe
355
  *
352
  *
356
  * \param p the new LteSinrChunkProcessor to be added to the data processing chain
353
  * \param p the new LteSinrChunkProcessor to be added to the data processing chain
(-)a/src/lte/model/lte-spectrum-value-helper.h (-3 / +6 lines)
 Lines 102-113    Link Here 
102
   * \param earfcn the carrier frequency (EARFCN) of the transmission
102
   * \param earfcn the carrier frequency (EARFCN) of the transmission
103
   * \param bandwidth the Transmission Bandwidth Configuration in
103
   * \param bandwidth the Transmission Bandwidth Configuration in
104
   * number of resource blocks
104
   * number of resource blocks
105
   * \param txPower the total power in dBm over the whole bandwidth
105
   * \param powerTx the total power in dBm over the whole bandwidth
106
   * \param ActiveRbs the list of Active Resource Blocks (PRBs)
106
   * \param activeRbs the list of Active Resource Blocks (PRBs)
107
   *
107
   *
108
   * \return a pointer to a newly allocated SpectrumValue representing the TX Power Spectral Density in W/Hz for each Resource Block
108
   * \return a pointer to a newly allocated SpectrumValue representing the TX Power Spectral Density in W/Hz for each Resource Block
109
   */
109
   */
110
  static Ptr<SpectrumValue> CreateTxPowerSpectralDensity (uint16_t earfcn, uint8_t bandwidth, double powerTx, std::vector <int> activeRbs);
110
  static Ptr<SpectrumValue> CreateTxPowerSpectralDensity (uint16_t earfcn,
111
                                                          uint8_t bandwidth,
112
                                                          double powerTx,
113
                                                          std::vector <int> activeRbs);
111
114
112
115
113
  /**
116
  /**
(-)a/src/lte/model/lte-ue-cphy-sap.h (-3 / +3 lines)
 Lines 128-136    Link Here 
128
  virtual void SetTransmissionMode (uint8_t txMode) = 0;
128
  virtual void SetTransmissionMode (uint8_t txMode) = 0;
129
129
130
  /**
130
  /**
131
   * \param txMode the transmissionMode of the user
131
   * \param srcCi the SRS configuration index
132
   */
132
   */
133
  virtual void SetSrsConfigurationIndex (uint16_t   srcCi) = 0;
133
  virtual void SetSrsConfigurationIndex (uint16_t srcCi) = 0;
134
134
135
};
135
};
136
136
 Lines 182-188    Link Here 
182
  /**
182
  /**
183
   * \brief Relay an SIB1 message from the PHY entity to the RRC layer.
183
   * \brief Relay an SIB1 message from the PHY entity to the RRC layer.
184
   * \param cellId the ID of the eNodeB where the message originates from
184
   * \param cellId the ID of the eNodeB where the message originates from
185
   * \param mib the System Information Block Type 1 message
185
   * \param sib1 the System Information Block Type 1 message
186
   *
186
   *
187
   * This function is typically called after PHY receives an SIB1 message over
187
   * This function is typically called after PHY receives an SIB1 message over
188
   * the BCH.
188
   * the BCH.
(-)a/src/lte/model/lte-ue-net-device.h (-1 / +1 lines)
 Lines 82-88    Link Here 
82
  uint16_t GetDlEarfcn () const;
82
  uint16_t GetDlEarfcn () const;
83
83
84
  /**
84
  /**
85
   * \param bw the downlink carrier frequency (EARFCN)
85
   * \param earfcn the downlink carrier frequency (EARFCN)
86
   *
86
   *
87
   * Note that real-life handset typically supports more than one EARFCN, but
87
   * Note that real-life handset typically supports more than one EARFCN, but
88
   * the sake of simplicity we assume only one EARFCN is supported.
88
   * the sake of simplicity we assume only one EARFCN is supported.
(-)a/src/lte/model/lte-ue-phy.h (-3 / +4 lines)
 Lines 109-115    Link Here 
109
109
110
110
111
  /**
111
  /**
112
   * \param pw the transmission power in dBm
112
   * \param pow the transmission power in dBm
113
   */
113
   */
114
  void SetTxPower (double pow);
114
  void SetTxPower (double pow);
115
115
 Lines 118-126    Link Here 
118
   */
118
   */
119
  double GetTxPower () const;
119
  double GetTxPower () const;
120
  /**
120
  /**
121
   * \param pw the noise figure in dB
121
   * \param nf the noise figure in dB
122
   */
122
   */
123
  void SetNoiseFigure (double pow);
123
  void SetNoiseFigure (double nf);
124
124
125
  /**
125
  /**
126
   * \return the noise figure in dB
126
   * \return the noise figure in dB
 Lines 174-179    Link Here 
174
  * \brief Create the DL CQI feedback from SINR values perceived at
174
  * \brief Create the DL CQI feedback from SINR values perceived at
175
  * the physical layer with the signal received from eNB
175
  * the physical layer with the signal received from eNB
176
  * \param sinr SINR values vector
176
  * \param sinr SINR values vector
177
  * \return a DL CQI control message containing the CQI feedback
177
  */
178
  */
178
  Ptr<DlCqiLteControlMessage> CreateDlCqiFeedbackMessage (const SpectrumValue& sinr);
179
  Ptr<DlCqiLteControlMessage> CreateDlCqiFeedbackMessage (const SpectrumValue& sinr);
179
180
(-)a/src/lte/model/lte-ue-rrc.h (+9 lines)
 Lines 274-286    Link Here 
274
  void DoReportUeMeasurements (LteUeCphySapUser::UeMeasurementsParameters params);
274
  void DoReportUeMeasurements (LteUeCphySapUser::UeMeasurementsParameters params);
275
275
276
  // RRC SAP methods
276
  // RRC SAP methods
277
278
  /// Part of the RRC protocol. Implement the LteUeRrcSapProvider::CompleteSetup interface.
277
  void DoCompleteSetup (LteUeRrcSapProvider::CompleteSetupParameters params);
279
  void DoCompleteSetup (LteUeRrcSapProvider::CompleteSetupParameters params);
280
  /// Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvSystemInformation interface.
278
  void DoRecvSystemInformation (LteRrcSap::SystemInformation msg);
281
  void DoRecvSystemInformation (LteRrcSap::SystemInformation msg);
282
  /// Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionSetup interface.
279
  void DoRecvRrcConnectionSetup (LteRrcSap::RrcConnectionSetup msg);
283
  void DoRecvRrcConnectionSetup (LteRrcSap::RrcConnectionSetup msg);
284
  /// Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReconfiguration interface.
280
  void DoRecvRrcConnectionReconfiguration (LteRrcSap::RrcConnectionReconfiguration msg);
285
  void DoRecvRrcConnectionReconfiguration (LteRrcSap::RrcConnectionReconfiguration msg);
286
  /// Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReestablishment interface.
281
  void DoRecvRrcConnectionReestablishment (LteRrcSap::RrcConnectionReestablishment msg);
287
  void DoRecvRrcConnectionReestablishment (LteRrcSap::RrcConnectionReestablishment msg);
288
  /// Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReestablishmentReject interface.
282
  void DoRecvRrcConnectionReestablishmentReject (LteRrcSap::RrcConnectionReestablishmentReject msg);
289
  void DoRecvRrcConnectionReestablishmentReject (LteRrcSap::RrcConnectionReestablishmentReject msg);
290
  /// Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionRelease interface.
283
  void DoRecvRrcConnectionRelease (LteRrcSap::RrcConnectionRelease msg);
291
  void DoRecvRrcConnectionRelease (LteRrcSap::RrcConnectionRelease msg);
292
  /// Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReject interface.
284
  void DoRecvRrcConnectionReject (LteRrcSap::RrcConnectionReject msg);
293
  void DoRecvRrcConnectionReject (LteRrcSap::RrcConnectionReject msg);
285
294
286
 
295
 
(-)a/src/lte/model/trace-fading-loss-model.h (-8 / +6 lines)
 Lines 69-82    Link Here 
69
  
69
  
70
private:
70
private:
71
  /**
71
  /**
72
   * @param txPower set of values vs frequency representing the
72
   * \param txPsd set of values vs frequency representing the
73
   * transmission power. See SpectrumChannel for details.
73
   *              transmission power. See SpectrumChannel for details.
74
   *
74
   * \param a sender mobility
75
   * @param a sender mobility
75
   * \param b receiver mobility
76
   * @param b receiver mobility
76
   * \return set of values vs frequency representing the received
77
   *
77
   *         power in the same units used for the txPsd parameter.
78
   * @return set of values vs frequency representing the received
79
   * power in the same units used for the txPower parameter.
80
   */
78
   */
81
  Ptr<SpectrumValue> DoCalcRxPowerSpectralDensity (Ptr<const SpectrumValue> txPsd,
79
  Ptr<SpectrumValue> DoCalcRxPowerSpectralDensity (Ptr<const SpectrumValue> txPsd,
82
                                                   Ptr<const MobilityModel> a,
80
                                                   Ptr<const MobilityModel> a,
(-)a/src/lte/test/lte-test-cell-selection.h (-1 lines)
 Lines 76-82    Link Here 
76
   * \param isIdealRrc if true, simulation uses Ideal RRC protocol, otherwise
76
   * \param isIdealRrc if true, simulation uses Ideal RRC protocol, otherwise
77
   *                   simulation uses Real RRC protocol
77
   *                   simulation uses Real RRC protocol
78
   * \param interSiteDistance the distance between eNodeB in meters
78
   * \param interSiteDistance the distance between eNodeB in meters
79
   * \param enbTxPower the transmitting power of eNodeBs in dBm
80
   * \param ueSetupList a list of UE configuration to be installed in the
79
   * \param ueSetupList a list of UE configuration to be installed in the
81
   *                    simulation
80
   *                    simulation
82
   * \param rngRun the number of run to be used by the random number generator
81
   * \param rngRun the number of run to be used by the random number generator

Return to bug 938