1
2
3
4
5
6
7 package quic
8
9 import (
10 "syscall"
11 )
12
13 const (
14 ip_recvtos = syscall.IP_RECVTOS
15 ipv6_recvpktinfo = syscall.IPV6_RECVPKTINFO
16 ipv6_pktinfo = syscall.IPV6_PKTINFO
17 )
18
19
20 const (
21 udpECNSupport = true
22 udpInvalidLocalAddrIsError = false
23 )
24
25
26
27
28 func parseIPTOS(b []byte) (ecnBits, bool) {
29 if len(b) != 1 {
30 return 0, false
31 }
32 return ecnBits(b[0] & ecnMask), true
33 }
34
35 func appendCmsgECNv4(b []byte, ecn ecnBits) []byte {
36 b, data := appendCmsg(b, syscall.IPPROTO_IP, syscall.IP_TOS, 1)
37 data[0] = byte(ecn)
38 return b
39 }
40
View as plain text