-
Hi, In the SRT API docs, it is mentioned that Specifically, the now obsolete function I noticed the following note in the doc for Is there anything else to take care of about IPv6? NB: I am reviewing the TSDuck code base to make sure that it is compatible with IPv6. This question is part of that effort. Thanks |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
The reason why - in distinction to the BSD socket API - you don't specify the IP version when creating the SRT socket is that the internal UDP socket - which's creation does require specifying AF_INET or AF_INET6 - is created at the moment when the SRT socket is bound. Which of the IP version is used, it depends on the binding address. In case when you connect the socket without binding, the default binding uses the default address, but of the same family as the connection endpoint address. That's not only to make things easier, we had to do this because of the required API consistency with groups. In case of groups you don't specify the IP version because you can have IPv4 and IPv6 connections in the same group. This IPV6ONLY option is necessary to be set explicitly because it decides about the range of binding address (I don't know why they did it trhis way - it could be easier if this was a field in There is one thing that still isn't done correctly in SRT, but it touches upon only the file mode, or more precisely, all cases when you want to use the maximum possible capacity in the packets. The actual maximum payload size in a single packet is 1456, but this is true only for IPv4 - for IPv6 you have a limit of 1444 bytes, but SRT doesn't exactly enforce it. There's a PR to fix it, but it's still in the schedule. That's the only problem I know is still not resolved. Many problems were reported before by our development teams some time ago, and they should be all fixed now. |
Beta Was this translation helpful? Give feedback.
The reason why - in distinction to the BSD socket API - you don't specify the IP version when creating the SRT socket is that the internal UDP socket - which's creation does require specifying AF_INET or AF_INET6 - is created at the moment when the SRT socket is bound. Which of the IP version is used, it depends on the binding address. In case when you connect the socket without binding, the default binding uses the default address, but of the same family as the connection endpoint address. That's not only to make things easier, we had to do this because of the required API consistency with groups. In case of groups you don't specify the IP version because you can have IPv4 and IPv6 conne…