盛科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的配置。

相关推荐
MC皮蛋侠客3 小时前
DNP3 系列(十二):测试与工具链——模拟器、Wireshark 与一致性测试
网络·wireshark·dnp3
观测云5 小时前
Fastjson 高危 RCE(CVE-2026-16723):如何用观测云快速发现并完成修复
网络·安全·可观测性·观测云
楷哥爱开发7 小时前
TikTok Shop新加坡本土店入驻:如何选择新加坡本土住宅IP?
网络·网络协议·tcp/ip
网安蟹佬霸7 小时前
# 网络流量分析实战:从Wireshark到入侵检测系统构建(2026最新版,附完整流量分析链与IDS规则集)
网络·测试工具·安全·开源·wireshark·密码学·哈希算法
昌原的儿子LEO10 小时前
进程和线程(2)
linux·服务器·网络
Zzzzmo_10 小时前
【网络原理】TCP/IP协议02
网络·tcp/ip
DianSan_ERP10 小时前
WMS接入电商平台自动化履约实战:一张订单从平台到出库的接口时序设计
java·前端·网络·数据库·安全·架构·自动化
数据知道10 小时前
漏洞挖掘方法论:从 Fuzz 到 0day 的思维框架
网络·安全·web安全·网络安全
智购科技自动售货机工厂11 小时前
2026自动售货机语音支付模块集成:从声纹识别到支付闭环的工程实践~YH
大数据·服务器·网络·数据库·人工智能
zcmodeltech12 小时前
煤化工沙盘模型控制系统设计与实现:多工段协同联动方案
网络·人工智能·stm32·嵌入式硬件·制造·多分类