Project

General

Profile

Bug #2559

Updated by Alex Afanasyev about 9 years ago

While testing MTU and payload size features of ndnSIM and a dummy producer, I came across undesired behaviour. 
 I varied the payload size and in certain situations I just did not receive any reply from the producer.  
 I managed to check the following things: 

 - Payload < MTU - check 
 - OnInterest called in Producer - check 
 - Interest returns data packet in Producer - check 
 - data packet is put to content store on producer (if there is a content store) - check 

 However, the data packet NEVER arrives at the consumer (it is being lost on an intermediate node or on the path for some reason).  
 This bug is hardly noticeable, as it happens in less than 1% of all possible cases - which makes it very hard to debug. 

 I've changed several parameters of the simulation (see attached file), the only thing I could come up with that actually causes this behaviour is: 

 1. (obviously) the payload size 
 2. the length of the prefix/interest to request (if you just add one or remove one character, it works) 
 3. the amount of / (slashes) in the interest name 

 The attached simulation should show the behaviour when you run it with --vis. 
 If you don't want to use the visualizer, use `NS_LOG` NS_LOG to double check the behaviour (in debug mode of ndnSIM): 
 `NS_LOG=ndn.Producer:ndn.Consumer NS_LOG=ndn.Producer:ndn.Consumer ./waf --run ndn-memory-test --vis` --vis 

 Here is some example output from logging: 

     0s 0 ndn.Consumer:StartApplication() 
     0s 2 ndn.Producer:StartApplication() 
     0s 0 ndn.Consumer:SendPacket() 
     0s 0 ndn.Consumer:SendPacket(): [INFO ] > Interest for 0 
     0s 0 ndn.Consumer:WillSendOutInterest(): [DEBUG] Trying to add 0 with +0.0ns. already 0 items 
     0.021488s 2 ndn.Producer:OnInterest(0x10089b0, 0x7f64f000f908) 
     0.021488s 2 ndn.Producer:OnInterest(): [INFO ] node(2) respodning with Data: /prefix/abcdefghijklmnopqrstuvwxyz/123456789/need/more/somefile.txt/%FE%00 


 This is it, the request never reaches the consumer.

Back