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

相关推荐
fpcc16 小时前
c++应用网络编程之十七WebSocket
网络·c++·websocket
小白学大数据16 小时前
把 Modbus 轮询塞进 Trio 的异步循环:内存映射与定时采集实战
网络·python·搜索引擎
让学习成为一种生活方式16 小时前
烟草生产功能性 MHC II 蛋白--Plant Biotechnology Journal
网络
weixin_7275356216 小时前
HTTP 八股文:从三次握手到浏览器渲染的硬核拆解
网络·网络协议·http
Ivan CloudBay16 小时前
网站为什么会使用缓存?
服务器·网络·缓存·云服务器
懂好多的工业电源工程师18 小时前
F2424S-1WR3 适配优选 钡特电源 DF1-24S24LS|1W 工业24V转24V模块电源参数技术性能解析
网络·人工智能·电源模块
kaixin_learn_qt_ing19 小时前
单网卡绑定多个 IP 地址
网络·网络协议·tcp/ip
for_ever_love__19 小时前
iOS: 网络请求第三方库的使用: AFNetworking
网络·学习·ios·objective-c·cocoa·xcode
摇曳的精灵19 小时前
HTTP 与 MCP:不是替代,而是分层
网络·网络协议·http·mcp
志栋智能20 小时前
超自动化安全中的自适应防护与自愈能力
网络·安全·自动化