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.

[参考译文] TDA4VM:如何在 ethfw 中配置 VLAN

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1223661/tda4vm-how-to-configure-vlans-in-ethfw

器件型号:TDA4VM

您好,TI 专家

配置 VLAN 时遇到问题


我运行的是软件版本 SDK-8.6-j721e。

我阅读了文档 [常见问题解答] TDA4VM:如何配置 CPSW 5G/9G ALE -处理器论坛-处理器- TI E2E 支持论坛

根据说明文件中的参考,我为端口3和主机配置了一个 VLAN,为端口5配置了另一个 VLAN。

将端口3连接到测试机、将端口5连接到 PC。 测试机发送多播数据包并使用板上的 tcpdump 函数捕获多播数据包。 然后、可以使用 Wireshark 捕获 PC 上的数据包。

如何配置 port5以过滤来自不同 VLAN 端口的数据包,并在端口 VLAN 相同时正确转发数据包?

这是我的 VLAN 配置代码

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*
*
* Copyright (c) 2020 Texas Instruments Incorporated
*
* All rights reserved not granted herein.
*
* Limited License.
*
* Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive
* license under copyrights and patents it now or hereafter owns or controls to make,
* have made, use, import, offer to sell and sell ("Utilize") this software subject to the
* terms herein. With respect to the foregoing patent license, such license is granted
* solely to the extent that any such patent is necessary to Utilize the software alone.
* The patent license shall not apply to any combinations which include this software,
* other than combinations with devices manufactured by or for TI ("TI Devices").
* No hardware patent is licensed hereunder.
*
* Redistributions must preserve existing copyright notices and reproduce this license
* (including the above copyright notice and the disclaimer and (if applicable) source
* code license limitations below) in the documentation and/or other materials provided
* with the distribution
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

