BCM53115 ACL设计与IPv4/IPv6规则配置实例

需积分: 22 20 下载量 57 浏览量 更新于2024-08-09 收藏 282KB PDF 举报
在应用BCM53115芯片实现访问控制列表(ACL)功能时,我们关注的是如何根据特定需求配置规则来过滤和控制数据包的传输。BCM53115的ACL功能由其CFP(Compact Field Processor)模块提供支持,总共可以设置256条规则,这些规则存储在物理的TCAM(Ternary Content-Aware Memory)中,每个规则的索引号范围是从0到255。 首先,对于满足特定条件的数据包,例如CPU需要接收来自特定源地址(目的MAC地址等于自身地址)且支持IPv4、IPv6和非IP报文的情况,需要配置3条不同的规则,因为芯片似乎对L3_Framing字段有区分能力。这意味着不能仅用一条规则处理所有类型的报文,必须针对每种类型分别设置规则,确保精确匹配。 ACL的核心是定义了一系列的匹配条件和动作,如限速、计数和丢弃或转发。在BCM53115中,规则按照 Slice(片)进行组织,共分为4个 Slice:Slice0到3,其中Slice0到2适用于IPv4、IPv6和非IP包,而Slice3可以与Slice0联合,用于匹配IPv6包,这允许更复杂的字段匹配。规则的执行顺序取决于优先级,Slice编号越大,优先级越高;同一Slice内,索引号越小,优先级越高。 规则的具体实现涉及到CFP相关的寄存器,如CFPTCAMDataRegister和CFPTCAMMaskRegister。这些寄存器用于存储TCAM数据和掩码,允许用户设置匹配的字段,对于不关心的字段,可以通过将掩码寄存器相应位设置为0来忽略。TCAMDataRegister保存了匹配的字段信息,而TCAMMaskRegister则定义了哪些字段需要匹配,哪些可以忽略。 在配置BCM53115的ACL时,开发者需要明确每条规则的匹配条件,选择正确的SliceKey格式(独立或联合Slice下的IPv4、IPv6、非IP包),以及设置相应的数据和掩码寄存器,确保网络设备能够根据预设的策略有效地管理进出数据包,从而满足CPU特定的通信需求,如只接收特定MAC地址的报文,并执行ARP功能。