Skip to content

Commit c4d4790

Browse files
authored
[xcvrd] refactor Y-Cable firmware information to conform with all vendors (sonic-net#171)
This PR refactors the firmware information MUX_CABLE_INFO output to return the following fields for each target. { "version_active": "", "version_inactive": "", "version_next": "", } So by calling this for all the 3 MCU's TOR1, TOR2 and NIC we can get the below result. which would be stored in state db table MUX_CABLE_INFO { "version_nic_active": "0.6MS", "version_nic_inactive": "0.5MS", "version_nic_next": "0.6MS", "version_self_active": "0.5MS", "version_self_inactive": "0.6MS", "version_self_next": "0.6MS", "version_peer_active": "0.6MS", "version_peer_inactive": "0.6MS", "version_peer_next": "0.6MS", } Signed-off-by: vaibhav-dahiya <[email protected]>
1 parent be7f4e1 commit c4d4790

File tree

2 files changed

+29
-84
lines changed

2 files changed

+29
-84
lines changed

sonic-xcvrd/tests/test_xcvrd.py

+9-30
Original file line numberDiff line numberDiff line change
@@ -242,36 +242,15 @@ def test_init_port_sfp_status_tbl(self):
242242
'internal_voltage': '3.3',
243243
'nic_temperature': '20',
244244
'nic_voltage': '2.7',
245-
'build_slot1_nic': 'MS',
246-
'build_slot2_nic': 'MS',
247-
'version_slot1_nic': '1.7',
248-
'version_slot2_nic': '1.7',
249-
'run_slot1_nic': 'True',
250-
'run_slot2_nic': 'False',
251-
'commit_slot1_nic': 'True',
252-
'commit_slot2_nic': 'False',
253-
'empty_slot1_nic': 'True',
254-
'empty_slot2_nic': 'False',
255-
'build_slot1_tor_self': 'MS',
256-
'build_slot2_tor_self': 'MS',
257-
'version_slot1_tor_self': '1.7',
258-
'version_slot2_tor_self': '1.7',
259-
'run_slot1_tor_self': 'True',
260-
'run_slot2_tor_self': 'False',
261-
'commit_slot1_tor_self': 'True',
262-
'commit_slot2_tor_self': 'False',
263-
'empty_slot1_tor_self': 'True',
264-
'empty_slot2_tor_self': 'False',
265-
'build_slot1_tor_peer': 'MS',
266-
'build_slot2_tor_peer': 'MS',
267-
'version_slot1_tor_peer': '1.7',
268-
'version_slot2_tor_peer': '1.7',
269-
'run_slot1_tor_peer': 'True',
270-
'run_slot2_tor_peer': 'False',
271-
'commit_slot1_tor_peer': 'True',
272-
'commit_slot2_tor_peer': 'False',
273-
'empty_slot1_tor_peer': 'True',
274-
'empty_slot2_tor_peer': 'False'}))
245+
'version_nic_active': '1.6MS',
246+
'version_nic_inactive': '1.7MS',
247+
'version_nic_next': '1.7MS',
248+
'version_self_active': '1.6MS',
249+
'version_self_inactive': '1.7MS',
250+
'version_self_next': '1.7MS',
251+
'version_peer_active': '1.6MS',
252+
'version_peer_inactive': '1.7MS',
253+
'version_peer_next': '1.7MS'}))
275254
def test_post_port_mux_info_to_db(self):
276255
logical_port_name = "Ethernet0"
277256
mux_tbl = Table("STATE_DB", y_cable_helper.MUX_CABLE_INFO_TABLE)

sonic-xcvrd/xcvrd/xcvrd_utilities/y_cable_helper.py

+20-54
Original file line numberDiff line numberDiff line change
@@ -542,27 +542,14 @@ def get_firmware_dict(physical_port, target, side, mux_info_dict):
542542
result = y_cable.get_firmware_version(physical_port, target)
543543

544544
if result is not None and isinstance(result, dict):
545-
mux_info_dict[("build_slot1_{}".format(side))] = result.get("build_slot1", None)
546-
mux_info_dict[("version_slot1_{}".format(side))] = result.get("version_slot1", None)
547-
mux_info_dict[("build_slot2_{}".format(side))] = result.get("build_slot2", None)
548-
mux_info_dict[("version_slot2_{}".format(side))] = result.get("version_slot2", None)
549-
mux_info_dict[("run_slot1_{}".format(side))] = result.get("run_slot1", None)
550-
mux_info_dict[("run_slot2_{}".format(side))] = result.get("run_slot2", None)
551-
mux_info_dict[("commit_slot1_{}".format(side))] = result.get("commit_slot1", None)
552-
mux_info_dict[("commit_slot2_{}".format(side))] = result.get("commit_slot2", None)
553-
mux_info_dict[("empty_slot1_{}".format(side))] = result.get("empty_slot1", None)
554-
mux_info_dict[("empty_slot2_{}".format(side))] = result.get("empty_slot2", None)
545+
mux_info_dict[("version_{}_active".format(side))] = result.get("version_active", None)
546+
mux_info_dict[("version_{}_inactive".format(side))] = result.get("version_inactive", None)
547+
mux_info_dict[("version_{}_next".format(side))] = result.get("version_next", None)
548+
555549
else:
556-
mux_info_dict[("build_slot1_{}".format(side))] = "N/A"
557-
mux_info_dict[("version_slot1_{}".format(side))] = "N/A"
558-
mux_info_dict[("build_slot2_{}".format(side))] = "N/A"
559-
mux_info_dict[("version_slot2_{}".format(side))] = "N/A"
560-
mux_info_dict[("run_slot1_{}".format(side))] = "N/A"
561-
mux_info_dict[("run_slot2_{}".format(side))] = "N/A"
562-
mux_info_dict[("commit_slot1_{}".format(side))] = "N/A"
563-
mux_info_dict[("commit_slot2_{}".format(side))] = "N/A"
564-
mux_info_dict[("empty_slot1_{}".format(side))] = "N/A"
565-
mux_info_dict[("empty_slot2_{}".format(side))] = "N/A"
550+
mux_info_dict[("version_{}_active".format(side))] = "N/A"
551+
mux_info_dict[("version_{}_inactive".format(side))] = "N/A"
552+
mux_info_dict[("version_{}_next".format(side))] = "N/A"
566553

