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

Consider the Flow Info to indicate direct peering #13

Open
vanrein opened this issue Jun 4, 2020 · 1 comment
Open

Consider the Flow Info to indicate direct peering #13

vanrein opened this issue Jun 4, 2020 · 1 comment

Comments

@vanrein
Copy link
Owner

vanrein commented Jun 4, 2020

According to Section 6 of RFC 2460 and more specifically Appendix A, the experimental facilitation of a Flow Label is meant to keep flows on the same path. For 6bed4, such a choice is possible.

When set to 0, the Flow Label is considered absent and no flow consistency is expected. To manage the flow as a consistent stream, the Flow Label is to be pseudo-random but non-zero. This may be used by a 6bed4peer to choose direct delivery for the data involved. Standards are not up to par with this, so it would be a "software extension" on top of the official specification.

The socket API shares the Flow Label in the sin6_flowinfo field of struct sockaddr_in6 so it can be set when binding or connecting a socket, and when inspecting the local or remote socket address.

Since the transmitted field is 20 bits, and programmers be what they are, there may be no stopping to "initial" code setup with the hexadecimale value 6bed4 in this field :-)

@vanrein
Copy link
Owner Author

vanrein commented Jun 4, 2020

The purpose of the Flow Label is actually to keep media streams together (in order, and with constant delay times, both in a best-effort form) and that is precisely what 6bed4 is supposed to be good at. It was designed to provide smooth media flows directly between peers.

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

1 participant