def set_interface_led(interface_obj): if_obj = cps_object.CPSObject(obj=interface_obj) npu = if_obj.get_attr_data('base-if-phy/if/interfaces/interface/npu-id') port = if_obj.get_attr_data('base-if-phy/if/interfaces/interface/port-id') speed = if_obj.get_attr_data('dell-if/if/interfaces/interface/speed') hwport_details = nas_if.get_hwport_from_phy_port(npu, port) fp_port = nas_if.get_fp_from_hw_port(npu, hwport_details.hw_port) media_id = nas_if.get_media_id_from_fp_port(fp_port) media.media_led_set(1, media_id, 0, speed)
def set_interface_media_speed(interface_obj, speed=None): try: if_obj = cps_object.CPSObject(obj=interface_obj) npu = if_obj.get_attr_data( 'base-if-phy/if/interfaces/interface/npu-id') port = if_obj.get_attr_data( 'base-if-phy/if/interfaces/interface/port-id') if speed is None: speed = if_obj.get_attr_data( 'dell-if/if/interfaces/interface/speed') hwport_details = nas_if.get_hwport_from_phy_port(npu, port) if hwport_details is None: nas_if.log_info("Hw port not present") return fp_port, subport_id = nas_if.get_subport_id_from_hw_port( npu, hwport_details.hw_port) media_id = nas_if.get_media_id_from_fp_port(fp_port) media.media_led_set(1, media_id, subport_id, speed) except: nas_if.log_info("Failure in setting interface media speed")
def set_intf_request(pas_media_obj): try: media_id = pas_media_obj.get_attr_data('port') display_str = pas_media_obj.get_attr_data( 'base-pas/media/display-string') except: nas_if.log_info("Media String is not present in the media event") return # fetch FP info from media ID o = cps_object.CPSObject( module='base-if-phy/front-panel-port', data={'base-if-phy/front-panel-port/media-id': media_id}) l = [] fp_utils.gen_fp_port_list(o, l) if len(l) == 0: nas_if.log_err("No such port found... for media " + str(media_id)) return #fetching 2 front panel port object from 1 phy media id for QSFP28-DD ports port_list = [] for fp_obj in l: obj = cps_object.CPSObject(obj=fp_obj) if nas_comm.yang.get_value('fp_key', 'keys_id') == obj.get_key(): port_list = port_list + nas_if.physical_ports_for_front_panel_port( obj) if len(port_list) == 0: nas_if.log_err("There are no physical ports for front panel port ") nas_if.log_err(str(l[0])) return # create interface set RPC obj for each phy port in the list and send it for p in port_list: npu = p.get_attr_data('npu-id') port = p.get_attr_data('port-id') process_media_event(npu, port, pas_media_obj) hwport_list = p.get_attr_data('hardware-port-list') nas_if.log_info("send if obj for media id set for phy port " + str(port)) ifobj = cps_object.CPSObject( module='dell-base-if-cmn/if/interfaces/interface', data={ 'base-if-phy/if/interfaces/interface/npu-id': npu, 'base-if-phy/if/interfaces/interface/port-id': port, 'if/interfaces/interface/type': "ianaift:ethernetCsmacd" }) if if_lib.set_media_setting(None, ifobj) == False: return ch = {'operation': 'set', 'change': ifobj.get()} cps.transaction([ch]) if_name = if_config.if_config_get_by_npu_port(npu, port) config = if_config.if_config_get(if_name) speed = config.get_speed() if_details = nas_if.nas_os_if_list( d={'if/interfaces/interface/name': if_name}) enable = ba.from_ba( if_details[0]['data']['if/interfaces/interface/enabled'], "uint64_t") for hwport in hwport_list: fp_details = fp.find_port_by_hwport(npu, hwport) if fp_details.port_group_id is None: _lane = fp_details.lane else: pg_list = fp.get_port_group_list() pg_obj = pg_list[fp_details.port_group_id] if ((pg_obj.get_profile_type()) == "ethernet_ddqsfp28"): _lane = pg_obj.get_lane(hwport) else: _lane = fp_details.lane if speed is not None: media.media_led_set(1, fp_details.media_id, _lane, speed) else: nas_if.log_err("Error speed not present") media.media_transceiver_set(1, fp_details.media_id, _lane, enable)