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

相关推荐
网络小江10 小时前
组网第35课:静态路由——下一跳、出接口、默认路由、浮动静态与黑洞路由
服务器·网络·默认路由·黑洞路由·浮动静态路由
acrel711 小时前
医院用电隐患治理与节能降耗及智慧能源平台应用
网络·数据库
Escalating_xu11 小时前
【Linux 网络编程】应用层协议 HTTP(下):Header、连接管理与 C++ HTTP 服务器
linux·服务器·网络
明天也要努力学习13 小时前
TCP 协议的相关特性
网络·网络协议·tcp/ip
qq_4017004113 小时前
100 个 IoT 小项目,给 ESP32 入门补上实操
前端·网络·stm32
2401_8734794014 小时前
源IP告警太多用什么工具分层?ASN与风险评分操作指南
网络·网络协议·tcp/ip
见闻小天地14 小时前
新手入门:印刷包装设备的伺服和PLC运动控制方案各管什么?七步选型讲清楚
运维·网络·数据库·人工智能
father_122714 小时前
Greenplum 集群故障恢复与主备同步机制实战
linux·网络·greenplum
中电金信16 小时前
开发更高效、监控更实时、运维更省心,源启数据开发平台构筑一站式数据开发新底座
网络·数据库·人工智能