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.

[参考译文] CC3220S:无法在旁路模式下接收 IPv6多播数据包

Guru**** 2540720 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/822946/cc3220s-cannot-receive-ipv6-multicast-packets-in-bypass-mode

器件型号:CC3220S

您好!

我们针对 CC3220进行了特殊设置、该设置仅在网络旁路模式 IPv6下工作。 我能够发送和接收原始数据包。

但是、我无法接收多播路由器广播消息(我已验证这些消息确实正在通过 Wireshark 多播到 FF02::1)

谢谢

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

    您好!

    您是否正在使用 RX 滤波器? 此外,您是否可以接收其他 IPv6数据包,还是仅接收路由器通告消息

    Jesu

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

    我假设下面的代码将禁用滤波器

    静态空 WIFIsDisableInternalFilter (void)
    {
    SlWlanRxFilterOperationCommandBuff_t filterBitmap ={
    {0}
    };
    uint16_t ConfigOpt = SL_WLAN_RX_FILTER_STATE;
    uint16_t ConfigSize = 0;
    
    ConfigSize = sizeof (slWlanRxFilterRetrieveStateBuff_t);
    memset (&filterBitmap.FilterBitmap、0、16);
    IF (sl_WlanGet (sl_WLAN_RX_FILTERS_ID、&ConfigOpt、&ConfigSize、
    (uint8_t*)&filterBitmap){
    DBG_printf ("错误:读取内部过滤器\r\n);
    while (1);
    }
    
    if (0x0!= filterBitmap.FilterBitmap){
    memset (&filterBitmap.FilterBitmap、0x00、16);
    IF (SL_WlanSet (SL_WLAN_RX_FILTERS_ID、SL_WLAN_RX_FILTER_STATE、
    sizeof (slWlanRxFilterOperationCommandBuff_t)、
    (uint8_t *)&filterBitmap){
    DBG_printf ("错误:禁用内部过滤器\r\n);
    while (1);
    }
    }
    
    memset (&filterBitmap.FilterBitmap、0、16);
    IF (sl_WlanGet (sl_WLAN_RX_FILTERS_ID、&ConfigOpt、&ConfigSize、
    (uint8_t*)&filterBitmap){
    DBG_printf ("错误:读取内部过滤器\r\n);
    while (1);
    }
    } 

    我无法生成通向此节点的任何 IPv6流量、因为我正在等待路由器广播、而路由器广播从未到达。

    这里有趣的部分是、为了实现这一点、我构建了相同的代码(在第二个评估板上绕过网络、但将其置于 AP 模式) 我的第一个模块将 IPv6数据包发送到多播地址、我可以看到 AP 模式模块成功接收到该数据包。 AP 和 STA 模式在堆栈旁路方面是否存在差异?

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

    您好 Stanislav、

    让我联系我们的网络旁路专家、明天再与您联系。

    Jesu

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

    看起来我可以接收所有类型的数据包、但不能接收 IPv6数据包。 我能够接收路由器生成树协议和所有其他杂项数据包、这使我相信旁路模式工作正常。 但是、我看不到任何 IPv6 (注意:我肯定可以将它们发送出去)、但不能接收! (这是我需要的)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    _u32 IfBitmap = 0;
    IfBitmap = sl_netcfg_if_ipv6_STA_local | sl_netcfg_if_ipv6_STA_global;
    if (sl_NetCfgSet (sl_netcfg_if、sl_netcfg_if_State、sizeof (IfBitmap)、(uint8_t*)&IfBitmap)))
    {
    while (1);
    }
    

    启用接口:)已帮助。 我假设将 IP 设置为0.0.0.0并禁用筛选器就足够了。

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

    有道理。 默认情况下、IPv6处于禁用状态。 很抱歉不能早点想到这一点。

    Jesu