A Discrete-Event Network Simulator
API
epc-x2-header.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2012 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation;
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program; if not, write to the Free Software
15  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16  *
17  * Author: Manuel Requena <manuel.requena@cttc.es>
18  */
19 
20 #ifndef EPC_X2_HEADER_H
21 #define EPC_X2_HEADER_H
22 
23 #include "epc-x2-sap.h"
24 
25 #include "ns3/header.h"
26 
27 #include <vector>
28 
29 namespace ns3
30 {
31 
32 class EpcX2Header : public Header
33 {
34  public:
35  EpcX2Header();
36  ~EpcX2Header() override;
37 
42  static TypeId GetTypeId();
43  TypeId GetInstanceTypeId() const override;
44  uint32_t GetSerializedSize() const override;
45  void Serialize(Buffer::Iterator start) const override;
46  uint32_t Deserialize(Buffer::Iterator start) override;
47  void Print(std::ostream& os) const override;
48 
53  uint8_t GetMessageType() const;
58  void SetMessageType(uint8_t messageType);
59 
64  uint8_t GetProcedureCode() const;
69  void SetProcedureCode(uint8_t procedureCode);
70 
75  void SetLengthOfIes(uint32_t lengthOfIes);
80  void SetNumberOfIes(uint32_t numberOfIes);
81 
84  {
91  };
92 
95  {
99  };
100 
101  private:
102  uint8_t m_messageType;
103  uint8_t m_procedureCode;
104 
105  uint32_t m_lengthOfIes;
106  uint32_t m_numberOfIes;
107 };
108 
113 {
114  public:
116  ~EpcX2HandoverRequestHeader() override;
117 
122  static TypeId GetTypeId();
123  TypeId GetInstanceTypeId() const override;
124  uint32_t GetSerializedSize() const override;
125  void Serialize(Buffer::Iterator start) const override;
126  uint32_t Deserialize(Buffer::Iterator start) override;
127  void Print(std::ostream& os) const override;
128 
133  uint16_t GetOldEnbUeX2apId() const;
138  void SetOldEnbUeX2apId(uint16_t x2apId);
139 
144  uint16_t GetCause() const;
149  void SetCause(uint16_t cause);
150 
155  uint16_t GetTargetCellId() const;
160  void SetTargetCellId(uint16_t targetCellId);
161 
166  uint32_t GetMmeUeS1apId() const;
171  void SetMmeUeS1apId(uint32_t mmeUeS1apId);
172 
177  std::vector<EpcX2Sap::ErabToBeSetupItem> GetBearers() const;
182  void SetBearers(std::vector<EpcX2Sap::ErabToBeSetupItem> bearers);
183 
188  uint64_t GetUeAggregateMaxBitRateDownlink() const;
193  void SetUeAggregateMaxBitRateDownlink(uint64_t bitRate);
194 
199  uint64_t GetUeAggregateMaxBitRateUplink() const;
204  void SetUeAggregateMaxBitRateUplink(uint64_t bitRate);
205 
210  uint32_t GetLengthOfIes() const;
215  uint32_t GetNumberOfIes() const;
216 
217  private:
218  uint32_t m_numberOfIes;
219  uint32_t m_headerLength;
220 
221  uint16_t m_oldEnbUeX2apId;
222  uint16_t m_cause;
223  uint16_t m_targetCellId;
224  uint32_t m_mmeUeS1apId;
227  std::vector<EpcX2Sap::ErabToBeSetupItem> m_erabsToBeSetupList;
228 };
229 
234 {
235  public:
238 
243  static TypeId GetTypeId();
244  TypeId GetInstanceTypeId() const override;
245  uint32_t GetSerializedSize() const override;
246  void Serialize(Buffer::Iterator start) const override;
247  uint32_t Deserialize(Buffer::Iterator start) override;
248  void Print(std::ostream& os) const override;
249 
254  uint16_t GetOldEnbUeX2apId() const;
259  void SetOldEnbUeX2apId(uint16_t x2apId);
260 
265  uint16_t GetNewEnbUeX2apId() const;
270  void SetNewEnbUeX2apId(uint16_t x2apId);
271 
276  std::vector<EpcX2Sap::ErabAdmittedItem> GetAdmittedBearers() const;
281  void SetAdmittedBearers(std::vector<EpcX2Sap::ErabAdmittedItem> bearers);
282 
287  std::vector<EpcX2Sap::ErabNotAdmittedItem> GetNotAdmittedBearers() const;
292  void SetNotAdmittedBearers(std::vector<EpcX2Sap::ErabNotAdmittedItem> bearers);
293 
298  uint32_t GetLengthOfIes() const;
303  uint32_t GetNumberOfIes() const;
304 
305  private:
306  uint32_t m_numberOfIes;
307  uint32_t m_headerLength;
308 
309  uint16_t m_oldEnbUeX2apId;
310  uint16_t m_newEnbUeX2apId;
311  std::vector<EpcX2Sap::ErabAdmittedItem> m_erabsAdmittedList;
312  std::vector<EpcX2Sap::ErabNotAdmittedItem> m_erabsNotAdmittedList;
313 };
314 
319 {
320  public:
323 
328  static TypeId GetTypeId();
329  TypeId GetInstanceTypeId() const override;
330  uint32_t GetSerializedSize() const override;
331  void Serialize(Buffer::Iterator start) const override;
332  uint32_t Deserialize(Buffer::Iterator start) override;
333  void Print(std::ostream& os) const override;
334 
339  uint16_t GetOldEnbUeX2apId() const;
344  void SetOldEnbUeX2apId(uint16_t x2apId);
345 
350  uint16_t GetCause() const;
355  void SetCause(uint16_t cause);
356 
361  uint16_t GetCriticalityDiagnostics() const;
366  void SetCriticalityDiagnostics(uint16_t criticalityDiagnostics);
367 
372  uint32_t GetLengthOfIes() const;
377  uint32_t GetNumberOfIes() const;
378 
379  private:
380  uint32_t m_numberOfIes;
381  uint32_t m_headerLength;
382 
383  uint16_t m_oldEnbUeX2apId;
384  uint16_t m_cause;
386 };
387 
392 {
393  public:
395  ~EpcX2SnStatusTransferHeader() override;
396 
401  static TypeId GetTypeId();
402  TypeId GetInstanceTypeId() const override;
403  uint32_t GetSerializedSize() const override;
404  void Serialize(Buffer::Iterator start) const override;
405  uint32_t Deserialize(Buffer::Iterator start) override;
406  void Print(std::ostream& os) const override;
407 
412  uint16_t GetOldEnbUeX2apId() const;
417  void SetOldEnbUeX2apId(uint16_t x2apId);
418 
423  uint16_t GetNewEnbUeX2apId() const;
428  void SetNewEnbUeX2apId(uint16_t x2apId);
429 
434  std::vector<EpcX2Sap::ErabsSubjectToStatusTransferItem> GetErabsSubjectToStatusTransferList()
435  const;
441  std::vector<EpcX2Sap::ErabsSubjectToStatusTransferItem> erabs);
442 
447  uint32_t GetLengthOfIes() const;
452  uint32_t GetNumberOfIes() const;
453 
454  private:
455  uint32_t m_numberOfIes;
456  uint32_t m_headerLength;
457 
458  uint16_t m_oldEnbUeX2apId;
459  uint16_t m_newEnbUeX2apId;
460  std::vector<EpcX2Sap::ErabsSubjectToStatusTransferItem>
462 };
463 
468 {
469  public:
471  ~EpcX2UeContextReleaseHeader() override;
472 
477  static TypeId GetTypeId();
478  TypeId GetInstanceTypeId() const override;
479  uint32_t GetSerializedSize() const override;
480  void Serialize(Buffer::Iterator start) const override;
481  uint32_t Deserialize(Buffer::Iterator start) override;
482  void Print(std::ostream& os) const override;
483 
488  uint16_t GetOldEnbUeX2apId() const;
493  void SetOldEnbUeX2apId(uint16_t x2apId);
494 
499  uint16_t GetNewEnbUeX2apId() const;
504  void SetNewEnbUeX2apId(uint16_t x2apId);
505 
510  uint32_t GetLengthOfIes() const;
515  uint32_t GetNumberOfIes() const;
516 
517  private:
518  uint32_t m_numberOfIes;
519  uint32_t m_headerLength;
520 
521  uint16_t m_oldEnbUeX2apId;
522  uint16_t m_newEnbUeX2apId;
523 };
524 
529 {
530  public:
532  ~EpcX2LoadInformationHeader() override;
533 
538  static TypeId GetTypeId();
539  TypeId GetInstanceTypeId() const override;
540  uint32_t GetSerializedSize() const override;
541  void Serialize(Buffer::Iterator start) const override;
542  uint32_t Deserialize(Buffer::Iterator start) override;
543  void Print(std::ostream& os) const override;
544 
549  std::vector<EpcX2Sap::CellInformationItem> GetCellInformationList() const;
554  void SetCellInformationList(std::vector<EpcX2Sap::CellInformationItem> cellInformationList);
555 
560  uint32_t GetLengthOfIes() const;
565  uint32_t GetNumberOfIes() const;
566 
567  private:
568  uint32_t m_numberOfIes;
569  uint32_t m_headerLength;
570 
571  std::vector<EpcX2Sap::CellInformationItem> m_cellInformationList;
572 };
573 
578 {
579  public:
582 
587  static TypeId GetTypeId();
588  TypeId GetInstanceTypeId() const override;
589  uint32_t GetSerializedSize() const override;
590  void Serialize(Buffer::Iterator start) const override;
591  uint32_t Deserialize(Buffer::Iterator start) override;
592  void Print(std::ostream& os) const override;
593 
598  uint16_t GetEnb1MeasurementId() const;
603  void SetEnb1MeasurementId(uint16_t enb1MeasurementId);
604 
609  uint16_t GetEnb2MeasurementId() const;
614  void SetEnb2MeasurementId(uint16_t enb2MeasurementId);
615 
620  std::vector<EpcX2Sap::CellMeasurementResultItem> GetCellMeasurementResultList() const;
626  std::vector<EpcX2Sap::CellMeasurementResultItem> cellMeasurementResultList);
627 
632  uint32_t GetLengthOfIes() const;
637  uint32_t GetNumberOfIes() const;
638 
639  private:
640  uint32_t m_numberOfIes;
641  uint32_t m_headerLength;
642 
645  std::vector<EpcX2Sap::CellMeasurementResultItem>
647 };
648 
653 {
654  public:
656  ~EpcX2HandoverCancelHeader() override;
657 
662  static TypeId GetTypeId();
663  TypeId GetInstanceTypeId() const override;
664  uint32_t GetSerializedSize() const override;
665  void Serialize(Buffer::Iterator start) const override;
666  uint32_t Deserialize(Buffer::Iterator start) override;
667  void Print(std::ostream& os) const override;
668 
673  uint16_t GetOldEnbUeX2apId() const;
678  void SetOldEnbUeX2apId(uint16_t x2apId);
679 
684  uint16_t GetNewEnbUeX2apId() const;
689  void SetNewEnbUeX2apId(uint16_t x2apId);
690 
695  uint16_t GetCause() const;
700  void SetCause(uint16_t cause);
701 
706  uint32_t GetLengthOfIes() const;
711  uint32_t GetNumberOfIes() const;
712 
713  private:
714  uint32_t m_numberOfIes;
715  uint32_t m_headerLength;
716 
717  uint16_t m_oldEnbUeX2apId;
718  uint16_t m_newEnbUeX2apId;
719  uint16_t m_cause;
720 };
721 
722 } // namespace ns3
723 
724 #endif // EPC_X2_HEADER_H
iterator in a Buffer instance
Definition: buffer.h:100
EpcX2HandoverCancelHeader.
uint16_t m_oldEnbUeX2apId
old ENB UE X2 AP ID
uint16_t GetNewEnbUeX2apId() const
Get new ENB UE X2 AP ID function.
void SetOldEnbUeX2apId(uint16_t x2apId)
Set old ENB UE X2 AP ID function.
uint32_t GetLengthOfIes() const
Get length of IEs function.
uint16_t m_newEnbUeX2apId
new ENB UE X2 AP ID
uint16_t GetOldEnbUeX2apId() const
Get old ENB UE X2 AP ID function.
uint32_t m_headerLength
header length
void SetCause(uint16_t cause)
Set cause function.
void Serialize(Buffer::Iterator start) const override
uint16_t GetCause() const
Get cause function.
uint32_t GetNumberOfIes() const
Get number of IEs function.
void Print(std::ostream &os) const override
uint32_t GetSerializedSize() const override
uint32_t m_numberOfIes
number of IEs
static TypeId GetTypeId()
Get the type ID.
void SetNewEnbUeX2apId(uint16_t x2apId)
Set new ENB UE X2 AP ID function.
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
EpcX2HandoverPreparationFailureHeader.
void SetCriticalityDiagnostics(uint16_t criticalityDiagnostics)
Set criticality diagnostics function.
void SetCause(uint16_t cause)
Set cause function.
uint16_t GetOldEnbUeX2apId() const
Get old ENB UE X2 AP ID function.
void Serialize(Buffer::Iterator start) const override
static TypeId GetTypeId()
Get the type ID.
uint16_t GetCause() const
Get cause function.
uint16_t m_criticalityDiagnostics
criticality diagnostics
uint32_t GetLengthOfIes() const
Get length of IEs function.
uint16_t GetCriticalityDiagnostics() const
Get criticality diagnostics function.
void Print(std::ostream &os) const override
uint32_t GetSerializedSize() const override
uint16_t m_oldEnbUeX2apId
old ENB UE X2 AP ID
void SetOldEnbUeX2apId(uint16_t x2apId)
Set old ENB UE X2 AP ID function.
uint32_t GetNumberOfIes() const
Get number of IEs function.
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
EpcX2HandoverRequestAckHeader.
uint16_t GetNewEnbUeX2apId() const
Get new ENB UE X2 AP ID function.
uint32_t m_headerLength
header length
uint32_t GetLengthOfIes() const
Get length of IEs function.
std::vector< EpcX2Sap::ErabNotAdmittedItem > GetNotAdmittedBearers() const
Get not admitted bearers function.
uint16_t m_oldEnbUeX2apId
old ENB UE X2 AP ID
uint16_t m_newEnbUeX2apId
new ENB UE X2 AP ID
uint32_t m_numberOfIes
number of IEs
static TypeId GetTypeId()
Get the type ID.
uint16_t GetOldEnbUeX2apId() const
Get old ENB UE X2 AP ID function.
std::vector< EpcX2Sap::ErabAdmittedItem > GetAdmittedBearers() const
Get admittied bearers function.
void SetNotAdmittedBearers(std::vector< EpcX2Sap::ErabNotAdmittedItem > bearers)
Set not admitted bearers function.
uint32_t GetSerializedSize() const override
void SetNewEnbUeX2apId(uint16_t x2apId)
Set new ENB UE X2 AP ID function.
std::vector< EpcX2Sap::ErabAdmittedItem > m_erabsAdmittedList
ERABs admitted list.
void SetOldEnbUeX2apId(uint16_t x2apId)
Set old ENB UE X2 AP ID function.
std::vector< EpcX2Sap::ErabNotAdmittedItem > m_erabsNotAdmittedList
ERABs not admitted list.
uint32_t GetNumberOfIes() const
Get number of IEs function.
void SetAdmittedBearers(std::vector< EpcX2Sap::ErabAdmittedItem > bearers)
Set admitted bearers function.
void Print(std::ostream &os) const override
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
void Serialize(Buffer::Iterator start) const override
EpcX2HandoverRequestHeader.
uint16_t GetCause() const
Get cause function.
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
void SetCause(uint16_t cause)
Set cause function.
uint32_t m_mmeUeS1apId
MME UE S1 AP ID.
std::vector< EpcX2Sap::ErabToBeSetupItem > m_erabsToBeSetupList
ERAB to be setup list.
void SetMmeUeS1apId(uint32_t mmeUeS1apId)
Set MME UE S1 AP ID function.
uint32_t GetMmeUeS1apId() const
Get MME UE S1 AP ID function.
void Serialize(Buffer::Iterator start) const override
void SetTargetCellId(uint16_t targetCellId)
Set target cell id function.
void Print(std::ostream &os) const override
uint64_t m_ueAggregateMaxBitRateUplink
aggregate max bit rate uplink
uint32_t m_headerLength
header length
void SetUeAggregateMaxBitRateUplink(uint64_t bitRate)
Set UE Aggregate Max Bit Rate Uplik function.
uint64_t GetUeAggregateMaxBitRateUplink() const
Get UE Aggregate Max Bit Rate Uplik function.
uint16_t GetTargetCellId() const
Get target cell id function.
void SetBearers(std::vector< EpcX2Sap::ErabToBeSetupItem > bearers)
Set bearers function.
uint64_t GetUeAggregateMaxBitRateDownlink() const
Get UE Aggregate Max Bit Rate Downlink function.
void SetUeAggregateMaxBitRateDownlink(uint64_t bitRate)
Set UE Aggregate Max Bit Rate Downlink function.
uint32_t m_numberOfIes
number of IEs
static TypeId GetTypeId()
Get the type ID.
uint16_t m_targetCellId
target cell ID
void SetOldEnbUeX2apId(uint16_t x2apId)
Set old ENB X2 AP ID function.
uint32_t GetNumberOfIes() const
Get number of IEs.
uint16_t m_oldEnbUeX2apId
old ENB UE X1 AP ID
uint16_t GetOldEnbUeX2apId() const
Get old ENB X2 AP ID function.
uint32_t GetLengthOfIes() const
Get length of IEs.
std::vector< EpcX2Sap::ErabToBeSetupItem > GetBearers() const
Get bearers function.
uint32_t GetSerializedSize() const override
uint64_t m_ueAggregateMaxBitRateDownlink
aggregate max bit rate downlink
TypeOfMessage_t
Type of message enumeration.
Definition: epc-x2-header.h:95
static TypeId GetTypeId()
Get the type ID.
void SetLengthOfIes(uint32_t lengthOfIes)
Set length of IEs function.
void Print(std::ostream &os) const override
uint8_t m_messageType
message type
void SetProcedureCode(uint8_t procedureCode)
Set procedure code function.
uint8_t GetProcedureCode() const
Get procedure code function.
uint32_t GetSerializedSize() const override
void Serialize(Buffer::Iterator start) const override
uint32_t m_numberOfIes
number of IEs
uint8_t m_procedureCode
procedure code
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
void SetNumberOfIes(uint32_t numberOfIes)
Set number of IEs function.
uint32_t m_lengthOfIes
length of IEs
uint8_t GetMessageType() const
Get message type function.
~EpcX2Header() override
void SetMessageType(uint8_t messageType)
Set message type function.
ProcedureCode_t
Procedure code enumeration 9.3.7.
Definition: epc-x2-header.h:84
EpcX2LoadInformationHeader.
uint32_t m_headerLength
length of IEs
void Print(std::ostream &os) const override
std::vector< EpcX2Sap::CellInformationItem > GetCellInformationList() const
Get cell information list function.
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
void Serialize(Buffer::Iterator start) const override
uint32_t GetNumberOfIes() const
Get number of IEs function.
void SetCellInformationList(std::vector< EpcX2Sap::CellInformationItem > cellInformationList)
Set cell information list function.
std::vector< EpcX2Sap::CellInformationItem > m_cellInformationList
cell information list
uint32_t GetLengthOfIes() const
Get length of IEs function.
uint32_t GetSerializedSize() const override
uint32_t m_numberOfIes
number of IEs
static TypeId GetTypeId()
Get the type ID.
EpcX2ResourceStatusUpdateHeader.
uint16_t m_enb1MeasurementId
ENB1 measurement.
uint16_t m_enb2MeasurementId
ENB2 measurement.
uint32_t m_headerLength
header length
void SetEnb2MeasurementId(uint16_t enb2MeasurementId)
Set ENB2 measurement ID function.
void SetEnb1MeasurementId(uint16_t enb1MeasurementId)
Set ENB1 measurement ID function.
uint32_t GetLengthOfIes() const
Get length of IEs function.
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
uint32_t GetNumberOfIes() const
Get number of IEs function.
void Print(std::ostream &os) const override
uint16_t GetEnb2MeasurementId() const
Get ENB2 measurement ID function.
std::vector< EpcX2Sap::CellMeasurementResultItem > GetCellMeasurementResultList() const
Get cell measurement results list function.
static TypeId GetTypeId()
Get the type ID.
std::vector< EpcX2Sap::CellMeasurementResultItem > m_cellMeasurementResultList
cell measurement result list
void SetCellMeasurementResultList(std::vector< EpcX2Sap::CellMeasurementResultItem > cellMeasurementResultList)
Set cell measurement results list function.
uint16_t GetEnb1MeasurementId() const
Get ENB1 measurement ID function.
uint32_t m_numberOfIes
number of IEs
void Serialize(Buffer::Iterator start) const override
uint32_t GetSerializedSize() const override
EpcX2SnStatusTransferHeader.
uint16_t GetOldEnbUeX2apId() const
Get old ENB UE X2 AP ID function.
uint16_t GetNewEnbUeX2apId() const
Get new ENB UE X2 AP ID function.
static TypeId GetTypeId()
Get the type ID.
uint32_t GetNumberOfIes() const
Get number of IEs function.
void SetErabsSubjectToStatusTransferList(std::vector< EpcX2Sap::ErabsSubjectToStatusTransferItem > erabs)
Set ERABs subject to status transfer list function.
std::vector< EpcX2Sap::ErabsSubjectToStatusTransferItem > GetErabsSubjectToStatusTransferList() const
Get ERABs subject to status transfer list function.
void Serialize(Buffer::Iterator start) const override
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
uint16_t m_oldEnbUeX2apId
old ENB UE X2 AP ID
void SetNewEnbUeX2apId(uint16_t x2apId)
Set new ENB UE X2 AP ID function.
std::vector< EpcX2Sap::ErabsSubjectToStatusTransferItem > m_erabsSubjectToStatusTransferList
ERABs subject to status transfer list.
uint32_t m_headerLength
header length
void SetOldEnbUeX2apId(uint16_t x2apId)
Set old ENB UE X2 AP ID function.
uint32_t GetSerializedSize() const override
uint16_t m_newEnbUeX2apId
new ENB UE X2 AP ID
uint32_t GetLengthOfIes() const
Get length of IEs function.
uint32_t m_numberOfIes
number of IEs
void Print(std::ostream &os) const override
EpcX2UeContextReleaseHeader.
uint16_t m_newEnbUeX2apId
new ENB UE X2 AP ID
static TypeId GetTypeId()
Get the type ID.
uint32_t m_headerLength
header length
void SetNewEnbUeX2apId(uint16_t x2apId)
Set new ENB UE X2 AP ID function.
void Serialize(Buffer::Iterator start) const override
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
uint16_t GetNewEnbUeX2apId() const
Get new ENB UE X2 AP ID function.
uint32_t GetSerializedSize() const override
void SetOldEnbUeX2apId(uint16_t x2apId)
Set old ENB UE X2 AP ID function.
uint32_t GetLengthOfIes() const
Get length of IEs function.
uint16_t GetOldEnbUeX2apId() const
Get old ENB UE X2 AP ID function.
uint32_t GetNumberOfIes() const
Set length of IEs function.
void Print(std::ostream &os) const override
uint32_t m_numberOfIes
number of IEs
uint16_t m_oldEnbUeX2apId
old ENB UE X2 AP ID
Protocol header serialization and deserialization.
Definition: header.h:44
virtual uint32_t Deserialize(Buffer::Iterator start)=0
Deserialize the object from a buffer iterator.
a unique identifier for an interface.
Definition: type-id.h:59
Every class exported by the ns3 library is enclosed in the ns3 namespace.