Linux C IPv6原始套接字-告诉套接字不要分配流标签

Linux C IPv6原始套接字-告诉套接字不要分配流标签,c,linux,sockets,ipv6,C,Linux,Sockets,Ipv6,我试图使用IPv6原始套接字发送一些内容。出于某种原因,我需要IPv6流标签为空。Linux似乎在分配随机流标签,而不是由用户设置 我发现的是IPV6\u FLOWLABEL\u MGR和IPV6\u FLOWINFO\u SEND。通过将IPV6\u FLOWLABEL\u SEND设置为true,我可以使用IPV6\u FLOWLABEL\u MGR和in6\u FLOWLABEL\u req为自己分配一个标签 但是,我找不到禁用自动分配行为的选项。我尝试手动将标签设置为0,但当用户将标签设

我试图使用IPv6原始套接字发送一些内容。出于某种原因,我需要IPv6流标签为空。Linux似乎在分配随机流标签,而不是由用户设置

我发现的是
IPV6\u FLOWLABEL\u MGR
IPV6\u FLOWINFO\u SEND
。通过将
IPV6\u FLOWLABEL\u SEND
设置为true,我可以使用
IPV6\u FLOWLABEL\u MGR
in6\u FLOWLABEL\u req
为自己分配一个标签

但是,我找不到禁用自动分配行为的选项。我尝试手动将标签设置为0,但当用户将标签设置为0时,Linux为其分配了一个新标签

我遗漏了什么吗?

请参阅:

/proc/sys/net/ipv6/auto\u flowlabels-整数
根据的流哈希自动生成流标签
小包裹这允许中间设备,例如路由器
为等成本多路径等机制识别数据包流
布线(见RFC 6438)。
0:自动流标签已完全禁用
1:默认情况下启用自动流标签,可以
使用IPV6\u AUTOFLOWLABEL在每个套接字上禁用
套接字选项
2:允许使用自动流量标签,可以在
使用IPV6\u AUTOFLOWLABEL套接字选项的每个套接字
3:自动流标签已启用并强制执行,它们不能
将被套接字选项禁用
默认值:1

通过“空”流标签,您是指所有位都为0的流标签吗?当您说“未由用户设置”时,您是指“由用户指定为零”?@john bollinger未由用户设置表示用户未指定任何内容,是的,通过空,我是指所有位都为0。据我所知,当用户
connect()
bind()
连接IPv6套接字时,不能不在其上设置流标签。它是
struct sockaddr\u in6
(member
sin6\u flowinfo
)的一部分,必须为这两个接口提供一个实例。您的问题是您没有初始化此成员吗?或者我应该如何解释“未指定任何内容”?我需要IPv6流标签为空。为什么?