问题是QOS On IPV6 socket连接到IPV4服务器
我无法在包
上设置传输选项self.socket = socket(PF_INET6, SOCK_DGRAM, 0); // Create UDP Socket
int on = 1;
setsockopt(self.socket, SOL_SOCKET, SO_NOSIGPIPE, (void *)&on, sizeof(int));
int off = 0;
setsockopt(self.socket, IPPROTO_IPV6, IPV6_V6ONLY, (void *)(&off), sizeof(off)); // Disable IPV6 Only
int option = 46;
// set QOS option
setsockopt(self.socket, IPPROTO_IP, IP_TOS, (void *)(&option),sizeof(option)); // IPV4
setsockopt(self.socket, IPPROTO_IPV6, IPV6_TCLASS, (void *)(&option),sizeof(option)); //IPV6
但是当我看到IPV4 DSCP的包是0时
答案 0 :(得分:2)
您的内核似乎没有实现IPv6 TCLASS到IPv4 DSCP的映射。
V6ONLY = 0选项主要是允许服务器在单个套接字上接受IPv4和IPv6连接的黑客攻击。我毫不奇怪只有最低限度的选项才能实现。
您最好的选择可能是联系内核开发人员,看他们是否想要实现映射......