named-data-ndnSIM / ndnSIM

ndnSIM: NS-3 based NDN simulator
GNU General Public License v3.0
108 stars 165 forks source link

Content Store not working (ndnSIM 2.8) #101

Open fam4r opened 3 years ago

fam4r commented 3 years ago

Hi,

it seems that Content Store is not caching Data Packets in ndnSIM 2.8.

I ran two simulation based on the same scenario (ndn-tree-cs-tracers.cpp) in ndnSIM 2.7 (from ndnsim.net) and ndnSIM 2.8 (from ndnsim.net). As stated on the website, ndnSIM 2.7 uses the old content store structure, which it works (see later for logs and tracer file).

The topology used is topo-tree.txt (source). Scenarios were placed in two different folder templates based on the provided scenario template.

I used in both versions the debug mode to be able to inspect logs along together the ndn::CsTracer output file.

ndnSIM 2.7 results:

ndnSIM 2.8 results:

I assume that Content Store is not properly working in ndnSIM 2.8. I don't know how to deeply investigate for the problem.

Installation info:

Thanks

hyperonex commented 3 years ago

I do confirm the same problem with version 2.8!

BITXUJI commented 3 years ago

Anyone has solved this problem?

jrszoio commented 3 years ago

I do confirm this same problem on ndnSIM 2.8.

RebornSEC commented 3 years ago

I do confirm this same problem on ndnSIM 2.8, is there any body who found a solution to this problem ? Thank you all in advance

wuodland commented 3 years ago

I do confirm this same problem on ndnSIM 2.8, is there any body who found a solution to this problem ? Thank you all in advance

sadly not. I switched back to the branch ndnSIM-v2.5 to get it working again.

salubinseid commented 2 years ago

Anyone has solved this problem? or how to switch back to ndnSIM-v2.7 or older? Thanks

fam4r commented 2 years ago

or how to switch back to ndnSIM-v2.7 or older? Thanks

@salubinseid you can try to use my unofficial Docker image of ndnSIM without caring of the installation process for any recent version.

https://github.com/fam4r/docker-ndnsim

hyperonex commented 2 years ago

Hi,As far as I remember I solved the problem by removing a comment left in one line in the cs tracer source code!Regards.

Sent from Yahoo Mail for iPhone

On Wednesday, November 3, 2021, 22:01, fam4r @.***> wrote:

Anyone has solved this problem? or how to switch back to ndnSIM-v2.7 or older? Thanks

@salubinseid you can try to use my unofficial Docker image of ndnSIM without caring of the installation process of any version.

https://github.com/fam4r/docker-ndnsim

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

wuodland commented 2 years ago

Hi,As far as I remember I solved the problem by removing a comment left in one line in the cs tracer source code!

Can you tell us which line is it? The CS tracer file hasn't been updated since 2015(and older versions where it works fine use the same one)

Anyone has solved this problem? or how to switch back to ndnSIM-v2.7 or older? Thanks

While cloning the repo add the 2.5 branch for example this way: git clone -b ndnSIM-v2.5 https://github.com/named-data-ndnSIM/ns-3-dev.git ns-3 and git clone -b 0.18.0 https://github.com/named-data-ndnSIM/pybindgen.git pybindgen git clone -b ndnSIM-2.5 --recursive https://github.com/named-data-ndnSIM/ndnSIM ns-3/src/ndnSIM

Run waf configure and waf in the ns-3 folder after that

migrax commented 2 years ago

Can you try if PR #111 fixes your problem?

Celcnu commented 2 years ago

This solved my problem on v2.8, thanks a lot !

Can you try if PR #111 fixes your problem?

Celcnu commented 2 years ago

Can you try if PR #111 fixes your problem?

Oh! There some mistakes, the "CacheMisses" value is wrong. Because "management interests" are processed in the same way as regular interests. So the "CacheMisses" value is higher than its exact value. Methods are needed to distinguish "management interests" and "regular interests (to fetch named data)".

Ref: NFD Developer’s Guide (Latest Revision 11), section 1.3

mmaizan commented 1 year ago

Can you try if PR #111 fixes your problem?

I am sorry still got error with this solution when compiling message like below:

In file included from ../src/ndnSIM/utils/tracers/ndn-cs-tracer.cpp:20: ../src/ndnSIM/utils/tracers/ndn-cs-tracer.hpp:157:41: error: ISO C++ forbids declaration of ‘CacheHits’ with no type [-fpermissive] 157 | CacheHits(const Interest&, const Data&); | ^ ../src/ndnSIM/utils/tracers/ndn-cs-tracer.hpp:161:30: error: ISO C++ forbids declaration of ‘CacheMisses’ with no type [-fpermissive] 161 | CacheMisses(const Interest&); | ^ ../src/ndnSIM/utils/tracers/ndn-cs-tracer.cpp:225:1: error: expected initializer before ‘CsTracer’ 225 | CsTracer::CacheHits(const Interest&, const Data&) | ^~~~ ../src/ndnSIM/utils/tracers/ndn-cs-tracer.cpp:232:1: error: expected initializer before ‘CsTracer’ 232 | CsTracer::CacheMisses(const Interest&) | ^~~~

