盛科CTC8096端口速率40G切换10G配置

1、背景介绍

公司现有交换模块上采用了盛科的CTC8096 40G交换芯片,其中有两路40G通过后板光模块直出,用于跨机箱互联,现在有新需求,需要将后出的40G全部改为10G直出。

2、配置过程

原来的状态在盛科的CTCSDK下通过show port mac-link命令看到的结果如下,全部都是40G

经过和原理图对比确认,两路后出的端口是port 8和port 12,对应serdesID为8-15

因为一路serdes最多支持10G,而一路40G是四路10G组合形成的,改成10G就是将原来组合在一起的serdes进行拆分,每个serdes独立成为一个port修改datapatch_cfg.txt文件,将原来8-15的serdes模式改成XFI 修改SERDES_MODE=1,SERDES_SWITCH从1变成0(意思为不进行组合)

修改后的datapath_cfg.txt文件如下

html 复制代码
#Generated by 'CTC DataPath Tools' on Thu Apr 26 14:31:16 2018 
#Version 1.0, Supported by SDK V3.0 
 
#Datapath for 96 XLG 

###########################################Port Mapping###########################################
#                                               API port                                         #
#   |--------------|---------------|--------------|---------------|-------------|-------------|  #
#   | network port | network port  | reserved port|  network port | network port|reserved port|  #
#   |--------------|---------------|--------------|---------------|-------------|-------------|  #
#   |    0~39      |     40~47     |    48~63     |    64~103     |   104~111   |   112~127   |  #
#   |--------------|---------------|--------------|---------------|-------------|-------------|  #
#                                             Chip port                                          #
#   |--------------|---------------|--------------|---------------|-------------|-------------|  #
#   |Slice0 0~39   |Slice0 40~47   |      -       | Slice1 0~39   |Slice1 40~47 |      -      |  #
#   |--------------|---------------|--------------|---------------|-------------|-------------|  #
#                                              Mac Id                                            #
#   |--------------|---------------|--------------|---------------|-------------|-------------|  #
#   |Slice0 0~39   |Slice0 48~55   |      -       | Slice1 0~39   |Slice1 48~55 |      -      |  #
#   |--------------|---------------|--------------|---------------|-------------|-------------|  #
##################################################################################################

#SERDES_MODE   : 0-NONE, 1-XFI, 2-SGMII, 3-Not Support, 4-Not Support, 5-XAUI, 6-DXAUI, 7-XLG, 8-CG, 9-2.5G
#SERDES_RX_POLY: 0-Normal, 1-Inverse
#SERDES_SWITCH : 0-Not Support Dynamic Switch, 1-Support Dynamic Switch

[CORE_PLLA] = 600
[CORE_PLLB] = 500

#{
[SERDES_ITEM]
#repeat 96 step 5
[SERDES_ID] = 0
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 1
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 2
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 3
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 4
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 5
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 6
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 7
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 8
[SERDES_MODE] = 1
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 9
[SERDES_MODE] = 1
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 10
[SERDES_MODE] = 1
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 11
[SERDES_MODE] = 1
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 12
[SERDES_MODE] = 1
[SERDES_RX_POLY] = 1
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 13
[SERDES_MODE] = 1
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 14
[SERDES_MODE] = 1
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 15
[SERDES_MODE] = 1
[SERDES_RX_POLY] = 1
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 16
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 17
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 18
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 19
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 20
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 21
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 22
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 23
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 24
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 25
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 26
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 27
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 1
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 28
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 29
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 30
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 31
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 32
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 33
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 34
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 35
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 36
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 1
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 37
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 38
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 39
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 40
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 41
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 42
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 43
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 44
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 45
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 46
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 47
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 48
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 49
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 50
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 51
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 52
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 53
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 54
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 55
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 56
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 57
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 58
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 59
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 60
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 1
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 61
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 62
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 63
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 1
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 64
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 65
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 66
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 67
[SERDES_MODE] = 0
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 0

[SERDES_ID] = 68
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 69
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 1
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 70
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 71
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 72
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 1
[SERDES_TX_POLY] = 1
[SERDES_SWITCH] = 1

[SERDES_ID] = 73
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 74
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 75
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 1
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 76
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 77
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 78
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 1
[SERDES_TX_POLY] = 1
[SERDES_SWITCH] = 1

