交换机芯片笔记1.2

1.2基本交换机的操作:
设备从MAC接收数据包然后对它进行处理,通过源地址最后转发到适当的MAC上
进行传输。
1、 入口规则(2.1节)
2、 队列控制器(2.6节)
3、 输出队列(2.6.5.2节)
4、 出口规则(2.8节)
这些块修改通过交换机的正常或默认数据包流。涉及学习如何将数据包切换到正确的MAC。交换机通过记住每个数据包的源地址和端口号来了解该连接到哪个端口。如果将数据包定向到一个新的尚未学习的MAC则该数据包从除了该端口的其他所有的端口传输出去。那么不仅能确保对方能接收到数据包并且为下一次传输到对方做了MAC的记录。物理的内存限制所以一般交换机学习的MAC地址不多,通过老化和移动等操作将MAC地址表/端口号维持在较为活泼的状态。
Note:暂停帧和PFC帧是不能被学习的
1.2.1查找引擎:
接收到帧的时候,设备的搜索引擎和ATU会使用DA和SA还有VID(如果有的话)字段如果每个帧都有。搜索速率为线的速率,执行所有的地址搜索、学习和老化功能。地址数据库会用哈希技术来快速存储和检索(在在全局1偏移量为0x0A设置),地址数据库存储在嵌入式SRAM中大小为16384个条目,默认老化时间约为300s或5min。
1.2.2地址的搜索或翻译:
地址搜索引擎搜索地址数据库来获得每个帧的目标的地址的输出端口号,这可以传输该帧而不是进行广播。输出端口号列表称为目标端口向量或DPV。
搜索引擎仲裁查找目标地址的请求,(对该地址进行哈希处理然后)从地址数据库中读取数据如果没有找到与该地址匹配的值则默认下会洪泛(广播)该帧。Forwarding Information Database (FID, where FID[3:0] 在端口寄存器偏移量为0x06, and FID[11:4] 在端口寄存器偏移量为 0x05)。FID为12位0:3+4:11
NOTE:内部CPU的交换机端口不支持ATU地址查找和学习。
1.2.3地址的自动学习:
地址学习引擎可以用于学习入口帧的源地址,它可以存储16384个MAC地址/端口号映射。在地址库中找不到输入帧的源地址时,ATU会进入自学习模式,并将新的MAC地址放入库中并刷新其老化时间,如果找到了说明它已被学习过,则只刷新老化时间。如果端口号或链接聚合ID改变了则也要更新。将地址添加到数据库后,将对它进行哈希处理并将其存储在哈希位置处找到的第一个空容器中。如果所有四个地址仓已满,则通过查看每个现有的条目的老化时间,首先查看每个现有条目的老化时间其次替换非静态的条目,如果非静态条目的老化时间相同则用第一个,再次如果都为静态的则不会学习该地址,并且会产生一个ATUFull中断(全局1,偏移量0x00),如果端口不是LAG(端口偏移0x05中的LAG端口位为0或它是端口的LAG ID则使用新MAC地址的PAV(端口偏移量为0x0B)
如果禁用了802.1Q端口的FID决定将MAC地址添加到哪个地址数据库中
如果启用了802.1Q则与帧的VID 相关联的FID帧的VID将确定存储MAC地址的地址数据库。
不会被学习的帆暂停帧、BPDU、LAC、和其他管理帧。另还有DSA标签帧除了转发类型的标签帧外也被认为是管理帧。
通过将MAC地址条目字段设置为0x7刷新MAC地址条目的老化时间。
1.2.4硬件地址学习限制
可以通过硬件限制端口的自动地址学习范围1-1023。寄存器的偏移量为0x0c。启用后端口计数器(0x0c)来计算学习的MAC地址的数量,当计数器达到限制值时,已达到限制位 置1(0x0c)。然后:
1. 地址数据库中包含与输入帧相关的端口关联的源地址的帧将被允许进入端口。
2. 不在地址数据库中或不在地址数据库中但与输入的帧的端口不相关的SA的帧将被丢弃。
NOTE:与端口关联的地址在地址数据库中过期时,学习计数器将减1。端口的达到计数器位将被清除,表明计数器低于限制。现在如果有新的地址进入则会被学习因为现在的限制计数器是小于学习限制的。
如果允许在帧流通后将端口的学习限制更改为更大的数量,则可以随时增加LearnLimit。但是,如果在允许帧通过后将端口的学习限制更改为较小的值,则必须遵循以下步骤:
1.禁用端口上的学习功能,并清除端口的PAV(端口偏移量0x0B)。
2.在地址数据库中清除与此端口关联的所有地址。发出ATU Flush All Non-Static或执行ATU将Non-Static移至端口0x1F(全局1偏移量0x0B)。
3.将端口的LearnLimit清除为零以重新初始化端口的LearnCtr(如果上面使用了ATU Flush All Non-Static操作,则不需要此操作)。
4.将端口的LearnLimit设置为新值。
5.通过逆转上述步骤1中的操作,重新启用端口上的学习功能
1.2.5自动地址的老化
在地址数据库中删除过期的地址,老化是为了新的活动地址腾出空间,如果新入的地址已经存在于地址数据库则只更新它的老化时间,老化是通过定期扫描地址数据库来完成的,扫描速度决定了老化时间,每次扫描ATU会扫描EntryState并将其减少1个字(静态除外)当为0时将其删除,当HoldAt1位置1时不会被删除。新的或刚刚刷新的单播MAC地址的EntryState为0x07。清除或无效的条目的EntryState值为0x0。
1.2.6CPU直接地址学习和清除
有时需要防止端口的自动学习而用CPU直接学习。通过将端口的LockedPort位置为1(端口偏移量0x0B),该设备支持基于每个端口的CPU定向学习。如果端口的地址学习被打开,端口处于锁定状态,而端口上启用了学习功能(PAV不为零),地址数据库中接收到地址表上不存在的源地址的帧的时候将产生一个源地址非法匹配中断(SA Miss ATU violation )。PS:如果某个端口打开了自动学习且被锁定了,当它收到一个新的源地址的时候会产生一个源地址非法匹配中断。也可以将SA Miss ATU violation设置为生成硬件中断,寄存器ATUProbintEn位(全局1偏移量0x04)。在ATU中每个端口的ATU Violation是被锁住了的。一旦违规被捕获到所有的后续违规都会被忽略直到第一个通过CPU的服务。
或者,未知源地址的帧可以被镜像到CPU(2.1.3节),通过设置Mirror SA Miss位为1(端口偏移量为0x0D)来完成。
CPU可以通过发送一个ATU获取/清除Violation Data ATUOp(6.3.6节)获取源MAC地址和SA MissViolation的源端口信息。然后CPU决定是否将地址放入地址数据库,如果这样做,则CPU发出一个Load ATUOp。(6.3.6节)
如果CPU将一个新地址载入成非静态的,则该条目将保留在地址数据库中,直到它老化为止。它的使用期限由加载的EntryState值决定。(全局1偏移量为0x0A)通常锁定端口上的地址不会刷新其使用期限,但是如果端口的refreshLocked位设置为1(端口偏移量为0x0b)则地址可以刷新。只要地址上的关联关系不变,地址数据库中已经存在的地址就会自动刷新(将EntryState设置为0x07)。如果将Learn2All位设置为1(全局1偏移量0x0A),则将在这些自动刷新上生成Learn2All消息帧。 Learn2All用于在级联或多芯片应用程序中自动学习跨芯片地址。
将CPU配置为进行CPU定向学习(即端口偏移量0x0B = 1中的端口的LockedPort)时,CPU可以接收来自老化地址的中断,如下所示:
1、 如果接收到的帧在地址数据库中包含SA,则如果在入口帧的SA的地址数据库中找到的EntryState小于0x4(并且端口的RefreshLocked位被清除为零),则CPU将收到ATU Miss Violation中断。这样,CPU可以在条目完全老化之前刷新老化条目的EntryState(如果EntryState小于0x4,则该条目超过1/2老化。
2、 无论是否接收到帧,如果启用了端口的IntOnAgeOut(在老化时中断),只要与端口1相关的任何地址都在老化(即,条目的EntryState为老化开始处理条目时为0x1)。 然后,该条目将在地址数据库中老化(即,其EntryState将被清除为0x0),或者如果将端口的HoldAt1位置1(端口偏移量0x0B),则其EntryState值将保持在0x1。 “保持为1”功能要求CPU从地址数据库中清除条目,这使CPU可以控制何时何地删除地址。 在这两种情况下,都将通知CPU未将特定的MAC地址用于组态的年龄时间(全局1偏移量0x0A)。
如果CPU将新地址加载为“静态”,则条目将保留在地址数据库中,直到CPU清除为止。 在这种情况下,只要该地址从未在原始源端口以外的其他端口上用作SA,则CPU不会从该地址接收任何中断。 如果在另一个源端口上使用了MAC地址,并且在帧刚进入交换机的端口上清除了IgnoreWrongData位(端口偏移量0x0B),则CPU会收到ATU成员冲突中断。这将以安全端口(第2.1.3节)的形式配置入口端口,并且只要不需要在该端口上授权任何新的SA就会起作用。 这种“全端口屏蔽”可以是临时的。 在这种情况下,只要源端口不再“占用” CPU,CPU便可以定期“打开”端口以接收新的学习中断。
PS:如果端口的地址学习被打开,而该端口被设置为”Locked”,此时这个端口收接收到地址表上不存在的源地址MAC的帧的时候将产生一个源地址非法匹配中断(SA Miss ATU violation )。CPU能够通过ATU Get/Clear Violation Data ATUOp在一个SA Miss ATU Violation中取得帧的源MAC地址和源端口信息。CPU将决定是否将MAC地址写入到地址表之中。如果CPU写入的是一个新的非静态地址(non-static),那么这个地址在老化时间内会一直存放在地址表之中,如果他没有被重刷新的话,他的老化时间是由“入口状态”的值决定的(Entry State Value),在这个地址被清空之前,CPU将不会在这个地址上收到新中断。如果CPU写入的MAC地址为静态地址,那么这个地址将一直存在地址表之中,直到CPU主动的去清除他。对于静态地址没有被运用到另一个端口之前,CPU不会收到任何来自这个MAC地址上的新的中断信息。如果静态地址被运用另一个端口上时,CPU将收到一个ATU成员冲突中断(ATU Member Violation)。
1.2.7 802.1X源MAC地址的检查
设备支持802.1X的源地址认证它使用CPU直接地址学习(1.2.6节)和DropOnLock入口策略(2.1.2节)。CPU直接地址学习要求对于802.1X来说是为了MAC地址可以通过认证服务进行认证。DropOnLock策略引起所有未认证的MAC地址的帧被丢弃。
认证权的一个副作用是,CPU可能会因为来自它所拒绝的来源的不断的SA Miss Violations而变得饱和。这在设备中是通过屏蔽拒绝的MAC地址来防止的。一个地址可以防止产生认证中断(即屏蔽),方法是将该地址加载到地址数据库中,其目的端口向量(DPV)为全零。任何试图发送帧到这个未认证地址的端口都会被丢弃(因为它的DPV是全零),任何试图使用这个未认证地址的802.1X端口的帧也会被丢弃(因为端口的SA位在ATU条目中没有设置)。但是,现在CPU将在每次试图使用未经认证的地址作为SA时得到SA成员违规中断。这些中断也可以通过设置802.1X端口的IgnoreWrongData位(端口关联向量-端口偏移量0x0B)来屏蔽。
1、 CPU可以通过将未认证的MAC地址作为静态或非静态条目加载到地址数据库中来掩盖它们。如果它们被加载为非静态条目,中断会被掩盖,直到该条目从数据库中老化或CPU清除该条目(在这种情况下不要启用端口的RefreshLocked功能,端口偏移量0x0B,因为刷新将通过更新该条目的DPV来 "认证"MAC地址)。这种方法最大限度地减少了CPU需要服务的中断数量,同时保持地址数据库的流动性。
2、 如果未经授权的地址被加载为静态地址,那么中断就会被屏蔽,直到CPU清除该条目。这就要求CPU记住它所加载的地址,因为在某些时候,CPU应该清除这些地址,为新地址腾出空间。使用太多的静态地址也会导致ATU完全违反,所以最好使用非静态的方法来屏蔽地址

1.2.8多地址数据库支持(FID)
该设备在地址转换单元(ATU)中最多支持4,096个独立的地址数据库。多地址数据库用于按VLAN或按端口隔离MAC地址,因此同一MAC地址可以在具有不同端口映射的地址数据库中多次出现。设备使用802.1Q中定义的转发信息数据库(FID)机制将地址数据库彼此隔离。尽管地址数据库按FID值隔离,但不会按FID值分成相等的段。每个数据库号不能容纳所有可能的MAC地址,也不能容纳两者之间的任何数字。可以使用任意数量的FID值(1到4,096)。每个转发信息数据库(FID)仅使用其所需的MAC地址条目,而将所有其余的ATU条目留给所有其他数据库。
当每个帧进入端口时,都会为其分配一个FID。在搜索和/或学习帧的MAC地址时,将帧的FID值以及帧的DA和SA发送到地址转换单元(ATU)。帧的FID由优先级顺序确定,具体如下:
与VLAN转换单元中的帧的VID相关联的FID(VTU,第6.2节)。 这要求帧的的VID在VTU中有效。 所有帧都被分配了VID,即使是未标记的帧也是如此。 如果端口上未启用802.1Q,则为true。
与进入端口关联的FID(端口偏移0x06中的FID [11:4],端口偏移0x05和FID [3:0])。
如果不需要多个地址数据库,则将所有FID值在寄存器中所有出现的位置都保留为复位值0x000。(在端口偏移量0x05和0x06的端口中,在ATU的Global1偏移量0x01处,并将VTU的值保留在全局1偏移量0x02中)。
帧的FID通常由帧的VID(通过VTU,第6.2节)确定。 可以将多个VID映射到同一FID,以允许共享VLAN地址数据库。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
 RTL8370N-VB: Single-chip 8-port gigabit non-blocking switch architecture  Embedded 8-port 10/100/1000Base-T PHY  Each port supports full duplex 10/100/1000M connectivity (half duplex only supported in 10/100M mode)  Full-duplex and half-duplex operation with IEEE 802.3x flow control and backpressure  Supports 9216-byte jumbo packet length forwarding at wire speed  Supports Realtek Cable Test (RTCT) function  Supports 96-entry ACL Rules  Search keys support physical port, Layer2, Layer3, and Layer4 information  Actions support mirror, redirect, dropping, priority adjustment, traffic policing, CVLAN decision, and SVLAN assignment  Supports 5 types of user defined ACL rule format for 64 ACL rules  Optional per-port enable/disable of ACL function  Optional setting of per-port action to take when ACL mismatch  Supports IEEE 802.1Q VLAN  Supports 4K VLANs and 32 Extra Enhanced VLANs  Supports Un-tag definition in each VLAN  Supports VLAN policing and VLAN forwarding decision  Supports Port-based, Tag-based, and Protocol-based VLAN  Up to 4 Protocol-based VLAN entries  Supports per-port and per-VLAN egress VLAN tagging and un-tagging  Supports IVL, SVL, and IVL/SVL  Supports 4096-entry MAC address table with 4-way hash algorithm  Up to 4096 L2/L3 Filtering Database  Supports Spanning Tree port behavior configuration  IEEE 802.1w Rapid Spanning Tree  IEEE 802.1s Multiple Spanning Tree with up to 16 Spanning Tree instances  Supports IEEE 802.1x Access Control Protocol  Port-Based Access Control  MAC-Based Access Control  Guest VLAN  Supports Quality of Service (QoS)  Supports per port Input Bandwidth Control  Traffic classification based on IEEE 802.1p/Q priority definition, physical Port, IP DSCP field, ACL definition, VLAN based priority, MAC based priority, and SVLAN based priority  Eight Priority Queues per port  Per queue flow control  Min-Max Scheduling  Strict Priority and Weighted Fair Queue (WFQ) to provide minimum bandwidth  One leaky bucket to constrain the average packet rate of each queue  Supports rate limiting (64 shared meters, with 8kpbs granulation)  Supports RFC MIB Counter  MIB-II (RFC 1213)  Ethernet-Like MIB (RFC 3635)  Interface Group MIB (RFC 2863)  RMON (RFC 2819)  Bridge MIB (RFC 1493)  Bridge MIB Extension (RFC 2674)  Supports Stacking VLAN and Port Isolation with 8 Enhanced Filtering Databases  Supports IEEE 802.1ad Stacking VLAN  Supports 64 SVLANs  Supports 32 L2/IPv4 Multicast mappings to SVLAN  Supports 4 IEEE 802.3ad Link aggregation port groups  Supports OAM and EEE LLDP (Energy Efficient Ethernet Link Layer Discovery Protocol  Supports Loop Detection  Security Filtering  Disable learning for each port  Disable learning-table aging for each port  Drop unknown DA for each port  Broadcast/Multicast/Unknown DA storm control protects system from attack by hackers  Supports Realtek Green Ethernet features  Link-On Cable Length Power Saving  Link-Down Power Saving  Each port supports 3 parallel LED or scan LED or serial shift LED outputs  Supports I 2 C-like Slave interface or Slave MII Management interface to access configuration register  Supports 16K-byte EEPROM space for configuration  Integrated 8051 microprocessor  Supports SPI Flash Interface  25MHz crystal input  RTL8370N-VB: LQFP 128-pin E-PAD package
MDIO是一种用于配置交换机芯片的通信接口协议。MDIO代表管理数据输入/输出,是一种通过管理器与外部器件(如交换机芯片)进行通信的方式。在使用MDIO配置交换机芯片时,需要完成以下步骤: 首先,我们需要了解MDIO的物理连接。MDIO使用两条线来进行数据传输,一条是时钟线(MDC),用于同步数据传输的时序;另一条是数据线(MDIO),用于传输实际的控制数据。将这两条线连接到交换机芯片上的MDIO接口。 接下来,我们需要配置管理器,以便与交换机芯片进行通信。管理器是一个可以发送和接收MDIO消息的设备,可以是主机上的软件程序、处理器或其他专门的硬件。通常,芯片供应商会提供相关的管理器软件或文档。 然后,我们需要使用MDIO命令来设置和读取交换机芯片的寄存器值。MDIO命令可以通过管理器发送到MDIO接口,然后由交换机芯片执行相应的操作。这些命令包括写入寄存器、读取寄存器、清除寄存器等。 在进行配置时,我们需要参考交换机芯片的文档,了解其寄存器的功能和取值范围。根据需要,可以设置寄存器来改变交换机芯片的行为,例如设置VLAN、QoS、流量控制等功能。这些配置将影响交换机芯片的性能和功能。 最后,我们需要进行测试和验证配置的结果。可以通过发送测试数据或命令来确认配置是否生效,并通过读取相应的寄存器来验证设置是否正确。 通过以上步骤,我们可以使用MDIO配置交换机芯片,以满足特定的网络需求,并实现交换机的定制化配置和功能扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值