Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No retransmission request on packet loss #83

Open
a-andre opened this issue Jun 7, 2024 · 2 comments
Open

No retransmission request on packet loss #83

a-andre opened this issue Jun 7, 2024 · 2 comments

Comments

@a-andre
Copy link

a-andre commented Jun 7, 2024

To reproduce the issue either configure only one channel in the rasta cfg files or configure virtual network interfaces and disable one channel by setting the packet loss to 100% for both directions. And set the packet loss for one direction of the remaining channel to for example 10%. (See script below).

On packet loss, instead of a retransmission request, there is a disconnection after Tmax.

The problem seems to be that red_f_deferTmo() is never called. It should be
called, when "There is a message waiting in the deferQueue, which has
been already stored there for longer than Tseq."

Example script to setup network configuration

ip netns add ns1

ip link add vth1 netns ns1 type veth peer vth1
ip link add vth2 netns ns1 type veth peer vth2

ip netns exec ns1 ip addr add 1.1.1.1/24 dev vth1
ip addr add 1.1.1.2/24 dev vth1

ip netns exec ns1 ip addr add 1.1.2.1/24 dev vth2
ip addr add 1.1.2.2/24 dev vth2

ip netns exec ns1 ip link set dev vth1 up
ip link set dev vth1 up

ip netns exec ns1 ip link set dev vth2 up
ip link set dev vth2 up

# disable channel 2
ip netns exec ns1 tc qdisc add dev vth2 root netem loss 100%
tc qdisc add dev vth2 root netem loss 100%

# add some loss to channel 1 of server
ip netns exec ns1 tc qdisc add dev vth1 root netem loss 10%
@laugengebaeck
Copy link
Collaborator

Yeah, that is weird. If you like, feel free to contribute a fix. Otherwise, I cannot guarantee when someone of us will have time to take a look at this, because librasta is unfortunately not our priority.

@laugengebaeck
Copy link
Collaborator

As far as I can see, 359db19 seems to be the culprit. Maybe it helps to restore channel_timeout_event() to the version before that?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants