From 8b43b1b26b2f13af537d3bc7bc0ffeccced2f4d1 Mon Sep 17 00:00:00 2001 From: jnin Date: Mon, 11 Jul 2011 13:47:36 +0200 Subject: [PATCH] (no commit message) --- src/lte/examples/wscript | 3 ++ .../{epc-gtpu-v1.cc => epc-gtpu-header.cc} | 26 +++++++------ .../{epc-gtpu-v1.h => epc-gtpu-header.h} | 0 .../{epc-test-gtpu-v1.cc => epc-test-gtpu.cc} | 38 +++++++++---------- .../{epc-test-gtpu-v1.h => epc-test-gtpu.h} | 8 ++-- src/lte/wscript | 14 +++++-- 6 files changed, 51 insertions(+), 38 deletions(-) rename src/lte/model/{epc-gtpu-v1.cc => epc-gtpu-header.cc} (91%) rename src/lte/model/{epc-gtpu-v1.h => epc-gtpu-header.h} (100%) rename src/lte/test/{epc-test-gtpu-v1.cc => epc-test-gtpu.cc} (71%) rename src/lte/test/{epc-test-gtpu-v1.h => epc-test-gtpu.h} (91%) diff --git a/src/lte/examples/wscript b/src/lte/examples/wscript index aa22a6e8f..c3042baa0 100644 --- a/src/lte/examples/wscript +++ b/src/lte/examples/wscript @@ -13,3 +13,6 @@ def build(bld): obj = bld.create_ns3_program('profiling-reference', ['lte']) obj.source = 'profiling-reference.cc' + obj = bld.create_ns3_program('epc-gtpu-tunnel-example', + ['virtual-net-device', 'csma', 'internet', 'applications', 'lte']) + obj.source = 'epc-gtpu-tunnel-example.cc' diff --git a/src/lte/model/epc-gtpu-v1.cc b/src/lte/model/epc-gtpu-header.cc similarity index 91% rename from src/lte/model/epc-gtpu-v1.cc rename to src/lte/model/epc-gtpu-header.cc index fbdc87875..b96313e98 100644 --- a/src/lte/model/epc-gtpu-v1.cc +++ b/src/lte/model/epc-gtpu-header.cc @@ -18,9 +18,12 @@ * Author: Jaume Nin */ -#include "epc-gtpu-v1.h" +#include "epc-gtpu-header.h" +#include #include "ns3/packet.h" +NS_LOG_COMPONENT_DEFINE ("GtpuHeader"); + namespace ns3 { @@ -40,7 +43,7 @@ GtpuHeader::GetTypeId (void) } GtpuHeader::GtpuHeader () : m_version(1), m_protocolType(true), m_extensionHeaderFlag(false), - m_sequenceNumberFlag(false), m_nPduNumberFlag(false), m_messageType(0), + m_sequenceNumberFlag(true), m_nPduNumberFlag(true), m_messageType(255), m_length(0), m_teid(0), m_sequenceNumber(0), m_nPduNumber(0), m_nextExtensionType(0) { @@ -80,24 +83,25 @@ GtpuHeader::Serialize (Buffer::Iterator start) const uint32_t GtpuHeader::Deserialize (Buffer::Iterator start) { - uint8_t firstByte = start.ReadU8 (); + Buffer::Iterator i = start; + uint8_t firstByte = i.ReadU8 (); m_version = firstByte >> 5 & 0x7; m_protocolType = firstByte >> 4 & 0x1; m_extensionHeaderFlag = firstByte >> 2 & 0x1; m_sequenceNumberFlag = firstByte >> 1 & 0x1; m_nPduNumberFlag = firstByte & 0x1; - m_messageType = start.ReadU8 (); - m_length = start.ReadNtohU16 (); - m_teid= start.ReadNtohU32 (); - m_sequenceNumber= start.ReadNtohU16 (); - m_nPduNumber= start.ReadU8 (); - m_nextExtensionType= start.ReadU8 (); - return 4; + m_messageType = i.ReadU8 (); + m_length = i.ReadNtohU16 (); + m_teid= i.ReadNtohU32 (); + m_sequenceNumber= i.ReadNtohU16 (); + m_nPduNumber= i.ReadU8 (); + m_nextExtensionType= i.ReadU8 (); + return GetSerializedSize (); } void GtpuHeader::Print (std::ostream &os) const { - os << "version=" << (uint32_t) m_version << " ["; + os << " version=" << (uint32_t) m_version << " ["; if (m_protocolType) { os << " PT "; diff --git a/src/lte/model/epc-gtpu-v1.h b/src/lte/model/epc-gtpu-header.h similarity index 100% rename from src/lte/model/epc-gtpu-v1.h rename to src/lte/model/epc-gtpu-header.h diff --git a/src/lte/test/epc-test-gtpu-v1.cc b/src/lte/test/epc-test-gtpu.cc similarity index 71% rename from src/lte/test/epc-test-gtpu-v1.cc rename to src/lte/test/epc-test-gtpu.cc index 8c8ce8259..5bdadafe5 100644 --- a/src/lte/test/epc-test-gtpu-v1.cc +++ b/src/lte/test/epc-test-gtpu.cc @@ -23,8 +23,8 @@ #include "ns3/object.h" #include "ns3/packet.h" -#include "ns3/epc-gtpu-v1.h" -#include "ns3/epc-test-gtpu-v1.h" +#include "ns3/epc-gtpu-header.h" +#include "ns3/epc-test-gtpu.h" NS_LOG_COMPONENT_DEFINE ("EpcGtpuTest"); @@ -36,7 +36,7 @@ using namespace ns3; */ EpsGtpuTestSuite::EpsGtpuTestSuite () - : TestSuite ("epc-gtpu-v1", SYSTEM) + : TestSuite ("epc-gtpu", SYSTEM) { AddTestCase (new EpsGtpuHeaderTestCase ()); } @@ -64,23 +64,23 @@ EpsGtpuHeaderTestCase::DoRun (void) LogLevel logLevel = (LogLevel)(LOG_PREFIX_FUNC | LOG_PREFIX_TIME | LOG_LEVEL_ALL); LogComponentEnable ("EpcGtpuTest", logLevel); - GtpuHeader header1; - header1.SetExtensionHeaderFlag (true); - header1.SetLength (1234); - header1.SetMessageType (123); - header1.SetNPduNumber (123); - header1.SetNPduNumberFlag (true); - header1.SetNextExtensionType (123); - header1.SetProtocolType (true); - header1.SetSequenceNumber (1234); - header1.SetSequenceNumberFlag (true); - header1.SetTeid (1234567); - header1.SetVersion (123); + GtpuHeader h1; + h1.SetExtensionHeaderFlag (true); + h1.SetLength (1234); + h1.SetMessageType (123); + h1.SetNPduNumber (123); + h1.SetNPduNumberFlag (true); + h1.SetNextExtensionType (123); + h1.SetProtocolType (true); + h1.SetSequenceNumber (1234); + h1.SetSequenceNumberFlag (true); + h1.SetTeid (1234567); + h1.SetVersion (123); Packet p; - GtpuHeader header2; - p.AddHeader (header1); - p.RemoveHeader (header2); + GtpuHeader h2; + p.AddHeader (h1); + p.RemoveHeader (h2); - NS_TEST_ASSERT_MSG_EQ (header1, header2, "Wrong value!"); + NS_TEST_ASSERT_MSG_EQ (h1, h2, "Wrong value!"); } diff --git a/src/lte/test/epc-test-gtpu-v1.h b/src/lte/test/epc-test-gtpu.h similarity index 91% rename from src/lte/test/epc-test-gtpu-v1.h rename to src/lte/test/epc-test-gtpu.h index 31cbcc402..8eb244df9 100644 --- a/src/lte/test/epc-test-gtpu-v1.h +++ b/src/lte/test/epc-test-gtpu.h @@ -18,10 +18,10 @@ * Author: Jaume Nin */ -#ifndef EPC_TEST_GTPU_V1_H -#define EPC_TEST_GTPU_V1_H +#ifndef EPC_TEST_GTPU_H +#define EPC_TEST_GTPU_H -#include "ns3/epc-gtpu-v1.h" +#include "ns3/epc-gtpu-header.h" #include "ns3/test.h" @@ -50,4 +50,4 @@ private: }; -#endif /* EPC_TEST_GTPU_V1_H */ +#endif /* EPC_TEST_GTPU_H */ diff --git a/src/lte/wscript b/src/lte/wscript index 7be71c95d..7d6d9ffb6 100644 --- a/src/lte/wscript +++ b/src/lte/wscript @@ -28,6 +28,7 @@ def build(bld): 'model/lte-ue-net-device.cc', 'model/ideal-control-messages.cc', 'helper/lena-helper.cc', + 'helper/epc-helper.cc', 'helper/rlc-stats-calculator.cc', 'helper/mac-stats-calculator.cc', 'model/ff-mac-csched-sap.cc', @@ -46,7 +47,9 @@ def build(bld): 'model/lte-interference.cc', 'model/lte-sinr-chunk-processor.cc', 'model/pf-ff-mac-scheduler.cc', - 'model/epc-gtpu-v1.cc', + 'model/epc-gtpu-header.cc', + 'model/epc-gtpu-l5-protocol.cc', + 'model/epc-gtpu-tunnel.cc', ] module_test = bld.create_ns3_module_test_library('lte') @@ -61,7 +64,7 @@ def build(bld): 'test/lte-test-pf-ff-mac-scheduler.cc', 'test/lte-test-earfcn.cc', 'test/lte-test-spectrum-value-helper.cc', - 'test/epc-test-gtpu-v1.cc', + 'test/epc-test-gtpu.cc', ] headers = bld.new_task_gen('ns3header') @@ -91,6 +94,7 @@ def build(bld): 'model/lte-ue-net-device.h', 'model/ideal-control-messages.h', 'helper/lena-helper.h', + 'helper/epc-helper.h', 'helper/mac-stats-calculator.h', 'helper/rlc-stats-calculator.h', 'model/ff-mac-common.h', @@ -110,7 +114,9 @@ def build(bld): 'model/lte-interference.h', 'model/lte-sinr-chunk-processor.h', 'model/pf-ff-mac-scheduler.h', - 'model/epc-gtpu-v1.h', + 'model/epc-gtpu-header.h', + 'model/epc-gtpu-l5-protocol.h', + 'model/epc-gtpu-tunnel.h', 'test/lte-test-downlink-sinr.h', 'test/lte-test-uplink-sinr.h', 'test/lte-test-link-adaptation.h', @@ -120,7 +126,7 @@ def build(bld): 'test/lte-test-rr-ff-mac-scheduler.h', 'test/lte-test-pf-ff-mac-scheduler.h', 'test/lte-test-pf-ff-mac-scheduler.h', - 'test/epc-test-gtpu-v1.h', + 'test/epc-test-gtpu.h', ] if (bld.env['ENABLE_EXAMPLES']):