Command Line Reference
Interface Configuration
Transceiver
14 min
transceiver view transceiver view table 1 transceiver view table 1 transceiver view command purpose show interface transceiver \[ ethernet interface name ] { eeprom \[ detail ]| lpmode | presence } display optical module information of interfaces show interface transceiver \[ethernet show interface transceiver \[ethernet interface name ] {eeprom \[detail]|lpmode|presence} \[command] show interface transceiver \[ ethernet interface name ] { eeprom \[ detail ]| lpmode | presence } \[purpose] display optical module information of interfaces \[parameters] parameter description interface name interface name (eg 0/1) \[view] privileged user view \[use cases] sonic# show interface transceiver ethernet 0/0 eeprom detail 0/0 sfp eeprom detected connector mpox12 encoding nrz extended identifier power class 4(3 5w max), cdr present in rx tx extended rateselect compliance unknown identifier qsfp28 or later length cable assembly(m) 50 nominal bit rate(100mbs) 255 specification compliance vendor date code(yyyy mm dd lot) 2022 07 08 vendor name teraspek vendor oui 00 00 00 vendor pn tsq885s101t1 vendor rev 00 vendor sn 22070073 channelmonitorvalues rx1power 0 8422dbm rx2power 0 6971dbm rx3power 1 6414dbm rx4power 1 1458dbm tx1bias 6 0740ma tx2bias 6 2960ma tx3bias 5 9220ma tx4bias 6 5100ma channelthresholdvalues rxpowerhighalarm 4 4000dbm rxpowerhighwarning 3 4001dbm rxpowerlowalarm 13 2975dbm rxpowerlowwarning 10 3012dbm txbiashighalarm 10 0000ma txbiashighwarning 8 5000ma txbiaslowalarm 2 0000ma txbiaslowwarning 3 0000ma modulemonitorvalues temperature 32 9570c vcc 3 2961volts modulethresholdvalues temphighalarm 75 0000c temphighwarning 70 0000c templowalarm 5 0000c templowwarning 0 0000c vcchighalarm 3 6300volts vcchighwarning 3 4650volts vcclowalarm 2 9700volts vcclowwarning 3 1350volts transceiver config transceiver config table 2 transceiver config table 2 transceiver config command purpose cmis enable enable cmis management lpmode on enable low power consumption of the interface transceiver frequency frequency configure the frequency of the optical module transceiver transmitter signal power power configure the signal transmission power of the optical module cmis enable cmis enable \[command] cmis enable \[purpose] enable cmis management \[view] global configuration view \[notes] this command is designed for optical modules that support cmis protocol to improve the stability of interface signal by importing a json file, customizing and modifying the signal integrity configuration of the cmis optical module, then enable cmis management after restarting the device after enabling this function for about 5 minutes, the si information of the configured cmis optical module can be read normally run command no cmis enable to disable cmis management executing enable and disable commands will cause down/up of optical modules that support cmis protocol but will not affect optical modules that do not support cmis protocol \[use cases] step 1 show the information of the optical module, find the vendor name and vendor pn information spine# show interface transceiver ethernet 0/128 eeprom detail 0/128 sfp eeprom detected active app selection host lane 1 1 active app selection host lane 2 1 active app selection host lane 3 1 active app selection host lane 4 1 active app selection host lane 5 1 active app selection host lane 6 1 active app selection host lane 7 1 active app selection host lane 8 1 application advertisement 400gaui 8 c2m (annex 120e) host assign (0x1) active cable assembly with ber < 2 6x10^ 4 media assign (0x1) cmis revision 4 0 connector no separable connector encoding n/a extended identifier power class 4 (8 0w max) extended rateselect compliance n/a hardware revision 1 0 host electrical interface 400gaui 8 c2m (annex 120e) host lane assignment options 1 host lane count 8 identifier qsfp dd double density 8x pluggable transceiver length cable assembly(m) 3 0 media interface code active cable assembly with ber < 2 6x10^ 4 media interface technology 850 nm vcsel media lane assignment options 1 media lane count 8 nominal bit rate(100mbs) 0 specification compliance active cable media interface supported max laser frequency n/a ghz supported max tx power 0 0 dbm supported min laser frequency n/a ghz supported min tx power 0 0 dbm vendor date code(yyyy mm dd lot) 2023 08 19 vendor name oem vendor oui 00 00 00 vendor pn qsfpdd 400g aoc vendor rev 10 vendor sn sn23080288 active firmware version n/a inactive firmware version n/a channelmonitorvalues rx1power 1 69dbm rx2power 1 686dbm rx3power 1 598dbm rx4power 1 59dbm rx5power 1 014dbm rx6power 1 257dbm rx7power 1 182dbm rx8power 1 239dbm tx1bias 7 474ma tx1power 0 678dbm tx2bias 7 466ma tx2power 0 612dbm tx3bias 7 46ma tx3power 0 66dbm tx4bias 7 44ma tx4power 0 662dbm tx5bias 7 48ma tx5power 0 658dbm tx6bias 7 472ma tx6power 0 591dbm tx7bias 7 456ma tx7power 0 64dbm tx8bias 7 45ma tx8power 0 642dbm modulemonitorvalues temperature 44 004c vcc 3 251volts channelthresholdvalues rxpowerhighalarm 7 0dbm rxpowerhighwarning 4 0dbm rxpowerlowalarm 10 0dbm rxpowerlowwarning 7 001dbm txbiashighalarm 12 0ma txbiashighwarning 10 0ma txbiaslowalarm 2 0ma txbiaslowwarning 4 0ma txpowerhighalarm 7 0dbm txpowerhighwarning 4 0dbm txpowerlowalarm 9 5dbm txpowerlowwarning 6 501dbm modulethresholdvalues temphighalarm 80 0c temphighwarning 70 0c templowalarm 10 0c templowwarning 0 0c vcchighalarm 3 63volts vcchighwarning 3 465volts vcclowalarm 2 97volts vcclowwarning 3 135volts check the interface status and read the alias number of the interface spine# show interface summary interface lanes speed mtu fec alias vlan oper admin type asym pfc \ 0/0 217,218,219,220,221,222,223,224 400g 9216 rs qc1 trunk down up qsfp dd double density 8x pluggable transceiver n/a 0/8 209,210,211,212 100g 9216 rs qc2 trunk down up n/a n/a 0/16 249,250,251,252 100g 9216 rs qc3 trunk down up n/a n/a 0/24 241,242,243,244 100g 9216 rs qc4 routed down up n/a n/a 0/32 233,234,235,236 100g 9216 rs qc5 routed down up n/a n/a 0/40 225,226,227,228,229,230,231,232 400g 9216 rs qc6 trunk down up qsfp dd double density 8x pluggable transceiver n/a 0/48 201,202,203,204 100g 9216 rs qc7 lag48 up up qsfp28 or later n/a 0/56 193,194,195,196 100g 9216 rs qc8 lag56 up up qsfp28 or later n/a 0/64 185,186,187,188 100g 9216 rs qc9 lag64 up up qsfp28 or later n/a 0/72 177,178,179,180 100g 9216 rs qc10 lag72 up up qsfp28 or later n/a 0/80 169,170,171,172 100g 9216 rs qc11 routed up up qsfp28 or later n/a 0/88 161,162,163,164 100g 9216 rs qc12 routed up up qsfp28 or later n/a 0/96 153,154,155,156 100g 9216 rs qc13 routed up up qsfp28 or later n/a 0/104 145,146 100g 9216 rs qc14 routed down up n/a n/a 0/112 137,138,139,140 100g 9216 rs qc15 trunk down up n/a n/a 0/120 129,130,131,132 100g 9216 rs qc16 trunk down up n/a n/a 0/128 121,122,123,124,125,126,127,128 400g 9216 rs qc17 routed up up qsfp dd double density 8x pluggable transceiver n/a 0/136 113,114,115,116,117,118,119,120 400g 9216 rs qc18 routed up up qsfp dd double density 8x pluggable transceiver n/a 0/144 105,106,107,108,109,110,111,112 400g 9216 rs qc19 routed down up n/a n/a 0/152 97,98,99,100,101,102,103,104 400g 9216 rs qc20 routed down up n/a n/a 0/160 89,90,91,92 100g 9216 rs qc21 routed down up n/a n/a 0/168 81,82,83,84 100g 9216 rs qc22 routed up up qsfp28 or later n/a 0/176 65,66,67,68 100g 9216 rs qc23 routed down up n/a n/a 0/184 73,74,75,76,77,78,79,80 400g 9216 rs qc24 routed down up qsfp dd double density 8x pluggable transceiver n/a 0/192 49,50,51,52,53,54,55,56 400g 9216 rs qc25 routed down up n/a n/a 0/200 57,58,59,60 100g 9216 rs qc26 routed down up n/a n/a 0/208 17,18,19,20 100g 9216 rs qc27 routed down up qsfp28 or later n/a 0/216 25,26,27,28 100g 9216 rs qc28 routed up up qsfp28 or later n/a 0/224 1,2,3,4 100g 9216 rs qc29 trunk down up n/a n/a 0/232 9,10,11,12 100g 9216 rs qc30 routed down up qsfp28 or later n/a 0/240 33,34,35,36 100g 9216 rs qc31 routed down up qsfp+ or later with cmis n/a 0/248 41,42,43,44 100g 9216 rs qc32 routed down up n/a n/a 0/256 258 10g 9216 none x1 lag47 up up sfp/sfp+/sfp28 n/a 0/257 257 10g 9216 none x2 routed down up sfp/sfp+/sfp28 n/a find the corresponding i2c bus number based on the alias number and read the optical module parameter information based on the i2c bus number the method of mapping the alias number to the i2c bus number varies depending on the device for cx73q n devices, the alias number is mapped to the i2c bus number by adding 1, while for cx864e n devices, the alias number is mapped to the i2c bus number by adding 5, the first 32 ports of the cx664d n device correspond to i2c bus numbers 3, 4, 5, 6, 11, 12, 13, 14, 19, 20, 21, 22, 27, 28, 29, 30, 35, 36, 37, 38, 43, 44, 45, 46, 51, 52, 53, 54, 59, 60, 61, 62 in sequence the i2c bus numbers corresponding to the last 32 ports are 10, 9, 8, 7, 18, 17, 16, 15, 26,25, 24, 23, 34, 33, 32, 31, 42, 41, 40, 39, 50, 49, 48, 47, 58, 57, 56, 55,66, 65, 64, and 63 step2 in bash mode, create a json file containing si configuration based on information such as the optical module model, manufacturer, number and speed of lanes, and alias number of interfaces, where the manufacturer name needs to be capitalized taking interface 0/128 of cx732q n device as an example, according to the information read above, vendor name is oem, vendor pn is qsfpdd 400g aoc, the number of lanes is 8, the speed of the optical module is 400g, and the speed of each lane is 100g the alias number of the interface is 17, and the mapped i2c bus number is 18 admin\@sonic $ sudo cat optics si settings json { "global media settings" { "0 31" { "50g speed" { "oem qsfpdd 400g aoc" { "outputeqprecursortargetrx" { "outputeqprecursortargetrx1" 0, "outputeqprecursortargetrx2" 0, "outputeqprecursortargetrx3" 0, "outputeqprecursortargetrx4" 0, "outputeqprecursortargetrx5" 0, "outputeqprecursortargetrx6" 0, "outputeqprecursortargetrx7" 0, "outputeqprecursortargetrx8" 0 }, "outputeqpostcursortargetrx" { "outputeqpostcursortargetrx1" 2, "outputeqpostcursortargetrx2" 2, "outputeqpostcursortargetrx3" 2, "outputeqpostcursortargetrx4" 2, "outputeqpostcursortargetrx5" 2, "outputeqpostcursortargetrx6" 2, "outputeqpostcursortargetrx7" 2, "outputeqpostcursortargetrx8" 2 }, "outputamplitudetargetrx" { "outputamplitudetargetrx1" 1, "outputamplitudetargetrx2" 1, "outputamplitudetargetrx3" 1, "outputamplitudetargetrx4" 1, "outputamplitudetargetrx5" 1, "outputamplitudetargetrx6" 1, "outputamplitudetargetrx7" 1, "outputamplitudetargetrx8" 1 }, "adaptiveinputeqenabletx" { "adaptiveinputeqenabletx1" 0, "adaptiveinputeqenabletx2" 0, "adaptiveinputeqenabletx3" 0, "adaptiveinputeqenabletx4" 0, "adaptiveinputeqenabletx5" 0, "adaptiveinputeqenabletx6" 0, "adaptiveinputeqenabletx7" 0, "adaptiveinputeqenabletx8" 0 }, "adaptiveinputeqrecalledtx" { "adaptiveinputeqrecalledtx1" 1, "adaptiveinputeqrecalledtx2" 1, "adaptiveinputeqrecalledtx3" 1, "adaptiveinputeqrecalledtx4" 1, "adaptiveinputeqrecalledtx5" 1, "adaptiveinputeqrecalledtx6" 1, "adaptiveinputeqrecalledtx7" 1, "adaptiveinputeqrecalledtx8" 1 }, "fixedinputeqtargettx" { "fixedinputeqtargettx1" 2, "fixedinputeqtargettx2" 2, "fixedinputeqtargettx3" 2, "fixedinputeqtargettx4" 2, "fixedinputeqtargettx5" 2, "fixedinputeqtargettx6" 2, "fixedinputeqtargettx7" 2, "fixedinputeqtargettx8" 2 } } } } }, "port media settings" { "17" { "50g speed" { "oem qsfpdd 400g aoc" { "outputeqprecursortargetrx" { "outputeqprecursortargetrx1" 0, "outputeqprecursortargetrx2" 0, "outputeqprecursortargetrx3" 0, "outputeqprecursortargetrx4" 0, "outputeqprecursortargetrx5" 0, "outputeqprecursortargetrx6" 0, "outputeqprecursortargetrx7" 0, "outputeqprecursortargetrx8" 0 }, "outputeqpostcursortargetrx" { "outputeqpostcursortargetrx1" 2, "outputeqpostcursortargetrx2" 2, "outputeqpostcursortargetrx3" 2, "outputeqpostcursortargetrx4" 2, "outputeqpostcursortargetrx5" 2, "outputeqpostcursortargetrx6" 2, "outputeqpostcursortargetrx7" 2, "outputeqpostcursortargetrx8" 2 }, "outputamplitudetargetrx" { "outputamplitudetargetrx1" 1, "outputamplitudetargetrx2" 1, "outputamplitudetargetrx3" 1, "outputamplitudetargetrx4" 1, "outputamplitudetargetrx5" 1, "outputamplitudetargetrx6" 1, "outputamplitudetargetrx7" 1, "outputamplitudetargetrx8" 1 }, "adaptiveinputeqenabletx" { "adaptiveinputeqenabletx1" 0, "adaptiveinputeqenabletx2" 0, "adaptiveinputeqenabletx3" 0, "adaptiveinputeqenabletx4" 0, "adaptiveinputeqenabletx5" 0, "adaptiveinputeqenabletx6" 0, "adaptiveinputeqenabletx7" 0, "adaptiveinputeqenabletx8" 0 }, "adaptiveinputeqrecalledtx" { "adaptiveinputeqrecalledtx1" 1, "adaptiveinputeqrecalledtx2" 1, "adaptiveinputeqrecalledtx3" 1, "adaptiveinputeqrecalledtx4" 1, "adaptiveinputeqrecalledtx5" 1, "adaptiveinputeqrecalledtx6" 1, "adaptiveinputeqrecalledtx7" 1, "adaptiveinputeqrecalledtx8" 1 }, "fixedinputeqtargettx" { "fixedinputeqtargettx1" 2, "fixedinputeqtargettx2" 2, "fixedinputeqtargettx3" 2, "fixedinputeqtargettx4" 2, "fixedinputeqtargettx5" 2, "fixedinputeqtargettx6" 2, "fixedinputeqtargettx7" 2, "fixedinputeqtargettx8" 2 } } } } } } step 3 place the json file in the specified directory and restart the device admin\@sonic $ sudo mv optics si settings json /usr/share/sonic/device/x86 64 asterfusion cx732q n r0/cx732q n tl07e02/ admin\@sonic $ sudo /etc/sku setup x86 64 asterfusion cx732q n r0 admin\@sonic $ sudo config reload y step 4 after the device returns to normal, enable cmis management and wait for about 5 minutes for the configuration information to be updated to the optical module data sonic# configure sonic(config)# cmis enable step 5 the si information of the optical module can be read through i2c to verify whether the configuration is effective each si parameter supports modification and specific address values refer to the table below first, confirm whether the bit corresponding to support is 1 if it is 1, it indicates support for configuring this parameter continue to check whether the value on the address of the corresponding field is consistent with the value in the configuration file if it is 0, it indicates that this parameter is not supported for configuration when setting parameter values, they cannot exceed the value of the address corresponding to max table 3 optical module si parameter address table table 3 optical module si parameter address table filed description page address active apsel hostlane host channel application selection 11h 0xd5\[7 4] 0xce\[7 4] outputeqprecursortargetrx (support) 01h 0xa2\[3] outputeqprecursortargetrx(max) 01h 0x9a\[3 0] outputeqprecursortargetrx 10h 0xa5\[7 0] 0xa2\[7 0]\( every four bits correspond to one lane) outputeqpostcursortargetrx (support) 01h 0xa2\[4] outputeqpostcursortargetrx(max) 01h 0x9a\[7 4] outputeqpostcursortargetrx 10h 0xa9\[7 0] 0xa6\[7 0]\( every four bits correspond to one lane) outputamplitudetargetrx(support) 01h 0xa2\[2] outputamplitudetargetrx(max) 01h 0x99\[7 4] outputamplitudetargetrx 10h 0xad\[7 0] 0xaa\[7 0]\( every four bits correspond to one lane) adaptiveinputeqenabletx(support) 01h 0xa1\[3] adaptiveinputeqenabletx 10h 0x99\[7 0]\( each bit corresponds to a lane)(only 0 or 1) adaptiveinputeqrecalledtx (support) 01h 0xa1\[5],0xa1\[6]\( one of them is 1, which means support) adaptiveinputeqrecalledtx 10h 0x9b\[7 0] 0x9a\[7 0]\( every two bits correspond to a lane) fixedinputeqtargettx(support) 01h 0xa1\[2] fixedinputeqtargettx 10h 0x9f\[7 0] 0x9c\[7 0]\( every four bits correspond to one lane) read the data on page 1 of i2c and determine whether the current module supports configuring this parameter based on the supported addresses of the fields in the table above taking the reading of the outputeqprecursortarget rx parameter as an example, according to the table above, the support bit for the parameter outputeqprecursortarget rx is located on page 1 of the i2c data, at 0xa2 \[3] admin\@spine $ sudo i2cset f y 18 0x50 0x7f 0x1 admin\@spine $ sudo i2cdump f y 18 0x50 no size specified (using byte data access) 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef 00 18 40 00 06 ff 00 00 00 00 00 00 00 00 00 29 b0 ?@ ? )? 10 7e fe 00 00 00 00 00 00 00 00 20 00 00 00 00 00 ? 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 00 00 04 11 03 88 01 ff 00 00 00 00 00 ????? 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 ? 80 00 00 01 00 00 00 00 00 00 00 42 68 07 d0 24 f0 ? bh??$? 90 55 20 46 00 00 00 9d 78 00 42 00 2a 02 07 06 03 u f ?x b \\ ???? a0 07 09 0d 00 00 00 80 57 55 00 00 00 00 00 00 00 ??? ?wu b0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ? c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2e after reading the first page of data, the value of a2 is 09, the corresponding binary is 0000 1001, and the value of 0xa2 \[3] is 1, indicating that this parameter supports configuration if setting parameter values is supported, read the data on page 10 of i2c, determine the actual effective value of the parameters, and compare it with the configuration values in the json file according to the table above, the address bits of this parameter value are in the range of 0xa5 \[7 0] 0xa2 \[7 0], and every four bits correspond to the value of a lane admin\@spine $ sudo i2cset f y 18 0x50 0x7f 0x10 admin\@spine $ sudo i2cdump f y 18 0x50 no size specified (using byte data access) ` `0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef 00 18 40 00 06 ff 00 00 00 00 00 00 00 00 00 2b b7 ?@ ? +? 10 7f 12 00 00 00 00 00 00 00 00 20 00 00 00 00 00 ?? 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 00 00 04 11 03 88 01 ff 00 00 00 00 00 ????? 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 ? 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 00 11 11 11 11 11 11 11 11 00 00 00 33 33 33 33 ???????? 3333 a0 ff ff 00 00 00 00 00 00 00 00 11 11 11 11 00 00 ???? b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 reading the data on page 10, the values from 0xa2 to 0xa5 are all 00, corresponding to binary values of 0000 0000 0000 0000 0000 0000 0000 each four bits corresponds to a lane value, and all lane values are 0, consistent with the configuration in the json file continue reading the outputeqpostcursortarget rx parameter value, with a support bit of 0xa2 \[4] based on the data read above, a2 is 09 and 0xa2 \[4] is 0, indicating that this parameter does not support modification lpmode on lpmode on \[command] lpmode on \[purpose] enable low power consumption of the interface \[view] physical interface configuration view \[notes] this feature is turned off by default run command lpmode off to disable low power mode \[use cases] sonic# configure terminal sonic(config)# interface ethernet 0/0 sonic(config if 0/0)# lpmode on transceiver frequency transceiver frequency frequency \[command] transceiver frequency frequency \[purpose] configure the frequency of the optical module \[parameters] parameter description frequency laser frequency, in ghz, with a value range of 1 4294967295 \[view] physical interface configuration view \[notes] run command no transceiver frequency to remove the configured operating frequency of the optical module \[use cases] sonic# configure terminal sonic(config)# interface ethernet 0/0 sonic(config if 0/0)# transceiver frequency 100 transceiver transmitter signal power transceiver transmitter signal power power \[command] transceiver transmitter signal power power \[purpose] configure the signal transmission power of the optical module \[parameters] parameter description power signal transmission power, in dbm, with a value range of 327 68 327 67 \[view] physical interface configuration view \[notes] run command no transceiver transmitter signal power to remove the configured optical module emission power \[use cases] sonic# configure terminal sonic(config)# interface ethernet 0/0 sonic(config if 0/0)# transceiver transmitter signal power 100
