This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TDA2EXEVM:VLAN 虚拟接口通过 eth0接收的数据不包含8021q、如何解决? [Vision SDK 3.06 ][(TI-Linux)][kernel 4.4.4.84+]

Guru**** 1783340 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1016464/tda2exevm-vlan-virtual-interface-the-data-received-through-eth0-does-not-carry-8021q-how-to-solve-it-vision-sdk-3-06-ti-linux-kernel-4-4-84

器件型号:TDA2EXEVM

第一个  

eth0 -> eth0.6

ip link add link eth0 name eth0.6 type vlan id 6.
ifconfig eth0.6 198.18.36.96 netmask 255.255.0.0 broadcast 198.18.255.255 up

eth0和 eth0.6具有相同的 IP 地址、广播地址、掩码、MAC 地址。

通过外部设备发送承载 vlanid 6的以太网数据、通过 tcpdump 查询 eth0网卡数据、通过 tcpdump 查询 eth0.6网卡数据。

捕获的数据如下:

eth0:

tcpdump -ni eth0 -v -e

数据:

198.18.37.21.60001 > 198.18.255.255.50001:UDP、长度18
14:00:59.475043 02:00:00:15:14 > 02:00:00:00:14:60、ethertype 802.1Q (0x8100)、长度64:vlan 6、p 2、ethertype IPv4、(tos 0x0、TTL 64、 ID 0、偏移量0、标志[DF]、proto UDP (17)、长度46)

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

ETH0.6

tcpdump -ni eth0.6 -v -e

数据:

198.18.37.21.60001 > 198.18.255.255.50001:UDP、长度18
14:00:29.2335330 02:00:00:15:14 > 02:00:00:00:14:60、热类型 IPv4 (0x0800)、长度60:(TOS 0x0、TTL 64、id 0、偏移量0、标志[DF]、 proto UDP (17)、长度46)

通过捕获两个网卡接口的数据、可以发现当以太网传输到 eth0时、8021q 数据就会出现;当它传输到 eth0.6时、8021q 数据就会被删除。

eth0.6指定 UDP 广播数据的接收。 这是因为没有 VLAN 标记、无法接收数据吗?

在这种情况下、如何确保 eth0.6接收到的以太网数据承载8021q 数据?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如何使 eth0.6接收的数据携带 VLAN 标签信息? 操作寄存器? 还有其他方法吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是 Linux 特有的问题、而不是 SoC 问题。 我们将无法提供支持。