【发布时间】:2018-01-17 21:12:48
【问题描述】:
我试图使用 IPv6 原始套接字发送一些东西。出于某种原因,我需要 IPv6 流标签为空。当用户未设置时,Linux 似乎正在分配随机流标签。
我找到的是IPV6_FLOWLABEL_MGR 和IPV6_FLOWINFO_SEND。通过将IPV6_FLOWINFO_SEND 设置为true,我可以使用IPV6_FLOWLABEL_MGR 和in6_flowlabel_req 自己分配标签。
但是,我找不到禁用自动分配行为的选项。我尝试手动将标签设置为 0 - 但是当用户将标签设置为 0 时,Linux 为其分配了一个新标签。
我错过了什么吗?
【问题讨论】:
-
“空”流标签是指所有位为 0 的流标签吗?
-
当你说“用户未设置”时,你的意思是“用户指定为零”吗?
-
@john-bollinger 未由用户设置意味着用户没有指定任何内容,是的,空我的意思是所有位都是 0。
-
据我所知,当用户
connect()或bind()时,用户不能失败在 IPv6 套接字上设置流标签。它是struct sockaddr_in6(成员sin6_flowinfo)的一部分,必须为这两个接口提供一个实例。您的问题可能是您没有初始化此成员吗?或者我应该如何解释“没有指定任何东西”? -
"我需要 IPv6 流标签为空。"为什么?