TCP Prague in ns-3: Pacing Rate hits 0 bps

42 views
Skip to first unread message

Maria Eduarda Veras Martins

unread,
Jun 25, 2025, 1:22:10 PMJun 25
to 5G-LENA-users
Hey everyone,

I'm trying to use TCP Prague in ns-3 with code from a Google project (link), but my simulation crashes when the pacing rate becomes 0 bps. I've noticed the function updating the pacing rate seems to be SocketBase::UpdatePacingRate().

Screenshot from 2025-06-25 14-21-14.png

Should TCP Prague have its own dedicated function for this, or am I missing something in how it interacts with the base socket's pacing?

Any ideas on how to fix this, or can anyone point me to a working TCP Prague ns-3 repository or offer implementation tips?

Thanks!

Gabriel Ferreira

unread,
Jun 30, 2025, 9:42:43 AMJun 30
to 5G-LENA-users
I think this is better suited for upstream ns-3-users. In any case, floating point exception (SIGFPE).
You just need to debug and check whether it was division/multiplication by NaN, division by zero, or the other possible cases for that, and trace it back.
It is usually someone forgetting to put a +1 to denominators. =x
Also, find it very suspicious ssthresh value. It is unsigned 32bit limit.

Maria Eduarda Veras Martins

unread,
Jun 30, 2025, 4:13:23 PMJun 30
to 5G-LENA-users
Hi Gabriel,

I found the problem! The TCP state is CA_CWR, and in the Prague implementation, HasCongControl isn't set to true. It seems CongControl wasn't used at all, only PktsAcked. Because of this, the window is set to 0 in that part of the code, leading to a division by zero error.

Screenshot from 2025-06-30 17-09-13.png
Screenshot from 2025-06-30 17-10-58.png

I'm a bit confused about the PktsAcked and CongControl functions, especially regarding when to use each of them. Could you help me understand them better? I'll be doing some more research on my end as well.

Thank you

Tom Henderson

unread,
Jul 1, 2025, 1:15:55 AMJul 1
to Maria Eduarda Veras Martins, 5G-LENA-users

Maria, that implementation is out of date and was not complete.  There is an updated implementation around but it is not on a public branch; I'll see if I can obtain an updated version.

- Tom

--
You received this message because you are subscribed to the Google Groups "5G-LENA-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to 5g-lena-user...@googlegroups.com.
To view this discussion, visit https://groups.google.com/d/msgid/5g-lena-users/4216cceb-0d23-45bf-9939-b82d605f5855n%40googlegroups.com.

Maria Eduarda Veras Martins

unread,
Jul 1, 2025, 12:08:36 PMJul 1
to 5G-LENA-users
Hi Tom, that would help a lot!!

Thank you very much.
Reply all
Reply to author
Forward
0 new messages