--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/3c96ecc4-e507-48d1-a912-9e3caf6ecd11o%40googlegroups.com.
Reading is possible with IP_RECVTOS on Linux but requires the use of recvmsg, because the TOS field is provided as ancillary data. This wouldn't be very portable though. Raw sockets with IP_HDRINCL are a better option if portability is a concern.
--On Wednesday, August 5, 2020 at 11:33:41 PM UTC+2 ma...@acln.ro wrote:ECN bits are represented in the TOS field. I think you can use setsockopt with the IP_TOS option to set the TOS field on a socket. See ip(7). On the Go side, use the SyscallConn method on your UDPConn, then call setsockopt using the Control method. Something like this (untested): https://play.golang.org/p/6_R-zlBSibvOn Wed, Aug 5, 2020 at 9:30 PM <marten...@gmail.com> wrote:I'm working on a Go implementation of the QUIC protocol (https://github.com/lucas-clemente/quic-go). QUIC specifies how to use ECN (Explicit Congestion Notification) to detect and respond to congestion in the network (see https://tools.ietf.org/html/draft-ietf-quic-transport-29#section-13.4 for details on that).As far as I can see, there's no way to read (and write) the ECN bits from the IP header, unless I use a raw socket, which would be a suboptimal solution for many reasons.The closest I could get to extracting information from the IP header was by using UDPConn.ReadFromUDP and then using golang.org/x/net/ipv4 to parse the oob bytes into an ipv4.ControlMessage (or equivalently for IPv6). This at least gives me access to the TTL field. It seems like this approach is insufficient to get access to the ECN bits though.Can anyone help me with this?--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/3c96ecc4-e507-48d1-a912-9e3caf6ecd11o%40googlegroups.com.
--Andrei Călin
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/fe7cd943-cbb2-4530-a71a-d0b72100fb67n%40googlegroups.com.