此致、

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

    Sudheer、请优先查看这张票证、并向客户提供一些建议以供其试用。 谢谢。  

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

    您好,TI 专家

    我不知道如何在 ethfw 中配置 VLAN 的访问功能。 我设置了女警察。 portIsTrunk 设置为 false,但发送时不会删除已发送数据包的 VLAN 标记。 我该怎么办

    此致、

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

    您好!

    将数据包从一个端口转发到另一个端口取决于目标 MAC 地址。

    在您的情况下,您将配置端口3和端口5的多播 MAC 地址。 这就是通过连接到端口5的 PC 中的端口3从测试机发送数据包的原因。

    您只能注册端口3的多播地址,然后在端口5上看不到数据包。

    此致、
    苏德黑尔

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

    您好!,

    如果我只为端口3配置多播 MAC 地址、端口5将无法看到数据、因为 MAC 地址被过滤、而不是 VLAN。我想知道如何使用 VLAN 过滤来转发数据包。

    例如,如果端口3的 VLAN ID 设置为10和30,端口5的 VLAN ID 设置为20和30。 如果端口3接收到来自 VLAN 10的数据包,则端口5不会转发数据包。 如果端口3接收到来自 VLAN 30的数据包,则端口5将正确转发端口。

    在这里我发现了另一个问题,例如,如果将端口3的 VLAN 设置为100,端口3通常可以从 VLAN 100发送和接收数据包。 然后,如果将端口5的 VLAN 设置为100,端口5通常可以从 VLAN 100接收数据包。端口3不能通过 VLAN 100发送或接收数据包。 如何解决该问题?

    此致、

     

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

    您好!

    您能否分享 ALE & Policer 条目供我们参考、请参阅 常见问题解答 [如何打印 ALE 条目]以收集 ALE 表。

    此致、
    苏德黑尔

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

    您好!

    这是 ALE 表。 我首先为端口3添加了一个50的 VLAN ID,然后为端口5添加了一个50的 VLAN ID

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    root@j7-evm:/opt/vision_apps# ./hirain_ale.out add-pvid pvid 50 port 3
    APP: Init ... !!!
    MEM: Init ... !!!
    MEM: Initialized DMA HEAP (fd=4) !!!
    MEM: Init ... Done !!!
    IPC: Init ... !!!
    IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
    0.000000 s: GTC Frequency = 0 MHz
    APP: Init ... Done !!!
    0.000000 s: VX_ZONE_INIT:Enabled
    0.000000 s: VX_ZONE_ERROR:Enabled
    0.000000 s: VX_ZONE_WARNING:Enabled
    0.000000 s: VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
    0.000000 s: VX_ZONE_INIT:[tivxHostInitLocal:93] Initialization Done for HOST !!!
    0.000000 s: VX_ZONE_INIT:[tivxHostDeInitLocal:107] De-Initialization Done for HOST !!!
    [MCU2_0] 71.723423 s: HirainMainR5FRemoteServiceHandler() ADD_VLAN ioctl success: 0,id:50,port:3,list:9
    [MCU2_0] 71.723532 s: HIRAIN_CMD_CPSW9G_PVID_TEST exec end!
    0.000000 s: VX_ZONE_INIT:[tivxDeInitLocal:193] De-Initialization Done !!!
    APP: Deinit ... !!!
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    这是我打印的表单的代码

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #define CPSW_9G_PORT_NUM 8
    #define CPSW_2G_PORT_NUM 1
    #define WR_MEM_32(addr, data) *(uint32_t*)(addr) = (uint32_t)(data)
    #define RD_MEM_32(addr) *(uint32_t*)(addr)
    #include <ethremotecfg/server/include/cpsw_proxy_mac.h>
    #include <ctype.h>
    #include <stdarg.h>
    #include <stdint.h>
    #include <stdio.h>
    #include <stdlib.h>
    #define MEMORY "/dev/mem"
    #define MAIN_CTRLMMR_ENET0_CTRL (0x00104044)
    #define CPSW_RGMII_ID_ENABLED (0U)
    #define CPSW_RGMII_ID_DISABLED (1U)
    #define BOARD_CPSW9G_PORT0_MAC_MODE (CPSW_MAC_MODE_RGMII)
    #define BOARD_CPSW9G_PORT0_RGMII_ID (CPSW_RGMII_ID_DISABLED)
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    这是我添加 PVID 的接口

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    /*A72 -> R5F COMMAND*/
    int32_t HirainMainR5FRemoteServiceHandler(char *service_name, uint32_t cmd, void *prm, uint32_t prm_size, uint32_t flags)
    {
    int32_t rtnVal = IPC_SOK;
    int32_t status = 0;
    int16_t log_index = 0;
    Enet_Handle hEnet;
    Enet_IoctlPrms prms;
    uint32_t *data = (uint32_t *)prm;
    prm_size = prm_size / 4;
    switch (cmd)
    {
    case HIRAIN_CMD_CPSW2G_ALE_PRINT:
    {
    cpsw_print_ale_table_2g();
    appLogPrintf("HIRAIN_CMD_CPSW2G_ALE_PRINT exec end!\n\n\n\n\n");
    }
    break;
    case HIRAIN_CMD_CPSW9G_ALE_PRINT:
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    此致、

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

    您好!

    从 ALE 表转储中、我可以看到配置了以下 VLAN。
    P0和 P5 ->内部 VLAN 50
    所有端口->内部 VLAN 300、406
    P8、P6、P5、P3、P1、 P0 ->内部 VLAN 1
    P4、P2、P0 ->内部 VLAN 0
    P3、P0 ->内部 VLAN 100
    P5、P0 ->内部 VLAN 110
    100和110 ->外层 VLAN

    请将"reg_mcast_fluy_mask"设置为与 VLAN 成员列表类似、因为转发规则将其用作端口掩码。



    此外、确认 是否启用了 CPSW_ALE_CONTROL (0x0C03E008).ALE_VLAN_AWARE?



    如上所述、请在更正后进行检查。

    此致、
    苏德黑尔