Bug 1756

Summary: RLC AM Mode State Variable Bug
Product: ns-3 Reporter: Koray <kokten.koray>
Component: lteAssignee: Nicola Baldo <nicola>
Status: RESOLVED FIXED    
Severity: blocker CC: manuel.requena, nicola, ns-bugs
Priority: P5    
Version: ns-3.17   
Hardware: PC   
OS: All   
Attachments: revised patch
Explanation

Description Koray 2013-09-04 21:59:41 UTC
In lte-rlc-am.cc source file, in order for the while loops (at lines 965 and 994, respectively) operate properly, the modulusbase data members of the m_vtA, m_vtS and ackSn should be set to m_vtA, just before the first while loop (line 965).
So those three lines need to be added.

m_vtA.SetModulusBase (m_vtA);
m_vtS.SetModulusBase (m_vtA);
ackSn.SetModulusBase (m_vtA);


Best,
   Koray
Comment 1 Nicola Baldo 2013-09-06 07:24:44 UTC
Hi Koray,

thanks for reporting this. Is the proposed fix related with the problem you described here?
https://groups.google.com/d/msg/ns-3-users/CEfmMX3IRBw/rBrpOaPey1cJ
Comment 2 Koray 2013-09-06 12:57:15 UTC
Nicola, 
Yes, this bug causes the error I described in my mailing list entry, and yet I was also going to let the guys in the mailing list know that the problem has been also reported here as a bug, but I just wanted to wait for the response from you. Now I can do that. Regarding with the bug, it is actually a very critical one, since it causes TCP traffic to stop between two end-points after a while the simulation starts, in the RLC AM Mode of course.
Thanks
  Koray


(In reply to comment #1)
> Hi Koray,
> 
> thanks for reporting this. Is the proposed fix related with the problem you
> described here?
> https://groups.google.com/d/msg/ns-3-users/CEfmMX3IRBw/rBrpOaPey1cJ
Comment 3 Nicola Baldo 2013-09-09 11:18:21 UTC
I have one doubt: if m_vtA is updated inside the first while loop, shouldn't SetModulusBase be called again for all the sequence numbers being used?

I am also CCing Manuel who is the original author of this code, hopefully he can shed some light on this.
Comment 4 Nicola Baldo 2013-09-09 11:40:41 UTC
Created attachment 1666 [details]
revised patch

Here is the patch revised as per my previous comment. 
Koray, can you please give it a try?
Comment 5 Koray 2013-09-12 03:16:59 UTC
Created attachment 1670 [details]
Explanation

Nicola, 
Sorry for the latency, I am quite busy these days, so I could hardly find some time to criticize your point.
Please see the attached file, that I tried to examine the bug and your patch. 
Best.
  Koray
Comment 6 Nicola Baldo 2013-09-13 10:21:53 UTC
Thanks Koray for the detailed explanation!

The reason for the slightly revised patch is that 3GPP TS 36.322 section 7.1 says that VT(A) shall be used as the modulo, but does not specify any special treatment for old vs. new VT(A) values. Hence I think the latest VT(A) value shall be used. In the code, m_vtA is modified inside the while loop, that's why I think the modulo shall be updated as well.
Comment 7 Nicola Baldo 2013-09-13 10:36:09 UTC
I just pushed the fix to lena-dev, if the extensive tests are ok I'll push this to ns-3-dev as well.

changeset:   10195:df66bccd5a41
tag:         tip
user:        Nicola Baldo <nbaldo@cttc.es>
date:        Fri Sep 13 15:30:00 2013 +0100
summary:     fixed bug 1756 - RLC AM Mode State Variable Bug
Comment 8 Nicola Baldo 2013-11-08 11:34:36 UTC
pushed to ns-3-dev