567554

568555
def get_muxcable_info(physical_port, logical_port_name):
@@ -715,11 +702,11 @@ def get_muxcable_info(physical_port, logical_port_name):
715702

716703
get_firmware_dict(physical_port, 0, "nic", mux_info_dict)
717704
if read_side == 1:
718-
get_firmware_dict(physical_port, 1, "tor_self", mux_info_dict)
719-
get_firmware_dict(physical_port, 2, "tor_peer", mux_info_dict)
705+
get_firmware_dict(physical_port, 1, "self", mux_info_dict)
706+
get_firmware_dict(physical_port, 2, "peer", mux_info_dict)
720707
else:
721-
get_firmware_dict(physical_port, 1, "tor_peer", mux_info_dict)
722-
get_firmware_dict(physical_port, 2, "tor_self", mux_info_dict)
708+
get_firmware_dict(physical_port, 1, "peer", mux_info_dict)
709+
get_firmware_dict(physical_port, 2, "self", mux_info_dict)
723710

724711
res = y_cable.get_internal_voltage_temp(physical_port)
725712

@@ -879,36 +866,15 @@ def post_port_mux_info_to_db(logical_port_name, table):
879866
('internal_voltage', str(mux_info_dict["internal_voltage"])),
880867
('nic_temperature', str(mux_info_dict["nic_temperature"])),
881868
('nic_voltage', str(mux_info_dict["nic_voltage"])),
882-
('build_slot1_nic', str(mux_info_dict["build_slot1_nic"])),
883-
('build_slot2_nic', str(mux_info_dict["build_slot2_nic"])),
884-
('version_slot1_nic', str(mux_info_dict["version_slot1_nic"])),
885-
('version_slot2_nic', str(mux_info_dict["version_slot2_nic"])),
886-
('run_slot1_nic', str(mux_info_dict["run_slot1_nic"])),
887-
('run_slot2_nic', str(mux_info_dict["run_slot2_nic"])),
888-
('commit_slot1_nic', str(mux_info_dict["commit_slot1_nic"])),
889-
('commit_slot2_nic', str(mux_info_dict["commit_slot2_nic"])),
890-
('empty_slot1_nic', str(mux_info_dict["empty_slot1_nic"])),
891-
('empty_slot2_nic', str(mux_info_dict["empty_slot2_nic"])),
892-
('build_slot1_tor_self', str(mux_info_dict["build_slot1_tor_self"])),
893-
('build_slot2_tor_self', str(mux_info_dict["build_slot2_tor_self"])),
894-
('version_slot1_tor_self', str(mux_info_dict["version_slot1_tor_self"])),
895-
('version_slot2_tor_self', str(mux_info_dict["version_slot2_tor_self"])),
896-
('run_slot1_tor_self', str(mux_info_dict["run_slot1_tor_self"])),
897-
('run_slot2_tor_self', str(mux_info_dict["run_slot2_tor_self"])),
898-
('commit_slot1_tor_self', str(mux_info_dict["commit_slot1_tor_self"])),
899-
('commit_slot2_tor_self', str(mux_info_dict["commit_slot2_tor_self"])),
900-
('empty_slot1_tor_self', str(mux_info_dict["empty_slot1_tor_self"])),
901-
('empty_slot2_tor_self', str(mux_info_dict["empty_slot2_tor_self"])),
902-
('build_slot1_tor_peer', str(mux_info_dict["build_slot1_tor_peer"])),
903-
('build_slot2_tor_peer', str(mux_info_dict["build_slot2_tor_peer"])),
904-
('version_slot1_tor_peer', str(mux_info_dict["version_slot1_tor_peer"])),
905-
('version_slot2_tor_peer', str(mux_info_dict["version_slot2_tor_peer"])),
906-
('run_slot1_tor_peer', str(mux_info_dict["run_slot1_tor_peer"])),
907-
('run_slot2_tori_peer', str(mux_info_dict["run_slot2_tor_peer"])),
908-
('commit_slot1_tor_peer', str(mux_info_dict["commit_slot1_tor_peer"])),
909-
('commit_slot2_tor_peer', str(mux_info_dict["commit_slot2_tor_peer"])),
910-
('empty_slot1_tor_peer', str(mux_info_dict["empty_slot1_tor_peer"])),
911-
('empty_slot2_tor_peer', str(mux_info_dict["empty_slot2_tor_peer"]))
869+
('version_self_active', str(mux_info_dict["version_self_active"])),
870+
('version_self_inactive', str(mux_info_dict["version_self_inactive"])),
871+
('version_self_next', str(mux_info_dict["version_self_next"])),
872+
('version_peer_active', str(mux_info_dict["version_peer_active"])),
873+
('version_peer_inactive', str(mux_info_dict["version_peer_inactive"])),
874+
('version_peer_next', str(mux_info_dict["version_peer_next"])),
875+
('version_nic_active', str(mux_info_dict["version_nic_active"])),
876+
('version_nic_inactive', str(mux_info_dict["version_nic_inactive"])),
877+
('version_nic_next', str(mux_info_dict["version_nic_next"]))
912878
])
913879
table.set(logical_port_name, fvs)
914880
else:

0 commit comments

Comments
 (0)