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.

[参考译文] PROCESSOR-SDK-AM62X:CPSW3G VLAN 配置

Guru**** 2435020 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1546827/processor-sdk-am62x-cpsw3g-vlan-configuration

器件型号:PROCESSOR-SDK-AM62X


工具/软件:

我使用连接到 cpsw3g 内部开关的 TI DP83848 PHY。  

现在、我的要求是允许无标记的数据包和 VLAN 20 标记的数据包。


ip link add name br0 type bridge  

ip link set eth1 master br0

IP 链路设置 br0 类型桥接 VLAN_FILTERING 1 VLAN_default_PVID 20

IP 链路设置 br0 up

这样、未标记的数据包正在传输、但如果使用 VLAN 20 标记的数据包、则会失败。

 

当我使用 vconfig 创建另一个 eth1.20 接口并将其添加到网桥时、它对已标记和未标记均有效。 但是,我怀疑这是正确的方法来做到这一点吗?

请尽快给我一个答案。 请及时回复。

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

    您好 Kanishk、

    您当前使用的是哪个 SDK 版本?

    您是在 TI AM62x EVM 还是定制电路板上进行测试?

    您计划在开关模式还是双 EMAC 模式下使用 CPSW?

    如果您在交换机模式下使用、是否已尝试按照 https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/latest/exports/docs/linux/Foundational_Components vlan/Kernel/vlan/Network/CPSW3g.html#vlan-configuration 中的说明进行操作 Kernel_Drivers ?

    如果您在双 emac 模式下使用、我可以问为什么要设置 br0 接口?

    -道林

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

    您好、Qiu、


    我使用 Linux v6.11.5 版本在定制电路板上对其进行测试。

    我假设我使用的是双 emac 模式 — 因为我的 DTS 中有“ti, mac-only“条目。

    我有两个 PHY、它们连接到两个 cpsw 端口、并且是 eth0 和 eth1。

    简而言之、我需要的是- 我需要使用单个 IP 访问两个接口、并且两者都应允许无标记的数据包和 VLAN 20 标记的数据包。  这就是为什么我创建了一个 VLAN 20 桥接器并将 eth 接口连接到该桥接器。  

    IP 链路集 DEV BR0 类型桥接器 VLAN_FILING 1 VLAN_default_PVID 20

    但是、标记的 20 个数据包不会通过、除非进行 已标记出口数据包。 -  网桥 VLAN 添加 dev eth1 vid 20 PVID。 但是、这会破坏正在通过的未标记数据包。

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

    我尝试在开关模式下进行测试、但遗憾的是、我们的 busybox 不支持 devlink。 我找不到 devlink。
    如果我删除“ti,mac-only",“,cpsw、cpsw 是否会在不使用 devlink 的情况下进入切换模式?

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

    尊敬的 Kanishk:  

    我正在定制电路板上进行测试、我使用的是 Linux v6.11.5 版本。
    我尝试在开关模式下进行测试、但不幸的是、我们的 busybox 不支持 devlink。 我找不到 devlink。
    如果我删除“ti,mac-only",“,cpsw、cpsw 是否会进入切换模式而不使用 devlink?

    据我了解、在较旧的内核版本上、通过器件树在开关模式和 EMAC 模式之间进行切换。 但是、现在只需通过 Linux 命令即可启用。 devlink 仅确保切换功能在硬件中而不是在软件中。 如果您不需要硬件切换,则也可以跳过运行 devlink。

    简单地说、我需要的是- 我需要使用单个 IP 访问两个接口、并且两者都应允许无标记的数据包和 VLAN 20 标记的数据包。  这就是为什么我创建了一个 VLAN 20 桥接器并将 eth 接口连接到该桥接器。  [/报价]

    您是否希望两个接口充当交换机、通过端口从一个端口传入流量? 如果是、则需要设置开关模式。 否则、如果需要两个接口/端口来实现完全隔离的流量、则需要使用双 emac 模式。  

    如果您正在创建网桥、是否已将 eth0 和 eth1 都添加到网桥接口? 在您的命令中、我只看到添加了 eth1。

    但是、除非创建、否则将无法通过标记为 20 个数据包的数据包 已标记出口数据包。 -  网桥 VLAN 添加 dev eth1 vid 20 PVID。 但是、这会打破未标记的数据包通过。
    中的说明进行操作。

    如果您运行我在上一个链接中提供的步骤来添加 VLAN ID、是否仍会发生这种情况? 我的理解是、配置的以下部分是为了确保  VLAN 感知交换机知道什么 ID 用于未标记流量、并且是一种处理未标记帧的方法。  

    [*] bridge vlan add dev br0 vid 1 self
     [*] bridge vlan add dev br0 vid 1 Pvid untagged self
     [*]如果 vlan_filling=1、其中 default_pvid=1 

    ip link set dev br0 type bridge vlan_freling 1 vlan_default_pvid 20
     
    另外、您为什么选择将 VLAN_filtering 配置为 1. 但要将 VLAN_default_PVID 更改为 20?

    -道林