In file included from ./ns3/ndn-all.hpp:35, from ./ns3/ndnSIM-module.h:10, from ../src/ndnSIM/examples/ndn-custom-apps.cpp:24: ./ns3/ndnSIM/utils/tracers/ndn-cs-tracer.hpp:157:41: error: ISO C++ forbids declaration of ‘CacheHits’ with no type [-fpermissive] 157 | CacheHits(const Interest&, const Data&); | ^ ./ns3/ndnSIM/utils/tracers/ndn-cs-tracer.hpp:161:30: error: ISO C++ forbids declaration of ‘CacheMisses’ with no type [-fpermissive] 161 | CacheMisses(const Interest&); | ^

In file included from ./ns3/ndn-all.hpp:35, from ./ns3/ndnSIM-module.h:10, from ../src/ndnSIM/examples/ndn-csma.cpp:25: ./ns3/ndnSIM/utils/tracers/ndn-cs-tracer.hpp:157:41: error: ISO C++ forbids declaration of ‘CacheHits’ with no type [-fpermissive] 157 | CacheHits(const Interest&, const Data&); | ^ ./ns3/ndnSIM/utils/tracers/ndn-cs-tracer.hpp:161:30: error: ISO C++ forbids declaration of ‘CacheMisses’ with no type [-fpermissive] 161 | CacheMisses(const Interest&); | ^

In file included from ./ns3/ndn-all.hpp:35, from ./ns3/ndnSIM-module.h:10, from ../src/ndnSIM/examples/ndn-congestion-alt-topo-plugin.cpp:24: ./ns3/ndnSIM/utils/tracers/ndn-cs-tracer.hpp:157:41: error: ISO C++ forbids declaration of ‘CacheHits’ with no type [-fpermissive] 157 | CacheHits(const Interest&, const Data&); | ^ ./ns3/ndnSIM/utils/tracers/ndn-cs-tracer.hpp:161:30: error: ISO C++ forbids declaration of ‘CacheMisses’ with no type [-fpermissive] 161 | CacheMisses(const Interest&); | ^

In file included from ./ns3/ndn-all.hpp:35, from ./ns3/ndnSIM-module.h:10, from ../src/ndnSIM/examples/ndn-congestion-topo-plugin.cpp:24: ./ns3/ndnSIM/utils/tracers/ndn-cs-tracer.hpp:157:41: error: ISO C++ forbids declaration of ‘CacheHits’ with no type [-fpermissive] 157 | CacheHits(const Interest&, const Data&); | ^ ./ns3/ndnSIM/utils/tracers/ndn-cs-tracer.hpp:161:30: error: ISO C++ forbids declaration of ‘CacheMisses’ with no type [-fpermissive] 161 | CacheMisses(const Interest&); | ^

In file included from ./ns3/ndn-all.hpp:35, from ./ns3/ndnSIM-module.h:10, from ../src/ndnSIM/examples/ndn-cxx-simple.cpp:25: ./ns3/ndnSIM/utils/tracers/ndn-cs-tracer.hpp:157:41: error: ISO C++ forbids declaration of ‘CacheHits’ with no type [-fpermissive] 157 | CacheHits(const Interest&, const Data&); | ^ ./ns3/ndnSIM/utils/tracers/ndn-cs-tracer.hpp:161:30: error: ISO C++ forbids declaration of ‘CacheMisses’ with no type [-fpermissive] 161 | CacheMisses(const Interest&); | ^

In file included from ./ns3/ndn-all.hpp:35, from ./ns3/ndnSIM-module.h:10, from ../src/ndnSIM/examples/ndn-different-strategy-per-prefix.cpp:26: ./ns3/ndnSIM/utils/tracers/ndn-cs-tracer.hpp:157:41: error: ISO C++ forbids declaration of ‘CacheHits’ with no type [-fpermissive] 157 | CacheHits(const Interest&, const Data&); | ^ ./ns3/ndnSIM/utils/tracers/ndn-cs-tracer.hpp:161:30: error: ISO C++ forbids declaration of ‘CacheMisses’ with no type [-fpermissive] 161 | CacheMisses(const Interest&); | ^

In file included from ./ns3/ndn-all.hpp:35, from ./ns3/ndnSIM-module.h:10, from ../src/ndnSIM/examples/ndn-grid-multiple-strategies.cpp:26: ./ns3/ndnSIM/utils/tracers/ndn-cs-tracer.hpp:157:41: error: ISO C++ forbids declaration of ‘CacheHits’ with no type [-fpermissive] 157 | CacheHits(const Interest&, const Data&); | ^ ./ns3/ndnSIM/utils/tracers/ndn-cs-tracer.hpp:161:30: error: ISO C++ forbids declaration of ‘CacheMisses’ with no type [-fpermissive] 161 | CacheMisses(const Interest&);

bvn-jk commented 10 months ago

Can you try if PR #111 fixes your problem?

Oh! There some mistakes, the "CacheMisses" value is wrong. Because "management interests" are processed in the same way as regular interests. So the "CacheMisses" value is higher than its exact value. Methods are needed to distinguish "management interests" and "regular interests (to fetch named data)".

Ref: NFD Developer’s Guide (Latest Revision 11), section 1.3

Do anyone know how to fix this or is it not solvable easily?