NDN application for sending out Interest packets. More...
#include <ndn-consumer.hpp>
Public Types | |
typedef void(* | LastRetransmittedInterestDataDelayCallback) (Ptr< App > app, uint32_t seqno, Time delay, int32_t hopCount) |
typedef void(* | FirstInterestDataDelayCallback) (Ptr< App > app, uint32_t seqno, Time delay, uint32_t retxCount, int32_t hopCount) |
Public Types inherited from ns3::ndn::App | |
typedef void(* | InterestTraceCallback) (shared_ptr< const Interest >, Ptr< App >, shared_ptr< Face >) |
typedef void(* | DataTraceCallback) (shared_ptr< const Data >, Ptr< App >, shared_ptr< Face >) |
typedef void(* | NackTraceCallback) (shared_ptr< const lp::Nack >, Ptr< App >, shared_ptr< Face >) |
Public Member Functions | |
Consumer () | |
Default constructor Sets up randomizer function and packet sequence number. More... | |
virtual | ~Consumer () |
virtual void | OnData (shared_ptr< const Data > contentObject) |
Method that will be called every time new Data arrives. More... | |
virtual void | OnNack (shared_ptr< const lp::Nack > nack) |
Method that will be called every time new Nack arrives. More... | |
virtual void | OnTimeout (uint32_t sequenceNumber) |
Timeout event. More... | |
void | SendPacket () |
Actually send packet. More... | |
virtual void | WillSendOutInterest (uint32_t sequenceNumber) |
An event that is fired just before an Interest packet is actually send out (send is inevitable) More... | |
Public Member Functions inherited from ns3::ndn::App | |
App () | |
Default constructor. More... | |
virtual | ~App () |
uint32_t | GetId () const |
Get application ID (ID of applications face) More... | |
virtual void | OnInterest (shared_ptr< const Interest > interest) |
Method that will be called every time new Interest arrives. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Static Public Member Functions inherited from ns3::ndn::App | |
static TypeId | GetTypeId () |
Protected Member Functions | |
virtual void | StartApplication () |
Called at time specified by Start. More... | |
virtual void | StopApplication () |
Called at time specified by Stop. More... | |
virtual void | ScheduleNextPacket ()=0 |
Constructs the Interest packet and sends it using a callback to the underlying NDN protocol. More... | |
void | CheckRetxTimeout () |
Checks if the packet need to be retransmitted becuase of retransmission timer expiration. More... | |
void | SetRetxTimer (Time retxTimer) |
Modifies the frequency of checking the retransmission timeouts. More... | |
Time | GetRetxTimer () const |
Returns the frequency of checking the retransmission timeouts. More... | |
Protected Member Functions inherited from ns3::ndn::App | |
virtual void | DoInitialize () |
virtual void | DoDispose () |
Protected Attributes | |
Ptr< UniformRandomVariable > | m_rand |
nonce generator More... | |
uint32_t | m_seq |
currently requested sequence number More... | |
uint32_t | m_seqMax |
maximum number of sequence number More... | |
EventId | m_sendEvent |
EventId of pending "send packet" event. More... | |
Time | m_retxTimer |
Currently estimated retransmission timer. More... | |
EventId | m_retxEvent |
Event to check whether or not retransmission should be performed. More... | |
Ptr< RttEstimator > | m_rtt |
RTT estimator. More... | |
Time | m_offTime |
Time interval between packets. More... | |
Name | m_interestName |
NDN Name of the Interest (use Name) More... | |
Time | m_interestLifeTime |
LifeTime for interest packet. More... | |
Protected Attributes inherited from ns3::ndn::App | |
bool | m_active |
Flag to indicate that application is active (set by StartApplication and StopApplication) More... | |
shared_ptr< Face > | m_face |
AppLinkService * | m_appLink |
uint32_t | m_appId |
TracedCallback< shared_ptr< const Interest >, Ptr< App >, shared_ptr< Face > > | m_receivedInterests |
App-level trace of received Interests. More... | |
TracedCallback< shared_ptr< const Data >, Ptr< App >, shared_ptr< Face > > | m_receivedDatas |
App-level trace of received Data. More... | |
TracedCallback< shared_ptr< const lp::Nack >, Ptr< App >, shared_ptr< Face > > | m_receivedNacks |
App-level trace of received Nacks. More... | |
TracedCallback< shared_ptr< const Interest >, Ptr< App >, shared_ptr< Face > > | m_transmittedInterests |
App-level trace of transmitted Interests. More... | |
TracedCallback< shared_ptr< const Data >, Ptr< App >, shared_ptr< Face > > | m_transmittedDatas |
App-level trace of transmitted Data. More... | |
TracedCallback< shared_ptr< const lp::Nack >, Ptr< App >, shared_ptr< Face > > | m_transmittedNacks |
App-level trace of transmitted Nacks. More... | |
NDN application for sending out Interest packets.
ns3::ndn::Consumer is accessible through the following paths with Config::Set and Config::Connect:
Size of this type is 704 bytes (on a 64-bit architecture).
Definition at line 49 of file ndn-consumer.hpp.
typedef void(* ns3::ndn::Consumer::LastRetransmittedInterestDataDelayCallback) (Ptr< App > app, uint32_t seqno, Time delay, int32_t hopCount) |
Definition at line 96 of file ndn-consumer.hpp.
typedef void(* ns3::ndn::Consumer::FirstInterestDataDelayCallback) (Ptr< App > app, uint32_t seqno, Time delay, uint32_t retxCount, int32_t hopCount) |
Definition at line 97 of file ndn-consumer.hpp.
ns3::ndn::Consumer::Consumer | ( | ) |
Default constructor Sets up randomizer function and packet sequence number.
Definition at line 81 of file ndn-consumer.cpp.
References m_rtt.
|
inlinevirtual |
Definition at line 59 of file ndn-consumer.hpp.
References OnData(), OnNack(), OnTimeout(), SendPacket(), and WillSendOutInterest().
|
static |
Definition at line 48 of file ndn-consumer.cpp.
References GetRetxTimer(), m_interestLifeTime, m_interestName, m_seq, ns3::ndn::MakeNameAccessor(), ns3::ndn::MakeNameChecker(), and SetRetxTimer().
|
virtual |
Method that will be called every time new Data arrives.
Reimplemented from ns3::ndn::App.
Reimplemented in ns3::ndn::ConsumerWindow.
Definition at line 212 of file ndn-consumer.cpp.
References ns3::ndn::App::m_active, m_rtt, and ns3::ndn::App::OnData().
Referenced by ns3::ndn::ConsumerWindow::OnData(), and ~Consumer().
|
virtual |
Method that will be called every time new Nack arrives.
Reimplemented from ns3::ndn::App.
Definition at line 255 of file ndn-consumer.cpp.
References ns3::ndn::App::OnNack().
Referenced by ~Consumer().
|
virtual |
Timeout event.
sequenceNumber | time outed sequence number |
Reimplemented in ns3::ndn::ConsumerWindow.
Definition at line 265 of file ndn-consumer.cpp.
References m_rtt, and ScheduleNextPacket().
Referenced by CheckRetxTimeout(), ns3::ndn::ConsumerWindow::OnTimeout(), and ~Consumer().
void ns3::ndn::Consumer::SendPacket | ( | ) |
Actually send packet.
Definition at line 159 of file ndn-consumer.cpp.
References ns3::ndn::App::m_active, ns3::ndn::App::m_appLink, ns3::ndn::App::m_face, m_interestLifeTime, m_interestName, m_rand, m_seq, m_seqMax, ns3::ndn::App::m_transmittedInterests, websocketpp::lib::asio::milliseconds(), ns3::ndn::AppLinkService::onReceiveInterest(), ScheduleNextPacket(), and WillSendOutInterest().
Referenced by ns3::ndn::ConsumerCbr::ScheduleNextPacket(), ns3::ndn::ConsumerBatches::ScheduleNextPacket(), ns3::ndn::ConsumerWindow::ScheduleNextPacket(), and ~Consumer().
|
virtual |
An event that is fired just before an Interest packet is actually send out (send is inevitable)
The reason for "before" even is that in certain cases (when it is possible to satisfy from the local cache), the send call will immediately return data, and if "after" even was used, this after would be called after all processing of incoming data, potentially producing unexpected results.
Reimplemented in ns3::ndn::ConsumerWindow.
Definition at line 279 of file ndn-consumer.cpp.
References m_rtt.
Referenced by SendPacket(), ns3::ndn::ConsumerWindow::WillSendOutInterest(), and ~Consumer().
|
protectedvirtual |
Called at time specified by Start.
Reimplemented from ns3::ndn::App.
Definition at line 136 of file ndn-consumer.cpp.
References ScheduleNextPacket(), and ns3::ndn::App::StartApplication().
Referenced by ns3::ndn::ConsumerBatches::ConsumerBatches().
|
protectedvirtual |
Called at time specified by Stop.
Reimplemented from ns3::ndn::App.
Definition at line 147 of file ndn-consumer.cpp.
References m_sendEvent, and ns3::ndn::App::StopApplication().
|
protectedpure virtual |
Constructs the Interest packet and sends it using a callback to the underlying NDN protocol.
Implemented in ns3::ndn::ConsumerZipfMandelbrot, ns3::ndn::ConsumerWindow, ns3::ndn::ConsumerBatches, and ns3::ndn::ConsumerCbr.
Referenced by OnTimeout(), SendPacket(), and StartApplication().
|
protected |
Checks if the packet need to be retransmitted becuase of retransmission timer expiration.
Definition at line 111 of file ndn-consumer.cpp.
References m_retxEvent, m_retxTimer, m_rtt, and OnTimeout().
Referenced by SetRetxTimer().
|
protected |
Modifies the frequency of checking the retransmission timeouts.
retxTimer | Timeout defining how frequent retransmission timeouts should be checked |
Definition at line 92 of file ndn-consumer.cpp.
References CheckRetxTimeout(), m_retxEvent, and m_retxTimer.
Referenced by GetTypeId().
|
protected |
Returns the frequency of checking the retransmission timeouts.
Definition at line 105 of file ndn-consumer.cpp.
References m_retxTimer.
Referenced by GetTypeId().
|
protected |
nonce generator
Definition at line 135 of file ndn-consumer.hpp.
Referenced by ns3::ndn::ConsumerZipfMandelbrot::SendPacket(), and SendPacket().
|
protected |
currently requested sequence number
Definition at line 137 of file ndn-consumer.hpp.
Referenced by GetTypeId(), ns3::ndn::ConsumerZipfMandelbrot::SendPacket(), and SendPacket().
|
protected |
maximum number of sequence number
Definition at line 138 of file ndn-consumer.hpp.
Referenced by ns3::ndn::ConsumerBatches::ConsumerBatches(), ns3::ndn::ConsumerCbr::ConsumerCbr(), ns3::ndn::ConsumerWindow::ConsumerWindow(), ns3::ndn::ConsumerCbr::GetTypeId(), ns3::ndn::ConsumerZipfMandelbrot::SendPacket(), and SendPacket().
|
protected |
EventId of pending "send packet" event.
Definition at line 139 of file ndn-consumer.hpp.
Referenced by ns3::ndn::ConsumerCbr::ScheduleNextPacket(), ns3::ndn::ConsumerBatches::ScheduleNextPacket(), ns3::ndn::ConsumerWindow::ScheduleNextPacket(), ns3::ndn::ConsumerZipfMandelbrot::ScheduleNextPacket(), and StopApplication().
|
protected |
Currently estimated retransmission timer.
Definition at line 140 of file ndn-consumer.hpp.
Referenced by CheckRetxTimeout(), GetRetxTimer(), and SetRetxTimer().
|
protected |
Event to check whether or not retransmission should be performed.
Definition at line 141 of file ndn-consumer.hpp.
Referenced by CheckRetxTimeout(), and SetRetxTimer().
|
protected |
RTT estimator.
Definition at line 143 of file ndn-consumer.hpp.
Referenced by CheckRetxTimeout(), Consumer(), ns3::ndn::ConsumerBatches::ConsumerBatches(), OnData(), OnTimeout(), ns3::ndn::ConsumerBatches::ScheduleNextPacket(), ns3::ndn::ConsumerWindow::ScheduleNextPacket(), ns3::ndn::ConsumerZipfMandelbrot::SendPacket(), and WillSendOutInterest().
|
protected |
Time interval between packets.
Definition at line 145 of file ndn-consumer.hpp.
|
protected |
NDN Name of the Interest (use Name)
Definition at line 146 of file ndn-consumer.hpp.
Referenced by GetTypeId(), ns3::ndn::ConsumerZipfMandelbrot::SendPacket(), and SendPacket().
|
protected |
LifeTime for interest packet.
Definition at line 147 of file ndn-consumer.hpp.
Referenced by GetTypeId(), and SendPacket().