[SERDES_ID] = 79
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 80
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 81
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 1
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 82
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 83
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 84
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 85
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 86
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 87
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 1
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 88
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 89
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 90
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 91
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 92
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 93
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 94
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

[SERDES_ID] = 95
[SERDES_MODE] = 7
[SERDES_RX_POLY] = 0
[SERDES_TX_POLY] = 0
[SERDES_SWITCH] = 1

#repeat end
#}

同时针对新产生的端口,为了能和其他端口互通,需要放在一个VLAN内,这个可以通过修改上电的启动脚本实现,在FFE_Param_startup.cfg(注:盛科原来的脚本名称叫startup.cfg,这里是因为sdk代码内把读取脚本名称改了 )中最前面添加下面代码。

bash 复制代码
port 0x0008 auto-neg disable
port 0x0009 auto-neg disable
port 0x000a auto-neg disable
port 0x000b auto-neg disable
port 0x000c auto-neg disable
port 0x000d auto-neg disable
port 0x000e auto-neg disable
port 0x000f auto-neg disable

port 0x0008 mac enable
port 0x0009 mac enable
port 0x000a mac enable
port 0x000b mac enable
port 0x000c mac enable
port 0x000d mac enable
port 0x000e mac enable
port 0x000f mac enable


port 0x0008 port-en enable
port 0x0009 port-en enable
port 0x000a port-en enable
port 0x000b port-en enable
port 0x000c port-en enable
port 0x000d port-en enable
port 0x000e port-en enable
port 0x000f port-en enable

port 8 default vlan 10
vlan add port 8 vlan 10
port 8 vlan-ctl drop-all-tagged
port 8 vlan-filtering direction both enable

port 9 default vlan 10
vlan add port 9 vlan 10
port 9 vlan-ctl drop-all-tagged
port 9 vlan-filtering direction both enable

port 10 default vlan 10
vlan add port 10 vlan 10
port 10 vlan-ctl drop-all-tagged
port 10 vlan-filtering direction both enable

port 11 default vlan 10
vlan add port 11 vlan 10
port 11 vlan-ctl drop-all-tagged
port 11 vlan-filtering direction both enable

port 12 default vlan 10
vlan add port 12 vlan 10
port 12 vlan-ctl drop-all-tagged
port 12 vlan-filtering direction both enable

port 13 default vlan 10
vlan add port 13 vlan 10
port 13 vlan-ctl drop-all-tagged
port 13 vlan-filtering direction both enable

port 14 default vlan 10
vlan add port 14 vlan 10
port 14 vlan-ctl drop-all-tagged
port 14 vlan-filtering direction both enable

port 15 default vlan 10
vlan add port 15 vlan 10
port 15 vlan-ctl drop-all-tagged
port 15 vlan-filtering direction both enable

重启后执行show port mac-link查看结果如下:

以上就实现了后出两路40G变成8路10G的配置。

相关推荐
難釋懷1 小时前
Redis网络模型-IO多路复用-select方式
网络·redis·bootstrap
呉師傅1 小时前
统信UOS如何安装本地打印机驱动以及URL查找网络打印机并安装驱动方法
运维·服务器·网络·windows·电脑
Ogcloud_oversea2 小时前
SD-WAN 技术架构解析:控制平面与数据平面的解耦实践
运维·网络·网络协议·网络安全·信息与通信
wangl_922 小时前
Modbus RTU 与 Modbus TCP 深入指南-结束语
网络·网络协议·tcp/ip·tcp·modbus·rtu
small_white_robot2 小时前
idek-2022 web 全wp——持续更新
开发语言·前端·javascript·网络·安全·web安全·网络安全
皮卡祺q2 小时前
【Java网络编程核心-0】从OSI七层到TCP/IP模型深度解析(HTTP协议、TCP、UDP 、 IP协议)
网络·网络协议·tcp/ip·http·https·udp
老毛肚3 小时前
循环网络神经模型基础快速入门
网络
DavidTaozhe3 小时前
美股api接口的WebSocket订阅如何实现自动重连
网络·websocket·网络协议
草莓熊Lotso3 小时前
【Linux网络】从 0 到 1 实现高性能 UDP 聊天室:深入拆解 Linux 网络编程与线程池架构
linux·运维·服务器·网络·数据库·c++·udp