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

Implement Transport Wide Congestion Control #40

Merged
merged 1 commit into from
Jun 27, 2021
Merged

Implement Transport Wide Congestion Control #40

merged 1 commit into from
Jun 27, 2021

Conversation

mengelbart
Copy link
Contributor

@codecov
Copy link

codecov bot commented Jun 1, 2021

Codecov Report

Merging #40 (e90a05f) into master (e23b945) will increase coverage by 1.72%.
The diff coverage is 85.92%.

❗ Current head e90a05f differs from pull request most recent head 5a7a9c3. Consider uploading reports for the commit 5a7a9c3 to get more accurate results
Impacted file tree graph

@@            Coverage Diff             @@
##           master      #40      +/-   ##
==========================================
+ Coverage   79.16%   80.89%   +1.72%     
==========================================
  Files          21       24       +3     
  Lines         600      806     +206     
==========================================
+ Hits          475      652     +177     
- Misses         85      102      +17     
- Partials       40       52      +12     
Flag Coverage Δ
go 80.89% <85.92%> (+1.72%) ⬆️
wasm 79.03% <85.92%> (+2.36%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
pkg/twcc/header_extension.go 62.50% <62.50%> (ø)
pkg/twcc/sender_interceptor.go 79.71% <79.71%> (ø)
pkg/twcc/twcc.go 92.56% <92.56%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e23b945...5a7a9c3. Read the comment docs.

if id == 0 {
return nil, ErrInvalidExtensionHeaderID
}
return &HeaderExtensionInterceptor{extensionHeaderID: id}, nil
Copy link
Member

Choose a reason for hiding this comment

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

The id will need to be determined in the Bind

This happens when a PeerConnection is created. Since we haven't done signaling yet we will not have negotiated IDs yet.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Makes sense. I pushed another commit where I take the id from the StreamInfo in Bind.

@Sean-Der
Copy link
Member

Sean-Der commented Jun 1, 2021

Fantastic work @mengelbart! We should get this merged ASAP

I will do a quick review now and we can merged to master. We can use it without enabling it by default in webrtc

Copy link
Member

@Antonito Antonito left a comment

Choose a reason for hiding this comment

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

LGTM !

@Sean-Der
Copy link
Member

I am sorry I dropped the ball on this @mengelbart

Thank you so much @Antonito for being a great reviewer. I am in favor of turning this on by default and releasing a new minor version of Pion WebRTC (TWCC support is very exciting!)

@mengelbart
Copy link
Contributor Author

No worries, @Sean-Der and thank you for reviewing @Antonito!

Do I need to squash the commits or should I just merge it as they are now?

@Sean-Der
Copy link
Member

@mengelbart I would prefer you squash + merge, but it is totally your call! My goal is just to have commits in a format that are easily debuggable/readable for others in the future.

After you squash+merge you should tag and experiment with turning it on by default in pion/webrtc :)

Add one interceptor to add the header extension to outgoing packets and
one interceptor to generate transport wide congestion control reports as
described in https://datatracker.ietf.org/doc/html/draft-holmer-rmcat-
transport-wide-cc-extensions-01
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

Successfully merging this pull request may close these issues.

None yet

3 participants