交换机端口映射

交换机端口映射

作者: 北京—小武

邮箱:[email protected]

新浪微博:北京-小武

交换机芯片进行流量转发的基本单位是端口,所以交换机很多功能是基于端口为单位进行配置,比如业务口、CPU口、HG口、LAG口、三层接口和虚拟口等,即使以VLAN等为单位的配置属性,也需要在端口为单位的转发流程上生效。对不同用途或不同应用场景下的交换机的端口有很多名称或编码方式,所以对从一个端口名称到BCM芯片的硬件port之间的转换过程,需要我们对其有一个基本的了解。

我们对交换机port的视觉对应是交换机前端一个个的查光纤或者电缆的小口,每一个小口称为一个面板端口,面板port都是业务口,即可用于转发用户数据的端口;每个面板端口都有一个字符串来表示其相应的名称,这个字符串不是随意配置的,比如咱们自研交换机的端口一般是te-1/1/1,其中te代表万兆口的意思,另外千兆口和百兆口分别用ge和fe来表示,ae代表汇聚口,当然各个厂家还有很多自己的特定表示的;然后接着的“1/1/1”被斜线分成了三段,分别代表slot、module和port号,主要用于机架;一款机架交换产品如下图所示:



从左图可以看出,该产品有上下共5个交换芯片,即5个插槽位,然后每个交换芯片上有很多端口,可能有的同学会疑惑几乎可以说有slot号+port号就可以用二维坐标来定位到具体端口,为什么还要有module号那?这个就涉及单个芯片的问题了,我们芯片上是分unit号的,每一个unit的就是一个独立的交换设备单元,大多数的交换芯片和unit的关系是一对一的关系,但是也有特殊的情况就是有些交换芯片会有2个unit的(最多应该可以有三个,但是暂时没有遇到过),所以为了处理一个交换芯片有两个unit的情况,我们采用了加入module号的端口编码方式(当然对一个交换芯片上也可以做这样一个映射:后面unit的端口在前面unit端口的基础上连续编码,但这个破坏了和芯片的映射关系,需要相应设计并做好软件记录)。

所以总体来说,盒式交换机是一种特殊形式的机架产品,即可以看作是一款只有一个带有业务端口主控的机架产品。因此对于盒式机,很多厂商为了端口编码的统一,也采用了三段形式的编码,只不过插槽位固定为1,module号可能会变化。

其实我们看到的小孔都是交换机芯片内置或外置的phy,每一个phy对应若干个面板端口,并且每一个面板端口都会对应交换芯片MMU的至少一个port。我们的自研交换机在用函数soc_mmu_init()初始化MMU时,会建立若干个phy上每一个端口和MMU端口的映射关系,即physical port和MMU port的相互映射。MMU上的port直接(unit +port形式)调用会因为表示形式不直观且屏蔽不同类型端口的访问差异等存在问题 。

猜你喜欢

转载自blog.csdn.net/ppw001/article/details/52215735