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.

[参考译文] CC3235S:CC3235S:数据包过滤

Guru**** 2480245 points
Other Parts Discussed in Thread: CC3235S

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1404224/cc3235s-cc3235s-packet-filtering

器件型号:CC3235S

工具与软件:

:我想配置 IP 数据包的过滤,以便只有 UDP 端口1234和 TCP 端口5678作为 IPv4数据包通过。
所有其他数据包都应被丢弃。

我所获得的文档在过滤器主题方面存在一定程度的限制。

我没有找到任何示例。
驱动程序还提供关于过滤器配置和激活的少量信息。
您能否提供一个仅描述了滤波器功能用法的文档的引用?

译文:DeepL.com (免费版)

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

    您好!

    请参阅SWRU455第11章。

    1月

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

    你(一月)好
    我花了几个小时在探讨数据包过滤一章、并且实施了一些针对过滤器结构配置的代码。
    目前没有成功。

    根据 CC3235S 的建议、我将使用 simplelink_cc32xx_sdk_7_10_00_13

    您能否回答以下问题 或 评价我的陈述?

    事实证明、文档在某些地方与代码不匹配:
    --------------------------------------------------------
    11.4.3.3规则字段:
    在表11-5中、每当使用 ASCII 参数时、主机代码必须按如下所示设置滤波器标志:FilterFlags |=~SL_WLAN_RX_FILTER_BINARY•在表11-5中、每当使用字节流参数时、主机代码必须按如下所示设置滤波器标志:FilterFlags |= RX_FILTER_BINARY

    代码:

    typedef _u8 SlWlanRxFilterFlags_u;
    /* SlWlanRxFilterFlags_u 的可能值*/
    #define SL_WLAN_RX_FILTER_BINARY (0x1)
    #define SL_WLAN_RX_FILTER_PERSISTENT (0x8)
    #define SL_WLAN_RX_FILTER_ENABLE (0x10)

     RX_FILTER_BINARY 没有定义。 我想这是个拼写错误。

    --------------------------------------------------------

    11.4.5.2连接状态和角色
    可以将滤波器设置为仅在特定连接状态下进行测试;例如、仅在 STA 模式下或仅在 AP 模式下进行测试。 考虑过滤器的状态是角色和连接状态的组合。 支持的角色:•SL_WLAN_RX_FILTER_ROLE_AP•SL_WLAN_RX_FILTER_ROLE_STA• SL_WLAN_RX_FILTER_ROLE_混杂(收发器)•SL_WLAN_RX_FILTER_ROLE_NULL

    代码:
    typedef _u8 SlWlanRxFilterTriggerRoles_t;
    /* SlWlanRxFilterTriggerRoles_t 的可能值*/
    #define SL_WLAN_RX_FILTER_ROLE_AP (1)
    #define SL_WLAN_RX_FILTER_ROLE_STA (2)
    #define SL_WLAN_RX_FILTER_ROLE_TRANCIEVER (4)
    #define SL_WLAN_RX_FILTER_ROLE_NULL (0)

    我猜测 SL_WLAN_RX_FILTER_ROLE_OVERSE 表示 SL_WLAN_RX_FILTER_ROLE_TRANCIEVER

    --------------------------------------------------------

    在某些情况下、文档对我而言不够具体:


    图11-4. 示例2.
    是否每个块都是单独的过滤器条目? 我想知道、由于 dst_MAC_ADDR!= 'broadcast'和  dst_MAC_ADDR = 'broadcast'条件只是彼此的反转结果。

    11.2匹配过程
    .
    遍历是在所有树中逐层完成的、当帧达到其中一个树中的 DROP 操作时、该过程停止。

    代码中没有显式的传递操作:

    代码:
    typedef _u8 SlWlanRxFilterActionType_t;
    /* SlWlanRxFilterActionType_t 的可能值*/
    #define SL_WLAN_RX_FILTER_ACTION_NULL (0x0)/*无执行操作*/
    #define SL_WLAN_RX_FILTER_ACTION_DROP (0x1)/*如果未丢弃、数据包将传递到下一个过滤器、或者如果它是发送到主机的最后一个过滤器*/
    #define SL_WLAN_RX_FILTER_ACTION_ON_REG_INCREASE (0x4)/*操作增加计数器寄存器*/
    #define SL_WLAN_RX_FILTER_ACTION_ON_REG_DECAY (0x8)/*操作减少计数器寄存器*/
    #define SL_WLAN_RX_FILTER_ACTION_ON_REG_RESET (0x10)/*操作复位计数器寄存器*/
    #define SL_WLAN_RX_FILTER_ACTION_SEND_TEMPLATE (0x20)/*不受支持*/
    #define SL_WLAN_RX_FILTER_ACTION_EVENT_TO_HOST (0x40)/*操作可以将事件发送到主机*/

    图11-2. Rx 滤波器匹配流
    明确指出不匹配路径中的数据包会发生什么情况、并简短地解释 SlWlanRxFilterType_t 等于通过哪种情况会有所帮助
    该流程图以某种方式扩展了 图11-1中之前的流程图。 Rx 滤波器


    11.4.4组合过滤器的规则结构
    哪些操作和过滤器可用于组合过滤器?  如果要检查是否接收到端口号为1234的 TCP 数据包或端口号为4321的 UDP 数据包、而要丢弃所有其他数据包、那么组合过滤器的触发和/或操作将是什么?

    11.4.6.4代码示例

    它更像是代码 模板而不是工作示例。  

    遗憾的是、没有 包含组合滤波器的完整滤波器结构设置示例。

    没有显示 FilterFlags 或 RuleType 数据设置的示例代码。

    我是否有一些滤波器代码生成器尚未遇到?
    也许您可以告诉我一些明显/隐藏的来源?



    谢谢!

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

    您好、Thomas:

    很抱歉、我无法回答您的问题、因为我从未在 CC32xx 器件中使用过滤波器。 请等待 TI 回答。

    是的、SWRU455似乎存在一些拼写错误、但它不应该是什么大不了的。 目前为止、除了 SWRU455、还没有其他资源可以说明 CC32xx 滤波的工作原理。 network_terminal SDK 示例是滤波器的一些用途、但我认为这对您用处不大。 CC32xx 没有用于设置滤波器的"代码生成器"。

    1月