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

相关推荐
网络研究院7 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智7 天前
ARP代理--工作原理
运维·网络·arp·arp代理
treesforest7 天前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
shushangyun_7 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
2601_961845157 天前
粉笔行测题库|系统班|刷题
网络·百度·微信·微信公众平台·facebook·新浪微博
程序猿阿伟7 天前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome
InHand云飞小白7 天前
无人值守站点网络困境?工业级路由器IR315破解连接难题
网络·物联网·4g·工业路由器·4g路由器·iiot·蜂窝路由器
森G7 天前
75、服务器源码解析---------云视频服务项目
linux·服务器·网络·c++·qt
江华森7 天前
TCP/IP 协议栈实战 — 7 个实验详解
网络·tcp/ip·智能路由器
酉鬼女又兒7 天前
零基础入门计算机网络运输层:端到端通信核心作用、端口号分类规则、复用分用工作机制及UDP与TCP协议全方位对比详解
网络·网络协议·tcp/ip·计算机网络·考研·udp·php