Bug 834 - Incorrect signature of Ipv4FlowProbe::DropLogger
Incorrect signature of Ipv4FlowProbe::DropLogger
Status: RESOLVED FIXED
Product: ns-3
Classification: Unclassified
Component: internet
ns-3-dev
All All
: P5 normal
Assigned To: ns-bugs
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2010-03-05 07:18 EST by Pavel Boyko
Modified: 2010-03-05 10:11 EST (History)
1 user (show)

See Also:


Attachments
solution (1.25 KB, patch)
2010-03-05 07:18 EST, Pavel Boyko
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Pavel Boyko 2010-03-05 07:18:21 EST
Created attachment 778 [details]
solution

ns3::FlowMonitorHelper::Install fails while trying to connect  Ipv4FlowProbe::DropLogger callback. I attach no example script since the error is clear and solution patch is attached.

Error:

Incompatible types. (feed to "c++filt -t" if needed)
got=ns3::MemPtrCallbackImpl<ns3::Ptr<ns3::Ipv4FlowProbe>, void (ns3::Ipv4FlowProbe::*)(ns3::Ipv4Header const&, ns3::Ptr<ns3::Packet const>, ns3::Ipv4L3Protocol::DropReason, unsigned int), void, ns3::Ipv4Header const&, ns3::Ptr<ns3::Packet const>, ns3::Ipv4L3Protocol::DropReason, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty>
expected=ns3::CallbackImpl<void, ns3::Ipv4Header const&, ns3::Ptr<ns3::Packet const>, ns3::Ipv4L3Protocol::DropReason, ns3::Ptr<ns3::Ipv4>, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty>*
Command ['/home/pavlo/wk/ns-3-dev/build/debug/examples/wireless/wifi-hidden-terminal'] exited with code -11

Backtrace:

#0  0x010c282d in ns3::Callback<void, ns3::Ipv4Header const&, ns3::Ptr<ns3::Packet const>, ns3::Ipv4L3Protocol::DropReason, ns3::Ptr<ns3::Ipv4>, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty>::DoAssign (this=0xbfd6856c, other=...) at debug/ns3/callback.h:468
468             NS_FATAL_ERROR ("Incompatible types. (feed to \"c++filt -t\" if needed)" << std::endl <<
(gdb) bt
#0  0x010c282d in ns3::Callback<void, ns3::Ipv4Header const&, ns3::Ptr<ns3::Packet const>, ns3::Ipv4L3Protocol::DropReason, ns3::Ptr<ns3::Ipv4>, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty>::DoAssign (this=0xbfd6856c, other=...) at debug/ns3/callback.h:468
#1  0x010c144d in ns3::Callback<void, ns3::Ipv4Header const&, ns3::Ptr<ns3::Packet const>, ns3::Ipv4L3Protocol::DropReason, ns3::Ptr<ns3::Ipv4>, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty>::Assign (this=0xbfd6856c, other=...) at debug/ns3/callback.h:445
#2  0x010c0851 in ns3::TracedCallback<ns3::Ipv4Header const&, ns3::Ptr<ns3::Packet const>, ns3::Ipv4L3Protocol::DropReason, ns3::Ptr<ns3::Ipv4>, unsigned int, ns3::empty, ns3::empty, ns3::empty>::ConnectWithoutContext (this=0x8ee8e24, callback=...) at debug/ns3/traced-callback.h:117
#3  0x010b858e in ConnectWithoutContext (this=0x8ed1d50, obj=0x8ee8dc8, cb=...) at debug/ns3/trace-source-accessor.h:98
#4  0x00dd9c07 in ns3::ObjectBase::TraceConnectWithoutContext (this=0x8ee8dc8, name=..., cb=...) at ../src/core/object-base.cc:304
#5  0x015d36e6 in Ipv4FlowProbe (this=0x8eec728, monitor=..., classifier=..., node=...) at ../src/contrib/flow-monitor/ipv4-flow-probe.cc:65
#6  0x014f7f10 in ns3::Create<ns3::Ipv4FlowProbe, ns3::Ptr<ns3::FlowMonitor>, ns3::Ptr<ns3::Ipv4FlowClassifier>, ns3::Ptr<ns3::Node> > (a1=..., a2=...,
    a3=...) at debug/ns3/ptr.h:251
#7  0x014f7640 in ns3::FlowMonitorHelper::Install (this=0xbfd68940, node=...) at ../src/helper/flow-monitor-helper.cc:76
#8  0x014f79b0 in ns3::FlowMonitorHelper::InstallAll (this=0xbfd68940) at ../src/helper/flow-monitor-helper.cc:103
Comment 1 Gustavo J. A. M. Carneiro 2010-03-05 09:28:41 EST
OK, it seems Craig's tracing rework accidentally broke it.  Please commit.