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

[docs] Added SRTO_PACINGMODE option #1533

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

mbakholdina
Copy link
Collaborator

Added SRTO_PACINGMODE option plus relevant corrections to SRTO_MAXBW, SRTO_INPUTBW and SRTO_OHEADBW options. To be merged together with PR #1383. This is a replacement of documentation provided in mentioned PR.

TODO:

  • Discuss which error should be thrown in case of incorrect configuring of SRTO_PACINGMODE and a combination of SRTO_MAXBW, SRTO_INPUTBW and SRTO_OHEADBW options -> add this information into documentation.
  • Create a ticket for including relevant RFC draft link once published.

@mbakholdina mbakholdina added [docs] Area: Improvements or additions to documentation Type: Enhancement Indicates new feature requests labels Sep 8, 2020
@mbakholdina mbakholdina added this to the v1.5.0 - Sprint 23 milestone Sep 8, 2020
Copy link
Collaborator

@maxsharabayko maxsharabayko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is related to #1383

Comment on lines 915 to 921
| Mode / Option | SRTO_MAXBW | SRTO_INPUTBW | SRT_OHEADBW | Formula for `MAXBW` Calculation |
| ------------------------ | ---------- | ------------ | ----------- | ------------------------------------------------------------ |
| `SRT_PACING_DEFMAXBW` | -1 | - | - | `MAXBW` is set to the default value of 1Gbps |
| `SRT_PACING_MAXBW` | ✓ | - | - | `MAXBW` is set explicitly, in bytes per second |
| `SRT_PACING_INPUTBW` | 0 | ✓ | ✓ | `MAXBW = INPUTBW * (1 + OHEADBW /100)` |
| `SRT_PACING_ESTINPUTBW` | 0 | 0 | ✓ | `MAXBW = ESTINPUTBW * (1 + OHEADBW /100)` |
| `SRT_PACING_HYBRIDBW` | 0 | ✓ | ✓ | `MAX_BW = max(INPUTBW, ESTINPUT_BW) * (1 + OHEADBW /100)` |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For convenience the other possible mode value SRT_PACING_UNSET should also be listed in the table.


See section (TODO: insert link to the new RFC draft once published) for the detailed description of pacing control modes.

It's important to note that options [SRTO_MAXBW](#SRTO_MAXBW), [SRTO_INPUTBW](#SRTO_INPUTBW) and [SRT_OHEADBW](#SRT_OHEADBW) should be set first, right before setting the `SRTO_PACINGMODE` option. The order is important. In case the combination of `SRTO_MAXBW`, `SRTO_INPUTBW` and `SRTO_OHEADBW` options is configured wrong for a particular pacing control mode, SRT will throw an error (TODO: discuss what kind of error and put this information here).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
It's important to note that options [SRTO_MAXBW](#SRTO_MAXBW), [SRTO_INPUTBW](#SRTO_INPUTBW) and [SRT_OHEADBW](#SRT_OHEADBW) should be set first, right before setting the `SRTO_PACINGMODE` option. The order is important. In case the combination of `SRTO_MAXBW`, `SRTO_INPUTBW` and `SRTO_OHEADBW` options is configured wrong for a particular pacing control mode, SRT will throw an error (TODO: discuss what kind of error and put this information here).
It's important to note that options [SRTO_MAXBW](#SRTO_MAXBW), [SRTO_INPUTBW](#SRTO_INPUTBW) and [SRTO_OHEADBW](#SRTO_OHEADBW) should be set first, right before setting the `SRTO_PACINGMODE` option. The order is important. In case the combination of `SRTO_MAXBW`, `SRTO_INPUTBW` and `SRTO_OHEADBW` options is configured wrong for a particular pacing control mode, SRT will throw an error (TODO: discuss what kind of error and put this information here).

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't agree with this. The PACING_MODE vs. MAXBW, INPUTBW, OHEADBW table was to compare manual setting vs. PACING setting. I thought the PR was taking care of settings in any order. PACING_MODE setting shall simplify, not complexify configuration. For example, setting SRT_PACING_ESTINPUTBW would force set MAXBW and INPUTBW to 0. only OHEADBW is required, before or after PACING_MODE. I think the approach of the PR is that the last setting is applied. For example setting a non-0 value in INPUTBW after setting SRT_PACING_ESTINPUTBW would switch the mode to SRT_PACING_INPUTBW. It could have been SRT_PACING_HYBRIDBW (even more logic). Particular care was taken to preserve backward compatibility and a neutral behavior for application not setting PACING_MODE. If error are thrown it should not be for applications working properly with previous releases.

@mbakholdina mbakholdina modified the milestones: v1.5.0 - Sprint 23, v1.5.0 - Sprint 24, v1.5.0 - Sprint 25 Sep 21, 2020
@mbakholdina mbakholdina modified the milestones: v1.5.0 - Sprint 25, v1.5.0 Oct 14, 2020
@mbakholdina mbakholdina modified the milestones: v1.5.0, v1.4.4 Mar 17, 2021
@maxsharabayko maxsharabayko modified the milestones: v1.4.4, Backlog Aug 2, 2021
@mbakholdina mbakholdina modified the milestones: Backlog, v1.5.2 Mar 29, 2023
@maxsharabayko maxsharabayko removed this from the v1.5.2 milestone May 3, 2023
@maxsharabayko maxsharabayko added this to the Backlog milestone May 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[docs] Area: Improvements or additions to documentation Priority: Medium Type: Enhancement Indicates new feature requests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants