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

[BUG] group backup link bstats.mbpsMaxBW is 1250 #2200

Closed
jeandube opened this issue Dec 3, 2021 · 3 comments · Fixed by #2260
Closed

[BUG] group backup link bstats.mbpsMaxBW is 1250 #2200

jeandube opened this issue Dec 3, 2021 · 3 comments · Fixed by #2260
Labels
[core] Area: Changes in SRT library core Type: Bug Indicates an unexpected problem or unintended behavior
Milestone

Comments

@jeandube
Copy link
Collaborator

jeandube commented Dec 3, 2021

Our reference: NKE-1458
Sender/Listener
SRTO_GROUPCONNECT=1
SRTO_MAXBW=0 //auto
SRTO_INPUTBW=0 //auto
SRTO_MININPUTBW=1884kbps //streamer output (1.5Mbps video+audio+MPEG overhead)
SRTO_OHEADBW=25

Active link report bstats.mbpsMaxBW=2 355 kbps (~1 8841.25)
Backup link reports bstats.mbpsMaxBW=1 250 000 kbps (1Gbps
1.25)
Like if SRTO_MAXBW was set to -1 (infinite).

most likely caused by no traffic measured on the backup link since if active-backup links swap 2355 will be reported on both links. Even if technically the traffic is measured at the link level, it is submitted at the group level and this is what should define the snd BW ceiling.

@jeandube jeandube added the Type: Bug Indicates an unexpected problem or unintended behavior label Dec 3, 2021
@jeandube
Copy link
Collaborator Author

jeandube commented Dec 3, 2021

  SRT v1.4.4:
  Path 1:
    State               : CONNECTED
    Peer Version        : 1.4.4
    Peer Endpoint       : 10.65.10.230:38442
    Local Endpoint      : 10.65.10.234:9172
    Reconnections       : 1
    AES Encryption      : Off
    Resent Packets      : 0
    Resent Bytes        : 0
    Dropped Packets     : 0
    Dropped Bytes       : 0
    Received ACKs       : 0
    Received NAKs       : 0
    Max Bandwidth       : 1,250,000 kbps
    Path Max Bandwidth  : 11,968 kbps
    RTT                 : 100 ms
    Local Buffer Level  : 0 ms
    Latency             : 250 ms
  Path 2:
    State               : STREAMING
    Peer Version        : 1.4.4
    Peer Endpoint       : 192.168.10.230:53005
    Local Endpoint      : 192.168.10.234:9172
    Reconnections       : 1
    AES Encryption      : Off
    Resent Packets      : 0
    Resent Bytes        : 0
    Dropped Packets     : 0
    Dropped Bytes       : 0
    Received ACKs       : 3,808
    Received NAKs       : 0
    Max Bandwidth       : 2,355 kbps
    Path Max Bandwidth  : 83,859 kbps
    RTT                 : < 1 ms
    Local Buffer Level  : 14 ms
    Latency             : 250 ms

@maxsharabayko maxsharabayko added this to the v1.4.5 milestone Dec 3, 2021
@maxsharabayko maxsharabayko added the [core] Area: Changes in SRT library core label Dec 3, 2021
@jeandube
Copy link
Collaborator Author

jeandube commented Dec 3, 2021

Note that bstats.mbpsBandwidth (Path Max Bandwidth) is returned for both paths.

@maxsharabayko
Copy link
Collaborator

Steps to reproduce

Using the srt-xtransmit built with -DENABLE_EXPERIMENTAL_BONDING.

(receive on two ports)
srt-xtransmit receive srt://:4200 srt://:4201

(generate, main/backup mode)
srt-xtransmit generate --sendrate 1Mbps "srt://127.0.0.1:4200?maxbw=0&grouptype=backup" srt://127.0.0.1:4201 \
    --statsfile group-snd.csv --statsfreq 1s -v --duration 5s

The resulting group-snd.csv would have the mbpsMaxBW of one socket set to 1250.

Analysis (What to Do?)

most likely caused by no traffic measured on the backup link since if active-backup links swap 2355 will be reported on both links.

That's exactly the reason.

Even if technically the traffic is measured at the link level, it is submitted at the group level and this is what should define the snd BW ceiling.

Might be true for the main/backup mode. But not for the broadcast mode.
Each socket within a group is considered as an independent connection, and therefore it might make sense to independently estimate source (input) bitrate and adjust the MaxBW accordingly.
On the other hand, it might be reasonable to update the input bitrate estimation of all idle backup links in order to have a reasonable limit during the switch.
Also related to #2122.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[core] Area: Changes in SRT library core Type: Bug Indicates an unexpected problem or unintended behavior
Projects
None yet
2 participants