internet: TcpErrorModel drop callback extended

This commit is contained in:
Natale Patriciello
2016-02-23 09:56:54 +01:00
parent de92108217
commit 35933bcc9a
6 changed files with 9 additions and 8 deletions

View File

@@ -60,7 +60,7 @@ TcpGeneralErrorModel::DoCorrupt (Ptr<Packet> p)
if (toDrop)
{
m_dropCallback (ipHeader, tcpHeader);
m_dropCallback (ipHeader, tcpHeader, p);
}
p->AddHeader (tcpHeader);
@@ -94,7 +94,7 @@ TcpSeqErrorModel::ShouldDrop (const Ipv4Header &ipHeader, const TcpHeader &tcpHe
SequenceNumber32 toKill = m_seqToKill.front();
NS_LOG_INFO ("Analyzing seq=" << tcpHeader.GetSequenceNumber () <<
" killing=" << toKill);
if (tcpHeader.GetSequenceNumber() >= toKill)
if (tcpHeader.GetSequenceNumber() == toKill)
{
NS_LOG_INFO ("segment " << toKill << " dropped");
toDrop = true;

View File

@@ -38,7 +38,7 @@ public:
static TypeId GetTypeId (void);
TcpGeneralErrorModel ();
void SetDropCallback (Callback<void, const Ipv4Header&, const TcpHeader&> cb)
void SetDropCallback (Callback<void, const Ipv4Header&, const TcpHeader&, Ptr<const Packet> > cb)
{
m_dropCallback = cb;
}
@@ -50,7 +50,7 @@ protected:
private:
virtual bool DoCorrupt (Ptr<Packet> p);
Callback<void, const Ipv4Header&, const TcpHeader&> m_dropCallback;
Callback<void, const Ipv4Header&, const TcpHeader&, Ptr<const Packet> > m_dropCallback;
};
/**

View File

@@ -320,7 +320,7 @@ TcpFastRetrTest::CongStateTrace (const TcpSocketState::TcpCongState_t oldValue,
void
TcpFastRetrTest::PktDropped (const Ipv4Header &ipH, const TcpHeader& tcpH)
TcpFastRetrTest::PktDropped (const Ipv4Header &ipH, const TcpHeader& tcpH, Ptr<const Packet> p)
{
NS_LOG_FUNCTION (this << ipH << tcpH);

View File

@@ -57,7 +57,7 @@ protected:
virtual void RTOExpired (const Ptr<const TcpSocketState> tcb, SocketWho who);
void PktDropped (const Ipv4Header &ipH, const TcpHeader& tcpH);
void PktDropped (const Ipv4Header &ipH, const TcpHeader& tcpH, Ptr<const Packet> p);
void FinalChecks ();
bool m_pktDropped;

View File

@@ -243,7 +243,8 @@ TcpTimeRtoTest::RTOExpired (const Ptr<const TcpSocketState> tcb, SocketWho who)
}
void
TcpTimeRtoTest::PktDropped (const Ipv4Header &ipH, const TcpHeader& tcpH)
TcpTimeRtoTest::PktDropped (const Ipv4Header &ipH, const TcpHeader& tcpH,
Ptr<const Packet> p)
{
NS_LOG_INFO (Simulator::Now ().GetSeconds () << "\tDROPPED! " << tcpH);
}

View File

@@ -71,7 +71,7 @@ protected:
virtual void Tx (const Ptr<const Packet> p, const TcpHeader&h, SocketWho who);
virtual void FinalChecks ();
void PktDropped (const Ipv4Header &ipH, const TcpHeader& tcpH);
void PktDropped (const Ipv4Header &ipH, const TcpHeader& tcpH, Ptr<const Packet> p);
private:
uint32_t m_senderSentSegments;