author | Nicola Baldo <nbaldo@cttc.es> |
Mon, 05 Dec 2011 21:27:44 +0100 | |
changeset 8463 | cc818aa536a5 |
parent 8462 | cf6a48994db5 |
child 8464 | 60dd9cd95447 |
--- a/src/lte/doc/source/lte-user.rst Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/doc/source/lte-user.rst Mon Dec 05 21:27:44 2011 +0100 @@ -523,9 +523,9 @@ The activation of bearers is done exactly in the same way as for an LTE-only simulation. Here is how to activate a default bearer:: - lteHelper->ActivateEpsBearer (ueLteDevs, EpsBearer (EpsBearer::NGBR_VIDEO_TCP_DEFAULT), LteTft::Default ()); + lteHelper->ActivateEpsBearer (ueLteDevs, EpsBearer (EpsBearer::NGBR_VIDEO_TCP_DEFAULT), EpcTft::Default ()); -you can of course use custom EpsBearer and LteTft configurations, +you can of course use custom EpsBearer and EpcTft configurations, please refer to the doxygen documentation for how to do it.
--- a/src/lte/examples/lena-cqi-threshold.cc Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/examples/lena-cqi-threshold.cc Mon Dec 05 21:27:44 2011 +0100 @@ -116,7 +116,7 @@ // Activate an EPS bearer enum EpsBearer::Qci q = EpsBearer::GBR_CONV_VOICE; EpsBearer bearer (q); - lteHelper->ActivateEpsBearer (ueDevs, bearer, LteTft::Default ()); + lteHelper->ActivateEpsBearer (ueDevs, bearer, EpcTft::Default ()); Simulator::Stop (Seconds (0.030));
--- a/src/lte/examples/lena-fading.cc Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/examples/lena-fading.cc Mon Dec 05 21:27:44 2011 +0100 @@ -103,7 +103,7 @@ // Activate an EPS bearer enum EpsBearer::Qci q = EpsBearer::GBR_CONV_VOICE; EpsBearer bearer (q); - lteHelper->ActivateEpsBearer (ueDevs, bearer, LteTft::Default ()); + lteHelper->ActivateEpsBearer (ueDevs, bearer, EpcTft::Default ()); Simulator::Stop (Seconds (0.005));
--- a/src/lte/examples/lena-intercell-interference.cc Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/examples/lena-intercell-interference.cc Mon Dec 05 21:27:44 2011 +0100 @@ -123,8 +123,8 @@ // Activate an EPS bearer on all UEs enum EpsBearer::Qci q = EpsBearer::GBR_CONV_VOICE; EpsBearer bearer (q); - lteHelper->ActivateEpsBearer (ueDevs1, bearer, LteTft::Default ()); - lteHelper->ActivateEpsBearer (ueDevs2, bearer, LteTft::Default ()); + lteHelper->ActivateEpsBearer (ueDevs1, bearer, EpcTft::Default ()); + lteHelper->ActivateEpsBearer (ueDevs2, bearer, EpcTft::Default ()); Simulator::Stop (Seconds (10));
--- a/src/lte/examples/lena-pathloss-traces.cc Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/examples/lena-pathloss-traces.cc Mon Dec 05 21:27:44 2011 +0100 @@ -226,8 +226,8 @@ // Activate an EPS bearer on all UEs enum EpsBearer::Qci q = EpsBearer::GBR_CONV_VOICE; EpsBearer bearer (q); - lteHelper->ActivateEpsBearer (ueDevs1, bearer, LteTft::Default ()); - lteHelper->ActivateEpsBearer (ueDevs2, bearer, LteTft::Default ()); + lteHelper->ActivateEpsBearer (ueDevs1, bearer, EpcTft::Default ()); + lteHelper->ActivateEpsBearer (ueDevs2, bearer, EpcTft::Default ()); Simulator::Stop (Seconds (0.5));
--- a/src/lte/examples/lena-profiling.cc Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/examples/lena-profiling.cc Mon Dec 05 21:27:44 2011 +0100 @@ -199,7 +199,7 @@ lteHelper->Attach(ueDev, enbDevs.Get(i)); enum EpsBearer::Qci q = EpsBearer::GBR_CONV_VOICE; EpsBearer bearer(q); - lteHelper->ActivateEpsBearer(ueDev, bearer, LteTft::Default ()); + lteHelper->ActivateEpsBearer(ueDev, bearer, EpcTft::Default ()); } Simulator::Stop(Seconds(simTime));
--- a/src/lte/examples/lena-rlc-traces.cc Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/examples/lena-rlc-traces.cc Mon Dec 05 21:27:44 2011 +0100 @@ -73,7 +73,7 @@ // Activate an EPS bearer enum EpsBearer::Qci q = EpsBearer::GBR_CONV_VOICE; EpsBearer bearer (q); - lteHelper->ActivateEpsBearer (ueDevs, bearer, LteTft::Default ()); + lteHelper->ActivateEpsBearer (ueDevs, bearer, EpcTft::Default ()); Simulator::Stop (Seconds (2));
--- a/src/lte/examples/lena-simple-epc.cc Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/examples/lena-simple-epc.cc Mon Dec 05 21:27:44 2011 +0100 @@ -130,7 +130,7 @@ Ptr<Ipv4StaticRouting> ueStaticRouting = ipv4RoutingHelper.GetStaticRouting (ueNode->GetObject<Ipv4> ()); ueStaticRouting->SetDefaultRoute (epcHelper->GetUeDefaultGatewayAddress (), 1); } - lteHelper->ActivateEpsBearer (ueLteDevs, EpsBearer (EpsBearer::NGBR_VIDEO_TCP_DEFAULT), LteTft::Default ()); + lteHelper->ActivateEpsBearer (ueLteDevs, EpsBearer (EpsBearer::NGBR_VIDEO_TCP_DEFAULT), EpcTft::Default ()); // Install and start applications on UEs and remote host
--- a/src/lte/examples/lena-simple.cc Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/examples/lena-simple.cc Mon Dec 05 21:27:44 2011 +0100 @@ -78,7 +78,7 @@ // Activate an EPS bearer enum EpsBearer::Qci q = EpsBearer::GBR_CONV_VOICE; EpsBearer bearer (q); - lteHelper->ActivateEpsBearer (ueDevs, bearer, LteTft::Default ()); + lteHelper->ActivateEpsBearer (ueDevs, bearer, EpcTft::Default ()); Simulator::Stop (Seconds (0.005));
--- a/src/lte/helper/epc-helper.cc Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/helper/epc-helper.cc Mon Dec 05 21:27:44 2011 +0100 @@ -186,7 +186,7 @@ void -EpcHelper::ActivateEpsBearer (Ptr<NetDevice> ueLteDevice, Ptr<NetDevice> enbLteDevice, Ptr<LteTft> tft, uint16_t rnti, uint8_t lcid) +EpcHelper::ActivateEpsBearer (Ptr<NetDevice> ueLteDevice, Ptr<NetDevice> enbLteDevice, Ptr<EpcTft> tft, uint16_t rnti, uint8_t lcid) { Ptr<Node> ueNode = ueLteDevice->GetNode (); Ptr<Ipv4> ueIpv4 = ueNode->GetObject<Ipv4> ();
--- a/src/lte/helper/epc-helper.h Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/helper/epc-helper.h Mon Dec 05 21:27:44 2011 +0100 @@ -25,7 +25,7 @@ #include <ns3/object.h> #include <ns3/ipv4-address-helper.h> #include <ns3/data-rate.h> -#include <ns3/lte-tft.h> +#include <ns3/epc-tft.h> namespace ns3 { @@ -81,7 +81,7 @@ * \param rnti the Radio Network Temporary Identifier that identifies the UE * \param lcid the Logical Channel IDentifier of the corresponding RadioBearer */ - void ActivateEpsBearer (Ptr<NetDevice> ueLteDevice, Ptr<NetDevice> enbLteDevice, Ptr<LteTft> tft, uint16_t rnti, uint8_t lcid); + void ActivateEpsBearer (Ptr<NetDevice> ueLteDevice, Ptr<NetDevice> enbLteDevice, Ptr<EpcTft> tft, uint16_t rnti, uint8_t lcid); /**
--- a/src/lte/helper/lte-helper.cc Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/helper/lte-helper.cc Mon Dec 05 21:27:44 2011 +0100 @@ -452,7 +452,7 @@ void -LteHelper::ActivateEpsBearer (NetDeviceContainer ueDevices, EpsBearer bearer, Ptr<LteTft> tft) +LteHelper::ActivateEpsBearer (NetDeviceContainer ueDevices, EpsBearer bearer, Ptr<EpcTft> tft) { for (NetDeviceContainer::Iterator i = ueDevices.Begin (); i != ueDevices.End (); ++i) { @@ -462,7 +462,7 @@ void -LteHelper::ActivateEpsBearer (Ptr<NetDevice> ueDevice, EpsBearer bearer, Ptr<LteTft> tft) +LteHelper::ActivateEpsBearer (Ptr<NetDevice> ueDevice, EpsBearer bearer, Ptr<EpcTft> tft) { NS_LOG_INFO (" setting up Radio Bearer"); Ptr<LteEnbNetDevice> enbDevice = ueDevice->GetObject<LteUeNetDevice> ()->GetTargetEnb ();
--- a/src/lte/helper/lte-helper.h Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/helper/lte-helper.h Mon Dec 05 21:27:44 2011 +0100 @@ -31,7 +31,7 @@ #include <ns3/eps-bearer.h> #include <ns3/mac-stats-calculator.h> #include <ns3/radio-bearer-stats-calculator.h> -#include <ns3/lte-tft.h> +#include <ns3/epc-tft.h> #include <ns3/trace-fading-loss-model.h> namespace ns3 { @@ -151,7 +151,7 @@ * \param bearer the characteristics of the bearer to be activated * \param tft the Traffic Flow Template that identifies the traffic to go on this bearer */ - void ActivateEpsBearer (NetDeviceContainer ueDevices, EpsBearer bearer, Ptr<LteTft> tft); + void ActivateEpsBearer (NetDeviceContainer ueDevices, EpsBearer bearer, Ptr<EpcTft> tft); /** * Activate an EPS bearer on a given UE device @@ -160,7 +160,7 @@ * \param bearer the characteristics of the bearer to be activated * \param tft the Traffic Flow Template that identifies the traffic to go on this bearer */ - void ActivateEpsBearer (Ptr<NetDevice> ueDevice, EpsBearer bearer, Ptr<LteTft> tft); + void ActivateEpsBearer (Ptr<NetDevice> ueDevice, EpsBearer bearer, Ptr<EpcTft> tft); /** *
--- a/src/lte/model/epc-sgw-pgw-application.cc Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/model/epc-sgw-pgw-application.cc Mon Dec 05 21:27:44 2011 +0100 @@ -44,7 +44,7 @@ } void -EpcSgwPgwApplication::UeInfo::AddBearer (Ptr<LteTft> tft, uint32_t teid) +EpcSgwPgwApplication::UeInfo::AddBearer (Ptr<EpcTft> tft, uint32_t teid) { NS_LOG_FUNCTION (this << tft << teid); return m_tftClassifier.Add (tft, teid); @@ -57,7 +57,7 @@ // we hardcode DOWNLINK direction since the PGW is espected to // classify only downlink packets (uplink packets will go to the // internet without any classification). - return m_tftClassifier.Classify (p, LteTft::DOWNLINK); + return m_tftClassifier.Classify (p, EpcTft::DOWNLINK); } Ipv4Address @@ -105,7 +105,7 @@ uint32_t -EpcSgwPgwApplication::ActivateS1Bearer (Ipv4Address ueAddr, Ipv4Address enbAddr, Ptr<LteTft> tft) +EpcSgwPgwApplication::ActivateS1Bearer (Ipv4Address ueAddr, Ipv4Address enbAddr, Ptr<EpcTft> tft) { NS_LOG_FUNCTION (this << ueAddr << enbAddr << tft);
--- a/src/lte/model/epc-sgw-pgw-application.h Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/model/epc-sgw-pgw-application.h Mon Dec 05 21:27:44 2011 +0100 @@ -31,7 +31,7 @@ #include <ns3/ptr.h> #include <ns3/object.h> #include <ns3/eps-bearer.h> -#include <ns3/lte-tft.h> +#include <ns3/epc-tft.h> #include <ns3/eps-tft-classifier.h> #include <ns3/lte-common.h> #include <ns3/application.h> @@ -80,7 +80,7 @@ * * \return the TunnelEndpointIdentifier of this EPS bearer */ - uint32_t ActivateS1Bearer (Ipv4Address ueAddr, Ipv4Address enbAddr, Ptr<LteTft> tft); + uint32_t ActivateS1Bearer (Ipv4Address ueAddr, Ipv4Address enbAddr, Ptr<EpcTft> tft); /** @@ -142,7 +142,7 @@ * \param tft the Traffic Flow Template of the new bearer to be added * \param teid the TEID of the new bearer */ - void AddBearer (Ptr<LteTft> tft, uint32_t teid); + void AddBearer (Ptr<EpcTft> tft, uint32_t teid); /** *
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/lte/model/epc-tft.cc Mon Dec 05 21:27:44 2011 +0100 @@ -0,0 +1,195 @@ +/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2011 CTTC + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation; + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Nicola Baldo <nbaldo@cttc.es> + */ + + + + +#include "epc-tft.h" +#include "ns3/abort.h" +#include "ns3/log.h" + + +namespace ns3 { + +NS_LOG_COMPONENT_DEFINE ("EpcTft"); + +std::ostream& operator<< (std::ostream& os, EpcTft::Direction& d) +{ + switch (d) + { + case EpcTft::DOWNLINK: + os << "DOWNLINK"; + break; + case EpcTft::UPLINK: + os << "UPLINK"; + break; + default: + os << "BIDIRECTIONAL"; + break; + } + return os; +} + + +std::ostream& operator<< (std::ostream& os, EpcTft::PacketFilter& f) +{ + os << " direction: " << f.direction + << " remoteAddress: " << f.remoteAddress + << " remoteMask: " << f.remoteMask + << " localAddress: " << f.localAddress + << " localMask: " << f.localMask + << " remotePortStart: " << f.remotePortStart + << " remotePortEnd: " << f.remotePortEnd + << " localPortStart: " << f.localPortStart + << " localPortEnd: " << f.localPortEnd + << " typeOfService: 0x" << std::hex << (uint16_t) f.typeOfService << std::dec + << " typeOfServiceMask: 0x" << std::hex << (uint16_t) f.typeOfServiceMask << std::dec; + return os; +} + +EpcTft::PacketFilter::PacketFilter () + : precedence (255), + direction (BIDIRECTIONAL), + remoteMask ("0.0.0.0"), + localMask ("0.0.0.0"), + remotePortStart (0), + remotePortEnd (65535), + localPortStart (0), + localPortEnd (65535), + typeOfService (0), + typeOfServiceMask (0) +{ + NS_LOG_FUNCTION (this); +} + +bool +EpcTft::PacketFilter::Matches (Direction d, + Ipv4Address ra, + Ipv4Address la, + uint16_t rp, + uint16_t lp, + uint8_t tos) +{ + NS_LOG_FUNCTION (this << d << ra << la << rp << lp << (uint16_t) tos); + if (d & direction) + { + NS_LOG_LOGIC ("d matches"); + if (remoteMask.IsMatch (remoteAddress, ra)) + { + NS_LOG_LOGIC ("ra matches"); + if (localMask.IsMatch (localAddress, la)) + { + NS_LOG_LOGIC ("ls matches"); + if (rp >= remotePortStart) + { + NS_LOG_LOGIC ("rps matches"); + if (rp <= remotePortEnd) + { + NS_LOG_LOGIC ("rpe matches"); + if (lp >= localPortStart) + { + NS_LOG_LOGIC ("lps matches"); + if (lp <= localPortEnd) + { + NS_LOG_LOGIC ("lpe matches"); + if ((tos & typeOfServiceMask) == (typeOfService & typeOfServiceMask)) + { + NS_LOG_LOGIC ("tos matches --> have match!"); + return true; + } + } + } + } + } + } + else + { + NS_LOG_LOGIC ("la doesn't match: la=" << la << " f.la=" << localAddress << " f.lmask=" << localMask); + } + } + else + { + NS_LOG_LOGIC ("ra doesn't match: ra=" << ra << " f.ra=" << remoteAddress << " f.rmask=" << remoteMask); + } + } + else + { + NS_LOG_LOGIC ("d doesn't match: d=0x" << std::hex << d << " f.d=0x" << std::hex << direction << std::dec); + } + return false; +} + + +Ptr<EpcTft> +EpcTft::Default () +{ + Ptr<EpcTft> tft = Create<EpcTft> (); + EpcTft::PacketFilter defaultPacketFilter; + tft->Add (defaultPacketFilter); + return tft; +} + + +EpcTft::EpcTft () + : m_numFilters (0) +{ + NS_LOG_FUNCTION (this); +} + +uint8_t +EpcTft::Add (PacketFilter f) +{ + NS_LOG_FUNCTION (this << f); + NS_ABORT_IF (m_numFilters >= 16); + + std::list<PacketFilter>::iterator it; + for (it = m_filters.begin (); + (it != m_filters.end ()) && (it->precedence <= f.precedence); + ++it) + { + } + m_filters.insert (it, f); + ++m_numFilters; + return (m_numFilters - 1); +} + +bool +EpcTft::Matches (Direction direction, + Ipv4Address remoteAddress, + Ipv4Address localAddress, + uint16_t remotePort, + uint16_t localPort, + uint8_t typeOfService) +{ + NS_LOG_FUNCTION (this << direction << remoteAddress << localAddress << std::dec << remotePort << localPort << (uint16_t) typeOfService); + for (std::list<PacketFilter>::iterator it = m_filters.begin (); + it != m_filters.end (); + ++it) + { + if (it->Matches (direction, remoteAddress, localAddress, remotePort, localPort, typeOfService)) + { + return true; + } + } + return false; +} + + +} // namespace ns3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/lte/model/epc-tft.h Mon Dec 05 21:27:44 2011 +0100 @@ -0,0 +1,169 @@ +/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation; + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Nicola Baldo <nbaldo@cttc.es> + */ + + +#ifndef EPC_TFT_H +#define EPC_TFT_H + + +#include <ns3/simple-ref-count.h> +#include <ns3/ipv4-address.h> + +#include <list> + +namespace ns3 { + + + +/** + * This class implements the EPS bearer Traffic Flow Template (TFT), + * which is the set of all packet filters associated with an EPS bearer. + * + */ +class EpcTft : public SimpleRefCount<EpcTft> +{ + +public: + + + /** + * creates a TFT matching any traffic + * + * \return a newly created TFT that will match any traffic + */ + static Ptr<EpcTft> Default (); + + /** + * Indicates the direction of the traffic that is to be classified. + */ + enum Direction {DOWNLINK = 1, + UPLINK = 2, + BIDIRECTIONAL = 3}; + + /** + * Implement the data structure representing a TrafficFlowTemplate + * Packet Filter. + * See 3GPP TS 24.008 version 8.7.0 Release 8, Table 10.5.162/3GPP TS + * 24.008: Traffic flow template information element + * + * With respect to the Packet Filter specification in the above doc, + * the following features are NOT supported: + * - IPv6 filtering (including flow labels) + * - IPSec filtering + * - filter precedence field is not evaluated, hence it is recommended to setup + * the TFTs within a PDP context such that TFTs are mutually exclusive + */ + struct PacketFilter + { + PacketFilter (); + + /** + * + * \param d the direction + * \param ra the remote address + * \param la the local address + * \param rp the remote port + * \param lp the local port + * \param tos the type of service + * + * \return true if the parameters match with the PacketFilter, + * false otherwise. + */ + bool Matches (Direction d, + Ipv4Address ra, + Ipv4Address la, + uint16_t rp, + uint16_t lp, + uint8_t tos); + + + + uint8_t precedence; /**< used to specify the precedence for the + * packet filter among all packet filters in + * the TFT; higher values will be evaluated + * last. + */ + + Direction direction; /**< whether the filter needs to be applied + to uplink / downlink only, or in both cases*/ + + Ipv4Address remoteAddress; /**< IPv4 address of the remote host */ + Ipv4Mask remoteMask; /**< IPv4 address mask of the remote host */ + Ipv4Address localAddress; /**< IPv4 address of the UE */ + Ipv4Mask localMask; /**< IPv4 address mask of the UE */ + + uint16_t remotePortStart; /**< start of the port number range of the remote host */ + uint16_t remotePortEnd; /**< end of the port number range of the remote host */ + uint16_t localPortStart; /**< start of the port number range of the UE */ + uint16_t localPortEnd; /**< end of the port number range of the UE */ + + uint8_t typeOfService; /**< type of service field */ + uint8_t typeOfServiceMask; /**< type of service field mask */ + }; + + EpcTft (); + + + /** + * add a PacketFilter to the Traffic Flow Template + * + * \param the PacketFilter to be added + * + * \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. + */ + uint8_t Add (PacketFilter f); + + + /** + * + * \param direction + * \param remoteAddress + * \param localAddress + * \param remotePort + * \param localPort + * \param typeOfService + * + * \return true if any PacketFilter in the TFT matches with the + * parameters, false otherwise. + */ + bool Matches (Direction direction, + Ipv4Address remoteAddress, + Ipv4Address localAddress, + uint16_t remotePort, + uint16_t localPort, + uint8_t typeOfService); + + +private: + + std::list<PacketFilter> m_filters; + uint8_t m_numFilters; + +}; + + +std::ostream& operator<< (std::ostream& os, EpcTft::Direction& d); + + +} // namespace ns3 + +#endif /* EPC_TFT_H */ + +
--- a/src/lte/model/eps-tft-classifier.cc Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/model/eps-tft-classifier.cc Mon Dec 05 21:27:44 2011 +0100 @@ -27,7 +27,7 @@ #include "eps-tft-classifier.h" -#include "lte-tft.h" +#include "epc-tft.h" #include "ns3/log.h" #include "ns3/packet.h" #include "ns3/ipv4-header.h" @@ -46,7 +46,7 @@ } void -EpsTftClassifier::Add (Ptr<LteTft> tft, uint32_t id) +EpsTftClassifier::Add (Ptr<EpcTft> tft, uint32_t id) { NS_LOG_FUNCTION (this << tft); @@ -65,7 +65,7 @@ uint32_t -EpsTftClassifier::Classify (Ptr<Packet> p, LteTft::Direction direction) +EpsTftClassifier::Classify (Ptr<Packet> p, EpcTft::Direction direction) { NS_LOG_FUNCTION (this << p << direction); @@ -78,14 +78,14 @@ Ipv4Address remoteAddress; - if (direction == LteTft::UPLINK) + if (direction == EpcTft::UPLINK) { localAddress = ipv4Header.GetSource (); remoteAddress = ipv4Header.GetDestination (); } else { - NS_ASSERT (direction == LteTft::DOWNLINK); + NS_ASSERT (direction == EpcTft::DOWNLINK); remoteAddress = ipv4Header.GetSource (); localAddress = ipv4Header.GetDestination (); } @@ -102,7 +102,7 @@ UdpHeader udpHeader; pCopy->RemoveHeader (udpHeader); - if (direction == LteTft::UPLINK) + if (direction == EpcTft::UPLINK) { localPort = udpHeader.GetSourcePort (); remotePort = udpHeader.GetDestinationPort (); @@ -117,7 +117,7 @@ { TcpHeader tcpHeader; pCopy->RemoveHeader (tcpHeader); - if (direction == LteTft::UPLINK) + if (direction == EpcTft::UPLINK) { localPort = tcpHeader.GetSourcePort (); remotePort = tcpHeader.GetDestinationPort (); @@ -144,14 +144,14 @@ // now it is possible to classify the packet! // we use a reverse iterator since filter priority is not implemented properly. // This way, since the default bearer is expected to be added first, it will be evaluated last. - std::map <uint32_t, Ptr<LteTft> >::const_reverse_iterator it; + std::map <uint32_t, Ptr<EpcTft> >::const_reverse_iterator it; NS_LOG_LOGIC ("TFT MAP size: " << m_tftMap.size ()); for (it = m_tftMap.rbegin (); it != m_tftMap.rend (); ++it) { NS_LOG_LOGIC ("TFT id: " << it->first ); - NS_LOG_LOGIC (" Ptr<LteTft>: " << it->second); - Ptr<LteTft> tft = it->second; + NS_LOG_LOGIC (" Ptr<EpcTft>: " << it->second); + Ptr<EpcTft> tft = it->second; if (tft->Matches (direction, remoteAddress, localAddress, remotePort, localPort, tos)) { NS_LOG_LOGIC ("matches with TFT ID = " << it->first);
--- a/src/lte/model/eps-tft-classifier.h Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/model/eps-tft-classifier.h Mon Dec 05 21:27:44 2011 +0100 @@ -25,14 +25,14 @@ #include "ns3/ptr.h" #include "ns3/simple-ref-count.h" -#include "ns3/lte-tft.h" +#include "ns3/epc-tft.h" #include <map> namespace ns3 { -class LteTft; +class EpcTft; class Packet; /** @@ -52,7 +52,7 @@ * \param tft the TFT to be added * */ - void Add (Ptr<LteTft> tft, uint32_t id); + void Add (Ptr<EpcTft> tft, uint32_t id); /** * delete an existing TFT from the classifier @@ -69,11 +69,11 @@ * * \return the identifier (>0) of the first TFT that matches with the IP packet; 0 if no TFT matched. */ - uint32_t Classify (Ptr<Packet> p, LteTft::Direction direction); + uint32_t Classify (Ptr<Packet> p, EpcTft::Direction direction); protected: - std::map <uint32_t, Ptr<LteTft> > m_tftMap; + std::map <uint32_t, Ptr<EpcTft> > m_tftMap; };
--- a/src/lte/model/lte-tft.cc Mon Dec 05 21:24:51 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,195 +0,0 @@ -/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ -/* - * Copyright (c) 2011 CTTC - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation; - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * Author: Nicola Baldo <nbaldo@cttc.es> - */ - - - - -#include "lte-tft.h" -#include "ns3/abort.h" -#include "ns3/log.h" - - -namespace ns3 { - -NS_LOG_COMPONENT_DEFINE ("LteTft"); - -std::ostream& operator<< (std::ostream& os, LteTft::Direction& d) -{ - switch (d) - { - case LteTft::DOWNLINK: - os << "DOWNLINK"; - break; - case LteTft::UPLINK: - os << "UPLINK"; - break; - default: - os << "BIDIRECTIONAL"; - break; - } - return os; -} - - -std::ostream& operator<< (std::ostream& os, LteTft::PacketFilter& f) -{ - os << " direction: " << f.direction - << " remoteAddress: " << f.remoteAddress - << " remoteMask: " << f.remoteMask - << " localAddress: " << f.localAddress - << " localMask: " << f.localMask - << " remotePortStart: " << f.remotePortStart - << " remotePortEnd: " << f.remotePortEnd - << " localPortStart: " << f.localPortStart - << " localPortEnd: " << f.localPortEnd - << " typeOfService: 0x" << std::hex << (uint16_t) f.typeOfService << std::dec - << " typeOfServiceMask: 0x" << std::hex << (uint16_t) f.typeOfServiceMask << std::dec; - return os; -} - -LteTft::PacketFilter::PacketFilter () - : precedence (255), - direction (BIDIRECTIONAL), - remoteMask ("0.0.0.0"), - localMask ("0.0.0.0"), - remotePortStart (0), - remotePortEnd (65535), - localPortStart (0), - localPortEnd (65535), - typeOfService (0), - typeOfServiceMask (0) -{ - NS_LOG_FUNCTION (this); -} - -bool -LteTft::PacketFilter::Matches (Direction d, - Ipv4Address ra, - Ipv4Address la, - uint16_t rp, - uint16_t lp, - uint8_t tos) -{ - NS_LOG_FUNCTION (this << d << ra << la << rp << lp << (uint16_t) tos); - if (d & direction) - { - NS_LOG_LOGIC ("d matches"); - if (remoteMask.IsMatch (remoteAddress, ra)) - { - NS_LOG_LOGIC ("ra matches"); - if (localMask.IsMatch (localAddress, la)) - { - NS_LOG_LOGIC ("ls matches"); - if (rp >= remotePortStart) - { - NS_LOG_LOGIC ("rps matches"); - if (rp <= remotePortEnd) - { - NS_LOG_LOGIC ("rpe matches"); - if (lp >= localPortStart) - { - NS_LOG_LOGIC ("lps matches"); - if (lp <= localPortEnd) - { - NS_LOG_LOGIC ("lpe matches"); - if ((tos & typeOfServiceMask) == (typeOfService & typeOfServiceMask)) - { - NS_LOG_LOGIC ("tos matches --> have match!"); - return true; - } - } - } - } - } - } - else - { - NS_LOG_LOGIC ("la doesn't match: la=" << la << " f.la=" << localAddress << " f.lmask=" << localMask); - } - } - else - { - NS_LOG_LOGIC ("ra doesn't match: ra=" << ra << " f.ra=" << remoteAddress << " f.rmask=" << remoteMask); - } - } - else - { - NS_LOG_LOGIC ("d doesn't match: d=0x" << std::hex << d << " f.d=0x" << std::hex << direction << std::dec); - } - return false; -} - - -Ptr<LteTft> -LteTft::Default () -{ - Ptr<LteTft> tft = Create<LteTft> (); - LteTft::PacketFilter defaultPacketFilter; - tft->Add (defaultPacketFilter); - return tft; -} - - -LteTft::LteTft () - : m_numFilters (0) -{ - NS_LOG_FUNCTION (this); -} - -uint8_t -LteTft::Add (PacketFilter f) -{ - NS_LOG_FUNCTION (this << f); - NS_ABORT_IF (m_numFilters >= 16); - - std::list<PacketFilter>::iterator it; - for (it = m_filters.begin (); - (it != m_filters.end ()) && (it->precedence <= f.precedence); - ++it) - { - } - m_filters.insert (it, f); - ++m_numFilters; - return (m_numFilters - 1); -} - -bool -LteTft::Matches (Direction direction, - Ipv4Address remoteAddress, - Ipv4Address localAddress, - uint16_t remotePort, - uint16_t localPort, - uint8_t typeOfService) -{ - NS_LOG_FUNCTION (this << direction << remoteAddress << localAddress << std::dec << remotePort << localPort << (uint16_t) typeOfService); - for (std::list<PacketFilter>::iterator it = m_filters.begin (); - it != m_filters.end (); - ++it) - { - if (it->Matches (direction, remoteAddress, localAddress, remotePort, localPort, typeOfService)) - { - return true; - } - } - return false; -} - - -} // namespace ns3
--- a/src/lte/model/lte-tft.h Mon Dec 05 21:24:51 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,169 +0,0 @@ -/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ -/* - * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation; - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * Author: Nicola Baldo <nbaldo@cttc.es> - */ - - -#ifndef LTE_TFT_H -#define LTE_TFT_H - - -#include <ns3/simple-ref-count.h> -#include <ns3/ipv4-address.h> - -#include <list> - -namespace ns3 { - - - -/** - * This class implements the EPS bearer Traffic Flow Template (TFT), - * which is the set of all packet filters associated with an EPS bearer. - * - */ -class LteTft : public SimpleRefCount<LteTft> -{ - -public: - - - /** - * creates a TFT matching any traffic - * - * \return a newly created TFT that will match any traffic - */ - static Ptr<LteTft> Default (); - - /** - * Indicates the direction of the traffic that is to be classified. - */ - enum Direction {DOWNLINK = 1, - UPLINK = 2, - BIDIRECTIONAL = 3}; - - /** - * Implement the data structure representing a TrafficFlowTemplate - * Packet Filter. - * See 3GPP TS 24.008 version 8.7.0 Release 8, Table 10.5.162/3GPP TS - * 24.008: Traffic flow template information element - * - * With respect to the Packet Filter specification in the above doc, - * the following features are NOT supported: - * - IPv6 filtering (including flow labels) - * - IPSec filtering - * - filter precedence field is not evaluated, hence it is recommended to setup - * the TFTs within a PDP context such that TFTs are mutually exclusive - */ - struct PacketFilter - { - PacketFilter (); - - /** - * - * \param d the direction - * \param ra the remote address - * \param la the local address - * \param rp the remote port - * \param lp the local port - * \param tos the type of service - * - * \return true if the parameters match with the PacketFilter, - * false otherwise. - */ - bool Matches (Direction d, - Ipv4Address ra, - Ipv4Address la, - uint16_t rp, - uint16_t lp, - uint8_t tos); - - - - uint8_t precedence; /**< used to specify the precedence for the - * packet filter among all packet filters in - * the TFT; higher values will be evaluated - * last. - */ - - Direction direction; /**< whether the filter needs to be applied - to uplink / downlink only, or in both cases*/ - - Ipv4Address remoteAddress; /**< IPv4 address of the remote host */ - Ipv4Mask remoteMask; /**< IPv4 address mask of the remote host */ - Ipv4Address localAddress; /**< IPv4 address of the UE */ - Ipv4Mask localMask; /**< IPv4 address mask of the UE */ - - uint16_t remotePortStart; /**< start of the port number range of the remote host */ - uint16_t remotePortEnd; /**< end of the port number range of the remote host */ - uint16_t localPortStart; /**< start of the port number range of the UE */ - uint16_t localPortEnd; /**< end of the port number range of the UE */ - - uint8_t typeOfService; /**< type of service field */ - uint8_t typeOfServiceMask; /**< type of service field mask */ - }; - - LteTft (); - - - /** - * add a PacketFilter to the Traffic Flow Template - * - * \param the PacketFilter to be added - * - * \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. - */ - uint8_t Add (PacketFilter f); - - - /** - * - * \param direction - * \param remoteAddress - * \param localAddress - * \param remotePort - * \param localPort - * \param typeOfService - * - * \return true if any PacketFilter in the TFT matches with the - * parameters, false otherwise. - */ - bool Matches (Direction direction, - Ipv4Address remoteAddress, - Ipv4Address localAddress, - uint16_t remotePort, - uint16_t localPort, - uint8_t typeOfService); - - -private: - - std::list<PacketFilter> m_filters; - uint8_t m_numFilters; - -}; - - -std::ostream& operator<< (std::ostream& os, LteTft::Direction& d); - - -} // namespace ns3 - -#endif /* LTE_TFT_H */ - -
--- a/src/lte/model/lte-ue-rrc.cc Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/model/lte-ue-rrc.cc Mon Dec 05 21:27:44 2011 +0100 @@ -178,7 +178,7 @@ } void -LteUeRrc::SetupRadioBearer (uint16_t rnti, EpsBearer bearer, TypeId rlcTypeId, uint8_t lcid, Ptr<LteTft> tft) +LteUeRrc::SetupRadioBearer (uint16_t rnti, EpsBearer bearer, TypeId rlcTypeId, uint8_t lcid, Ptr<EpcTft> tft) { NS_LOG_FUNCTION (this << (uint32_t) rnti << (uint32_t) lcid); @@ -229,7 +229,7 @@ LteUeRrc::Send (Ptr<Packet> packet) { NS_LOG_FUNCTION (this << packet); - uint8_t lcid = m_tftClassifier.Classify (packet, LteTft::UPLINK); + uint8_t lcid = m_tftClassifier.Classify (packet, EpcTft::UPLINK); LtePdcpSapProvider::TransmitRrcPduParameters params; params.rrcPdu = packet; params.rnti = m_rnti;
--- a/src/lte/model/lte-ue-rrc.h Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/model/lte-ue-rrc.h Mon Dec 05 21:27:44 2011 +0100 @@ -112,7 +112,7 @@ * \param tft the Traffic Flow Template identifying this bearer * */ - void SetupRadioBearer (uint16_t rnti, EpsBearer bearer, TypeId rlcTypeId, uint8_t lcid, Ptr<LteTft> tft); + void SetupRadioBearer (uint16_t rnti, EpsBearer bearer, TypeId rlcTypeId, uint8_t lcid, Ptr<EpcTft> tft); /**
--- a/src/lte/test/epc-test-s1u-downlink.cc Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/test/epc-test-s1u-downlink.cc Mon Dec 05 21:27:44 2011 +0100 @@ -186,7 +186,7 @@ uint16_t rnti = u+1; uint16_t lcid = 1; - epcHelper->ActivateEpsBearer (ueLteDevice, lteEnbNetDevice, LteTft::Default (), rnti, lcid); + epcHelper->ActivateEpsBearer (ueLteDevice, lteEnbNetDevice, EpcTft::Default (), rnti, lcid); }
--- a/src/lte/test/epc-test-s1u-uplink.cc Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/test/epc-test-s1u-uplink.cc Mon Dec 05 21:27:44 2011 +0100 @@ -411,7 +411,7 @@ uint16_t rnti = u+1; uint16_t lcid = 1; - epcHelper->ActivateEpsBearer (ueLteDevice, lteEnbNetDevice, LteTft::Default (), rnti, lcid); + epcHelper->ActivateEpsBearer (ueLteDevice, lteEnbNetDevice, EpcTft::Default (), rnti, lcid); // need this since all sinks are installed in the same node ++udpSinkPort;
--- a/src/lte/test/lte-test-interference.cc Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/test/lte-test-interference.cc Mon Dec 05 21:27:44 2011 +0100 @@ -160,8 +160,8 @@ // Activate an EPS bearer enum EpsBearer::Qci q = EpsBearer::GBR_CONV_VOICE; EpsBearer bearer (q); - lteHelper->ActivateEpsBearer (ueDevs1, bearer, LteTft::Default ()); - lteHelper->ActivateEpsBearer (ueDevs2, bearer, LteTft::Default ()); + lteHelper->ActivateEpsBearer (ueDevs1, bearer, EpcTft::Default ()); + lteHelper->ActivateEpsBearer (ueDevs2, bearer, EpcTft::Default ()); // Use testing chunk processor in the PHY layer // It will be used to test that the SNR is as intended
--- a/src/lte/test/lte-test-link-adaptation.cc Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/test/lte-test-link-adaptation.cc Mon Dec 05 21:27:44 2011 +0100 @@ -191,7 +191,7 @@ // Activate the default EPS bearer enum EpsBearer::Qci q = EpsBearer::NGBR_VIDEO_TCP_DEFAULT; EpsBearer bearer (q); - lteHelper->ActivateEpsBearer (ueDevs, bearer, LteTft::Default ()); + lteHelper->ActivateEpsBearer (ueDevs, bearer, EpcTft::Default ()); // Use testing chunk processor in the PHY layer // It will be used to test that the SNR is as intended
--- a/src/lte/test/lte-test-pathloss-model.cc Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/test/lte-test-pathloss-model.cc Mon Dec 05 21:27:44 2011 +0100 @@ -260,7 +260,7 @@ // Activate an EPS bearer enum EpsBearer::Qci q = EpsBearer::GBR_CONV_VOICE; EpsBearer bearer (q); - lteHelper->ActivateEpsBearer (ueDevs, bearer, LteTft::Default ()); + lteHelper->ActivateEpsBearer (ueDevs, bearer, EpcTft::Default ()); // Use testing chunk processor in the PHY layer // It will be used to test that the SNR is as intended
--- a/src/lte/test/lte-test-pf-ff-mac-scheduler.cc Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/test/lte-test-pf-ff-mac-scheduler.cc Mon Dec 05 21:27:44 2011 +0100 @@ -269,7 +269,7 @@ // Activate an EPS bearer enum EpsBearer::Qci q = EpsBearer::GBR_CONV_VOICE; EpsBearer bearer (q); - lteHelper->ActivateEpsBearer (ueDevs, bearer, LteTft::Default ()); + lteHelper->ActivateEpsBearer (ueDevs, bearer, EpcTft::Default ()); Ptr<LteEnbNetDevice> lteEnbDev = enbDevs.Get (0)->GetObject<LteEnbNetDevice> (); Ptr<LteEnbPhy> enbPhy = lteEnbDev->GetPhy (); @@ -450,7 +450,7 @@ // Activate an EPS bearer enum EpsBearer::Qci q = EpsBearer::GBR_CONV_VOICE; EpsBearer bearer (q); - lteHelper->ActivateEpsBearer (ueDevs, bearer, LteTft::Default ()); + lteHelper->ActivateEpsBearer (ueDevs, bearer, EpcTft::Default ()); Ptr<LteEnbNetDevice> lteEnbDev = enbDevs.Get (0)->GetObject<LteEnbNetDevice> (); Ptr<LteEnbPhy> enbPhy = lteEnbDev->GetPhy ();
--- a/src/lte/test/lte-test-rr-ff-mac-scheduler.cc Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/test/lte-test-rr-ff-mac-scheduler.cc Mon Dec 05 21:27:44 2011 +0100 @@ -257,7 +257,7 @@ // Activate an EPS bearer enum EpsBearer::Qci q = EpsBearer::GBR_CONV_VOICE; EpsBearer bearer (q); - lteHelper->ActivateEpsBearer (ueDevs, bearer, LteTft::Default ()); + lteHelper->ActivateEpsBearer (ueDevs, bearer, EpcTft::Default ()); Ptr<LteEnbNetDevice> lteEnbDev = enbDevs.Get (0)->GetObject<LteEnbNetDevice> ();
--- a/src/lte/test/test-eps-tft-classifier.cc Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/test/test-eps-tft-classifier.cc Mon Dec 05 21:27:44 2011 +0100 @@ -41,7 +41,7 @@ { public: EpsTftClassifierTestCase (Ptr<EpsTftClassifier> c, - LteTft::Direction d, + EpcTft::Direction d, Ipv4Address sa, Ipv4Address da, uint16_t sp, @@ -53,14 +53,14 @@ private: Ptr<EpsTftClassifier> m_c; - LteTft::Direction m_d; + EpcTft::Direction m_d; uint8_t m_tftId; Ipv4Header m_ipHeader; UdpHeader m_udpHeader; TcpHeader m_tcpHeader; static std::string BuildNameString (Ptr<EpsTftClassifier> c, - LteTft::Direction d, + EpcTft::Direction d, Ipv4Address sa, Ipv4Address da, uint16_t sp, @@ -71,7 +71,7 @@ }; EpsTftClassifierTestCase::EpsTftClassifierTestCase (Ptr<EpsTftClassifier> c, - LteTft::Direction d, + EpcTft::Direction d, Ipv4Address sa, Ipv4Address da, uint16_t sp, @@ -99,7 +99,7 @@ std::string EpsTftClassifierTestCase::BuildNameString (Ptr<EpsTftClassifier> c, - LteTft::Direction d, + EpcTft::Direction d, Ipv4Address sa, Ipv4Address da, uint16_t sp, @@ -158,16 +158,16 @@ Ptr<EpsTftClassifier> c1 = Create<EpsTftClassifier> (); - Ptr<LteTft> tft1_1 = Create<LteTft> (); + Ptr<EpcTft> tft1_1 = Create<EpcTft> (); - LteTft::PacketFilter pf1_1_1; + EpcTft::PacketFilter pf1_1_1; pf1_1_1.remoteAddress.Set ("1.0.0.0"); pf1_1_1.localAddress.Set ("2.0.0.0"); pf1_1_1.remoteMask.Set (0xFF000000); pf1_1_1.localMask.Set (0xFF000000); tft1_1->Add (pf1_1_1); - LteTft::PacketFilter pf1_1_2; + EpcTft::PacketFilter pf1_1_2; pf1_1_2.remoteAddress.Set ("3.3.3.0"); pf1_1_2.localAddress.Set ("4.4.4.0"); pf1_1_2.remoteMask.Set (0xFFFFFF00); @@ -178,26 +178,26 @@ - Ptr<LteTft> tft1_2 = Create<LteTft> (); + Ptr<EpcTft> tft1_2 = Create<EpcTft> (); - LteTft::PacketFilter pf1_2_1; + EpcTft::PacketFilter pf1_2_1; pf1_2_1.remotePortStart = 1024; pf1_2_1.remotePortEnd = 1035; tft1_2->Add (pf1_2_1); - LteTft::PacketFilter pf1_2_2; + EpcTft::PacketFilter pf1_2_2; pf1_2_2.localPortStart = 3456; pf1_2_2.localPortEnd = 3489; tft1_2->Add (pf1_2_2); - LteTft::PacketFilter pf1_2_3; + EpcTft::PacketFilter pf1_2_3; pf1_2_3.localPortStart = 7895; pf1_2_3.localPortEnd = 7895; tft1_2->Add (pf1_2_3); - LteTft::PacketFilter pf1_2_4; + EpcTft::PacketFilter pf1_2_4; pf1_2_4.remotePortStart = 5897; pf1_2_4.remotePortEnd = 5897; tft1_2->Add (pf1_2_4); @@ -208,33 +208,33 @@ // ------------------------------------classifier---direction--------------src address---------------dst address---src port--dst port--ToS--TFT id // test IP addresses - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::UPLINK, Ipv4Address ("2.2.3.4"), Ipv4Address ("1.1.1.1"), 4, 1234, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::UPLINK, Ipv4Address ("2.2.3.4"), Ipv4Address ("1.0.0.0"), 2, 123, 5, 1)); - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::UPLINK, Ipv4Address ("6.2.3.4"), Ipv4Address ("1.1.1.1"), 4, 1234, 0, 0)); - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::DOWNLINK, Ipv4Address ("3.3.3.4"), Ipv4Address ("4.4.4.1"), 4, 1234, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::DOWNLINK, Ipv4Address ("3.3.4.4"), Ipv4Address ("4.4.4.1"), 4, 1234, 0, 0)); - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::UPLINK, Ipv4Address ("3.3.3.4"), Ipv4Address ("4.4.2.1"), 4, 1234, 0, 0)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::UPLINK, Ipv4Address ("2.2.3.4"), Ipv4Address ("1.1.1.1"), 4, 1234, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::UPLINK, Ipv4Address ("2.2.3.4"), Ipv4Address ("1.0.0.0"), 2, 123, 5, 1)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::UPLINK, Ipv4Address ("6.2.3.4"), Ipv4Address ("1.1.1.1"), 4, 1234, 0, 0)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::DOWNLINK, Ipv4Address ("3.3.3.4"), Ipv4Address ("4.4.4.1"), 4, 1234, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::DOWNLINK, Ipv4Address ("3.3.4.4"), Ipv4Address ("4.4.4.1"), 4, 1234, 0, 0)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::UPLINK, Ipv4Address ("3.3.3.4"), Ipv4Address ("4.4.2.1"), 4, 1234, 0, 0)); // test remote port - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1024, 0, 2)); - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1025, 0, 2)); - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1035, 0, 2)); - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1234, 0, 0)); - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1024, 0, 0)); - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1025, 0, 0)); - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1035, 0, 0)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1024, 0, 2)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1025, 0, 2)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1035, 0, 2)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1234, 0, 0)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1024, 0, 0)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1025, 0, 0)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1035, 0, 0)); // test local port - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 3456, 0, 0)); - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 3457, 0, 0)); - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 3489, 0, 0)); - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 3456, 6, 0, 2)); - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 3461, 3461, 0, 2)); - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 9, 3489, 0, 2)); - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 9, 7895, 0, 2)); - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 7895, 10, 0, 2)); - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 9, 5897, 0, 2)); - AddTestCase (new EpsTftClassifierTestCase (c1, LteTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 5897, 10, 0, 2)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 3456, 0, 0)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 3457, 0, 0)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 3489, 0, 0)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 3456, 6, 0, 2)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 3461, 3461, 0, 2)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 9, 3489, 0, 2)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 9, 7895, 0, 2)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 7895, 10, 0, 2)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 9, 5897, 0, 2)); + AddTestCase (new EpsTftClassifierTestCase (c1, EpcTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 5897, 10, 0, 2)); /////////////////////////// @@ -242,34 +242,34 @@ /////////////////////////// Ptr<EpsTftClassifier> c2 = Create<EpsTftClassifier> (); - c2->Add (LteTft::Default (), 1); + c2->Add (EpcTft::Default (), 1); // ------------------------------------classifier---direction--------------src address---------------dst address---src port--dst port--ToS--TFT id // test IP addresses - AddTestCase (new EpsTftClassifierTestCase (c2, LteTft::UPLINK, Ipv4Address ("2.2.3.4"), Ipv4Address ("1.1.1.1"), 4, 1234, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c2, LteTft::UPLINK, Ipv4Address ("2.2.3.4"), Ipv4Address ("1.0.0.0"), 2, 123, 5, 1)); - AddTestCase (new EpsTftClassifierTestCase (c2, LteTft::UPLINK, Ipv4Address ("6.2.3.4"), Ipv4Address ("1.1.1.1"), 4, 1234, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c2, LteTft::DOWNLINK, Ipv4Address ("3.3.3.4"), Ipv4Address ("4.4.4.1"), 4, 1234, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c2, LteTft::DOWNLINK, Ipv4Address ("3.3.4.4"), Ipv4Address ("4.4.4.1"), 4, 1234, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c2, LteTft::UPLINK, Ipv4Address ("3.3.3.4"), Ipv4Address ("4.4.2.1"), 4, 1234, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c2, EpcTft::UPLINK, Ipv4Address ("2.2.3.4"), Ipv4Address ("1.1.1.1"), 4, 1234, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c2, EpcTft::UPLINK, Ipv4Address ("2.2.3.4"), Ipv4Address ("1.0.0.0"), 2, 123, 5, 1)); + AddTestCase (new EpsTftClassifierTestCase (c2, EpcTft::UPLINK, Ipv4Address ("6.2.3.4"), Ipv4Address ("1.1.1.1"), 4, 1234, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c2, EpcTft::DOWNLINK, Ipv4Address ("3.3.3.4"), Ipv4Address ("4.4.4.1"), 4, 1234, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c2, EpcTft::DOWNLINK, Ipv4Address ("3.3.4.4"), Ipv4Address ("4.4.4.1"), 4, 1234, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c2, EpcTft::UPLINK, Ipv4Address ("3.3.3.4"), Ipv4Address ("4.4.2.1"), 4, 1234, 0, 1)); // test remote port - AddTestCase (new EpsTftClassifierTestCase (c2, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1024, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c2, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1025, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c2, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1035, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c2, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1234, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c2, LteTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1024, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c2, LteTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1025, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c2, LteTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1035, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c2, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1024, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c2, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1025, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c2, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1035, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c2, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1234, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c2, EpcTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1024, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c2, EpcTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1025, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c2, EpcTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1035, 0, 1)); // test local port - AddTestCase (new EpsTftClassifierTestCase (c2, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 3456, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c2, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 3457, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c2, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 3489, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c2, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 3456, 6, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c2, LteTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 3461, 3461, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c2, LteTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 9, 3489, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c2, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 3456, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c2, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 3457, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c2, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 3489, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c2, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 3456, 6, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c2, EpcTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 3461, 3461, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c2, EpcTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 9, 3489, 0, 1)); @@ -278,36 +278,36 @@ /////////////////////////////////////////// Ptr<EpsTftClassifier> c3 = Create<EpsTftClassifier> (); - c3->Add (LteTft::Default (), 1); + c3->Add (EpcTft::Default (), 1); c3->Add (tft1_1, 2); c3->Add (tft1_2, 3); // ------------------------------------classifier---direction--------------src address---------------dst address---src port--dst port--ToS--TFT id // test IP addresses - AddTestCase (new EpsTftClassifierTestCase (c3, LteTft::UPLINK, Ipv4Address ("2.2.3.4"), Ipv4Address ("1.1.1.1"), 4, 1234, 0, 2)); - AddTestCase (new EpsTftClassifierTestCase (c3, LteTft::UPLINK, Ipv4Address ("2.2.3.4"), Ipv4Address ("1.0.0.0"), 2, 123, 5, 2)); - AddTestCase (new EpsTftClassifierTestCase (c3, LteTft::UPLINK, Ipv4Address ("6.2.3.4"), Ipv4Address ("1.1.1.1"), 4, 1234, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c3, LteTft::DOWNLINK, Ipv4Address ("3.3.3.4"), Ipv4Address ("4.4.4.1"), 4, 1234, 0, 2)); - AddTestCase (new EpsTftClassifierTestCase (c3, LteTft::DOWNLINK, Ipv4Address ("3.3.4.4"), Ipv4Address ("4.4.4.1"), 4, 1234, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c3, LteTft::UPLINK, Ipv4Address ("3.3.3.4"), Ipv4Address ("4.4.2.1"), 4, 1234, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c3, EpcTft::UPLINK, Ipv4Address ("2.2.3.4"), Ipv4Address ("1.1.1.1"), 4, 1234, 0, 2)); + AddTestCase (new EpsTftClassifierTestCase (c3, EpcTft::UPLINK, Ipv4Address ("2.2.3.4"), Ipv4Address ("1.0.0.0"), 2, 123, 5, 2)); + AddTestCase (new EpsTftClassifierTestCase (c3, EpcTft::UPLINK, Ipv4Address ("6.2.3.4"), Ipv4Address ("1.1.1.1"), 4, 1234, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c3, EpcTft::DOWNLINK, Ipv4Address ("3.3.3.4"), Ipv4Address ("4.4.4.1"), 4, 1234, 0, 2)); + AddTestCase (new EpsTftClassifierTestCase (c3, EpcTft::DOWNLINK, Ipv4Address ("3.3.4.4"), Ipv4Address ("4.4.4.1"), 4, 1234, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c3, EpcTft::UPLINK, Ipv4Address ("3.3.3.4"), Ipv4Address ("4.4.2.1"), 4, 1234, 0, 1)); // test remote port - AddTestCase (new EpsTftClassifierTestCase (c3, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1024, 0, 3)); - AddTestCase (new EpsTftClassifierTestCase (c3, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1025, 0, 3)); - AddTestCase (new EpsTftClassifierTestCase (c3, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1035, 0, 3)); - AddTestCase (new EpsTftClassifierTestCase (c3, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1234, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c3, LteTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1024, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c3, LteTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1025, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c3, LteTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1035, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c3, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1024, 0, 3)); + AddTestCase (new EpsTftClassifierTestCase (c3, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1025, 0, 3)); + AddTestCase (new EpsTftClassifierTestCase (c3, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1035, 0, 3)); + AddTestCase (new EpsTftClassifierTestCase (c3, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1234, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c3, EpcTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1024, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c3, EpcTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1025, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c3, EpcTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 1035, 0, 1)); // test local port - AddTestCase (new EpsTftClassifierTestCase (c3, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 3456, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c3, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 3457, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c3, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 3489, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c3, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 3456, 6, 0, 3)); - AddTestCase (new EpsTftClassifierTestCase (c3, LteTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 3461, 3461, 0, 3)); - AddTestCase (new EpsTftClassifierTestCase (c3, LteTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 9, 3489, 0, 3)); + AddTestCase (new EpsTftClassifierTestCase (c3, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 3456, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c3, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 3457, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c3, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 4, 3489, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c3, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 3456, 6, 0, 3)); + AddTestCase (new EpsTftClassifierTestCase (c3, EpcTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 3461, 3461, 0, 3)); + AddTestCase (new EpsTftClassifierTestCase (c3, EpcTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 9, 3489, 0, 3)); @@ -316,17 +316,17 @@ /////////////////////////////////////////// Ptr<EpsTftClassifier> c4 = Create<EpsTftClassifier> (); - Ptr<LteTft> tft4_1 = Create<LteTft> (); + Ptr<EpcTft> tft4_1 = Create<EpcTft> (); tft4_1->Add (pf1_2_3); c4->Add (tft4_1, 1); - Ptr<LteTft> tft4_2 = Create<LteTft> (); + Ptr<EpcTft> tft4_2 = Create<EpcTft> (); tft4_2->Add (pf1_2_4); c4->Add (tft4_2, 2); - AddTestCase (new EpsTftClassifierTestCase (c4, LteTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 9, 3489, 0, 0)); - AddTestCase (new EpsTftClassifierTestCase (c4, LteTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 9, 7895, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c4, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 7895, 10, 0, 1)); - AddTestCase (new EpsTftClassifierTestCase (c4, LteTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 9, 5897, 0, 2)); - AddTestCase (new EpsTftClassifierTestCase (c4, LteTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 5897, 10, 0, 2)); + AddTestCase (new EpsTftClassifierTestCase (c4, EpcTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 9, 3489, 0, 0)); + AddTestCase (new EpsTftClassifierTestCase (c4, EpcTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 9, 7895, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c4, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 7895, 10, 0, 1)); + AddTestCase (new EpsTftClassifierTestCase (c4, EpcTft::UPLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 9, 5897, 0, 2)); + AddTestCase (new EpsTftClassifierTestCase (c4, EpcTft::DOWNLINK, Ipv4Address ("9.1.1.1"), Ipv4Address ("8.1.1.1"), 5897, 10, 0, 2)); }
--- a/src/lte/test/test-lte-epc-e2e-data.cc Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/test/test-lte-epc-e2e-data.cc Mon Dec 05 21:27:44 2011 +0100 @@ -237,12 +237,12 @@ EpsBearer epsBearer (EpsBearer::NGBR_VIDEO_TCP_DEFAULT); - Ptr<LteTft> tft = Create<LteTft> (); - LteTft::PacketFilter dlpf; + Ptr<EpcTft> tft = Create<EpcTft> (); + EpcTft::PacketFilter dlpf; dlpf.localPortStart = dlPort; dlpf.localPortEnd = dlPort; tft->Add (dlpf); - LteTft::PacketFilter ulpf; + EpcTft::PacketFilter ulpf; ulpf.remotePortStart = ulPort; ulpf.remotePortEnd = ulPort; tft->Add (ulpf);
--- a/src/lte/wscript Mon Dec 05 21:24:51 2011 +0100 +++ b/src/lte/wscript Mon Dec 05 21:27:44 2011 +0100 @@ -60,7 +60,7 @@ 'model/epc-gtpu-tunnel-endpoint.cc', 'model/epc-enb-application.cc', 'model/epc-sgw-pgw-application.cc', - 'model/lte-tft.cc', + 'model/epc-tft.cc', 'model/eps-tft-classifier.cc', ] @@ -160,7 +160,7 @@ 'test/lte-test-rlc-am-transmitter.h', 'test/lte-test-pathloss-model.h', 'test/epc-test-gtpu.h', - 'model/lte-tft.h', + 'model/epc-tft.h', 'model/eps-tft-classifier.h', ]