Beispiel #1
0
def get_one_interface():
    ifs = nas_os_if_utils.nas_os_if_list()
    while not ifs:
        ifs = nas_os_if_utils.nas_os_if_list()
        time.sleep(1)

    obj = cps_object.CPSObject(obj=ifs[-1])
    return obj.get_attr_data('dell-base-if-cmn/if/interfaces/interface/if-index')
Beispiel #2
0
def get_one_interface():
    ifs = nas_os_if_utils.nas_os_if_list()
    while not ifs:
        ifs = nas_os_if_utils.nas_os_if_list()
        time.sleep(1)

    obj = cps_object.CPSObject(obj=ifs[-1])
    return obj.get_attr_data('dell-base-if-cmn/if/interfaces/interface/if-index')
Beispiel #3
0
def init_all_ports_of_type(
        iftype, xnode_port, lookup_map, lookup_sched_prof, lookup_buf_prof = {}):
    # keep track of configured port in case more interfaces are created
    # while we are initializing default NAS-QOS
    done_ifs = []
    check_new_intf = True
    while (check_new_intf):
        check_new_intf = False
        if (iftype == 'base-if:cpu'):
            ifs = nas_os_if_utils.nas_os_cpu_if()
        else:
            ifs = nas_os_if_utils.nas_os_if_list()
        for intf in ifs:
            if intf in done_ifs:
                continue

            # add to configured port list
            done_ifs.append(intf)
            check_new_intf = True

            obj = cps_object.CPSObject(obj=intf)
            try:
                _iftype = obj.get_attr_data('if/interfaces/interface/type')
            except ValueError:
                continue
            if _iftype != iftype:
                continue
            ifname = obj.get_attr_data('if/interfaces/interface/name')
            ifidx = obj.get_attr_data('dell-base-if-cmn/if/interfaces/interface/if-index')
            max_speed = 0
            if (iftype != 'base-if:cpu'):
                max_speed = get_max_speed(obj)
            init_port(ifidx, ifname, iftype, max_speed, xnode_port, lookup_map, lookup_sched_prof, lookup_buf_prof)
Beispiel #4
0
def init_all_ports_of_type(
        iftype, xnode_port, lookup_map, lookup_sched_prof):
    # keep track of configured port in case more interfaces are created
    # while we are initializing default NAS-QOS
    done_ifs = []
    check_new_intf = True
    while (check_new_intf):
        check_new_intf = False
        if iftype == 'base-if:cpu':
            ifs = nas_os_if_utils.nas_os_cpu_if()
        else:
            ifs = nas_os_if_utils.nas_os_if_list()
        for intf in ifs:
            if intf in done_ifs:
                continue

            # add to configured port list
            done_ifs.append(intf)
            check_new_intf = True

            obj = cps_object.CPSObject(obj=intf)
            try:
                _iftype = obj.get_attr_data('if/interfaces/interface/type')
            except ValueError:
                continue
            if _iftype != iftype:
                continue
            ifname = obj.get_attr_data('if/interfaces/interface/name')
            ifidx = obj.get_attr_data('dell-base-if-cmn/if/interfaces/interface/if-index')

            init_port(ifidx, ifname, xnode_port, lookup_map, lookup_sched_prof)
Beispiel #5
0
def if_media_type_set(pas_media_obj):
    try:
        media_id = pas_media_obj.get_attr_data('port')
        media_type = pas_media_obj.get_attr_data('type')
    except:
        nas_if.log_info(
            "media Id or media type is not present in the media event")
        return
    # fetch FP info from media ID
    l = nas_if.nas_os_fp_list(d={'media-id': media_id})
    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 _fp_port_key == 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(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')
        hwport_list = p.get_attr_data('hardware-port-list')

        nas_if.log_info("send if rpc for media id set for phy port " +
                        str(port))
        ifobj = cps_object.CPSObject(
            module='dell-base-if-cmn/set-interface',
            data={
                'dell-base-if-cmn/set-interface/input/operation': 3,
                'base-if-phy/if/interfaces/interface/npu-id': npu,
                'base-if-phy/if/interfaces/interface/port-id': port,
                'base-if-phy/if/interfaces/interface/phy-media': media_type,
                'if/interfaces/interface/type': "ianaift:ethernetCsmacd"
            })
        ch = {'operation': 'rpc', 'change': ifobj.get()}
        cps.transaction([ch])
        if_name = str(
            ch['change']['data']['if/interfaces/interface/name'])[:-1]
        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)
            _lane = fp_details.lane
            media_transceiver_set(1, fp_details.media_id, _lane, enable)
    nas_if.log_info("setting media id: " + str(media_id) + " media type: " +
                    str(media_type))
def if_media_type_set(pas_media_obj):
    try:
        media_id = pas_media_obj.get_attr_data('port')
        media_type = pas_media_obj.get_attr_data('type')
    except:
        nas_if.log_err(
            "media Id or media type is not present in the media event")
        return
    # fetch FP info from media ID
    l = nas_if.nas_os_fp_list(d={'media-id': media_id})
    if len(l) == 0:
        nas_if.log_err("No such port found... for media  " + str(media_id))
        return

    # fetch PHY port list for the FP port
    port_list = nas_if.physical_ports_for_front_panel_port(
        cps_object.CPSObject(obj=l[0]))
    if len(port_list) == 0:
        nas_if.log_err("There are no physical ports for front panel port ")
        nas_if.log_err(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')
        fanout = p.get_attr_data('fanout-mode')
        hwport = p.get_attr_data('hardware-port-id')

        nas_if.log_info("send if rpc for media id set for phy port " +
                        str(port))
        ifobj = cps_object.CPSObject(
            module='dell-base-if-cmn/set-interface',
            data={
                'dell-base-if-cmn/set-interface/input/operation': 3,
                'base-if-phy/if/interfaces/interface/npu-id': npu,
                'base-if-phy/if/interfaces/interface/port-id': port,
                'base-if-phy/if/interfaces/interface/phy-media': media_type,
                'if/interfaces/interface/type': "ianaift:ethernetCsmacd"
            })
        ch = {'operation': 'rpc', 'change': ifobj.get()}
        cps.transaction([ch])
        if_name = ba.ba_to_str(
            ch['change']['data']['if/interfaces/interface/name'],
            len(_if_name))
        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")
        fp_details = fp.find_port_by_hwport(npu, hwport)
        if fanout == 2:  # then it is in 4x10G fanout mode BASE_PORT_BREAKOUT_MODE_BREAKOUT_4X1
            _lane = fp_details.lane
        else:  # non-fanout mode 1x40g mode
            _lane = None  # enable/disable all channels. Do not pass Lane #
        media_transceiver_set(1, fp_details.media_id, _lane, enable)
    nas_if.log_info("setting media id: " + str(media_id) + " media type: " +
                    str(media_type))
Beispiel #7
0
def monitor_interface_event():
    handle = cps.event_connect()
    cps.event_register(handle,
                       nas_comm.yang.get_value('physical_key', 'keys_id'))
    cps.event_register(
        handle, nas_comm.yang.get_value('logical_if_state_key', 'keys_id'))
    cps.event_register(
        handle, nas_comm.yang.get_value('obs_logical_if_key', 'keys_id'))
    _led_control = media.led_control_get()
    while True:
        o = cps.event_wait(handle)
        obj = cps_object.CPSObject(obj=o)

        if nas_comm.yang.get_value('fp_key', 'keys_id') == obj.get_key():
            _update_fp(obj)
        if nas_comm.yang.get_value('physical_key', 'keys_id') == obj.get_key():
            continue

        if nas_comm.yang.get_value('obs_logical_if_key',
                                   'keys_id') == obj.get_key():
            _process_logical_if_event(obj)

        elif nas_comm.yang.get_value('logical_if_state_key',
                                     'keys_id') == obj.get_key():
            if_index = _get_obj_attr_value(
                obj, 'if/interfaces-state/interface/if-index')
            # check if if_index is present
            if if_index is None:
                nas_if.log_err(
                    'Interface index not present in the interface state event')
                continue
            # Get Interface attributes
            if_obj_list = nas_if.nas_os_if_list(d={'if-index': if_index})
            if if_obj_list is None:
                nas_if.log_err(
                    'Failed to get Interface attributes by ifindex from NAS interface'
                )
                continue
            admin_state = _get_obj_attr_value(
                obj, 'if/interfaces-state/interface/admin-status')
            if admin_state != None:
                # This is admin state change event
                try:
                    set_media_transceiver(if_obj_list[0])
                except:
                    nas_if.log_err(
                        "Unable to set media transceiver for if_index {}".
                        format(str(if_index)))

            if _led_control == True:
                oper_state = _get_obj_attr_value(
                    obj, 'if/interfaces-state/interface/oper-status')
                if oper_state != None:
                    try:
                        set_interface_media_speed(if_obj_list[0])
                    except:
                        nas_if.log_err("Error in setting LED")
                continue
Beispiel #8
0
def get_if_name(index=0):
    global ifs

    if not ifs:
        ifs = nas_os_if_utils.nas_os_if_list()
        while not ifs:
            ifs = nas_os_if_utils.nas_os_if_list()
            time.sleep(1)

    if not ifs:
        raise RuntimeError("No interfaces found")

    if index < len(ifs):
        if_wr_obj = cps_utils.CPSObject(obj=ifs[index])
    else:
        if_wr_obj = cps_utils.CPSObject(obj=ifs[0])

    return if_wr_obj.get_attr_data('if/interfaces/interface/name')
Beispiel #9
0
def get_if_name(index=0):
    global ifs

    if not ifs:
        ifs = nas_os_if_utils.nas_os_if_list()
        while not ifs:
            ifs = nas_os_if_utils.nas_os_if_list()
            time.sleep(1)

    if not ifs:
        raise RuntimeError("No interfaces found")

    if index < len(ifs):
        if_wr_obj = cps_utils.CPSObject(obj=ifs[index])
    else:
        if_wr_obj = cps_utils.CPSObject(obj=ifs[0])

    return if_wr_obj.get_attr_data('if/interfaces/interface/name')
def get_first_phy_port():
    ret_data_list = nas_os_if_utils.nas_os_if_list()
    if not ret_data_list:
        return None
    name_list = []
    for ret_data in ret_data_list:
        cps_obj = cps_utils.CPSObject(obj=ret_data)
        port_name = cps_obj.get_attr_data('if/interfaces/interface/name')
        name_list.append(port_name)
    name_list.sort()
    return name_list[0]
def init_interfaces(ifnames):
    xnode_root = ET.parse(get_cfg()).getroot()

    lookup_sched_prof = {}
    lookup_buf_prof = {}
    lookup_map = {}

    # build the profile list
    read_current_buf_prof(lookup_buf_prof)
    if lookup_sched_prof == {}:
        return

    read_current_sched_prof(lookup_sched_prof)
    if lookup_sched_prof == {}:
        return

    for map_type in map_types:
        read_current_map(lookup_map, map_type)

    if lookup_map == {}:
        return

    if (dbg_on):
        print lookup_buf_prof
        print lookup_sched_prof
        print lookup_map

    if (lookup_sched_prof == {} or lookup_buf_prof == {} or lookup_map == {}):
        return

    try:
        for xnode_obj in xnode_root:
            if xnode_obj.tag == 'FRONT-PANEL-PORTS':
                for ifname in ifnames:
                    ifidx = nas_os_if_utils.name_to_ifindex(ifname)
                    speed = 0
                    intf = nas_os_if_utils.nas_os_if_list({'if-index': ifidx})
                    if intf:
                        obj = cps_object.CPSObject(obj=intf[0])
                        speed = get_max_speed(obj)

                    init_port(ifidx, ifname, 'ianaift:ethernetCsmacd', speed,
                              xnode_obj, lookup_map, lookup_sched_prof,
                              lookup_buf_prof)

    except RuntimeError as r:
        syslog.syslog("Runtime Error: " + str(r))
        sys.exit(1)

    if err_detected:
        sys.exit(1)
Beispiel #12
0
def _process_logical_if_event(obj):
    if_index = _get_obj_attr_value(
        obj, 'dell-base-if-cmn/if/interfaces/interface/if-index')
    speed = _get_obj_attr_value(obj, 'dell-if/if/interfaces/interface/speed')
    # check if if_index is present
    if if_index == None or speed is None:
        nas_if.log_err('Interface index not present in the interface event')
        return
    # Get Interface attributes
    if_obj_list = nas_if.nas_os_if_list(d={'if-index': if_index})
    if if_obj_list is None:
        nas_if.log_err(
            'Failed to get Interface attributes by ifindex from NAS interface')
        return
    if len(if_obj_list) != 0:
        set_interface_media_speed(if_obj_list[0], speed)
def get_one_interface():
    while True:
        ifs = nas_os_if_utils.nas_os_if_list()
        if not ifs:
            time.sleep(1)
            continue

        for intf in ifs:
            obj = cps_object.CPSObject(obj=intf)
            ifidx = obj.get_attr_data(
                'dell-base-if-cmn/if/interfaces/interface/if-index')
            p = nas_qos.IngPortCPSObj(ifindex=ifidx)
            r = []

            if cps.get([p.data()], r) == True:
                return ifidx

        time.sleep(1)
Beispiel #14
0
def monitor_interface_event():
    handle = cps.event_connect()
    cps.event_register(handle, _physical_key)
    cps.event_register(handle, _logical_if_state_key)
    _led_control = media.led_control_get()
    while True:
        o = cps.event_wait(handle)
        obj = cps_object.CPSObject(obj=o)
        if _physical_key == obj.get_key():
            if o['operation'] != 'create':
                continue
            nas_if.log_info("physical port creation event")
            set_media_type_on_port_create(obj)
        elif _logical_if_state_key == obj.get_key():
            if_index = _get_obj_attr_value(
                obj, 'if/interfaces-state/interface/if-index')
            # check if if_index is present
            if if_index == None:
                nas_if.log_err(
                    'Interface index not present in the interface state event')
                continue
            # Get Interface attributes
            admin_state = _get_obj_attr_value(
                obj, 'if/interfaces-state/interface/admin-status')
            if admin_state != None:
                # This is admin state change event
                try:
                    if_obj_list = nas_if.nas_os_if_list(
                        d={'if-index': if_index})
                    set_media_transceiver(if_obj_list[0])
                except:
                    nas_if.log_err("Unable to set media transceiver for ",
                                   str(if_index))
            if _led_control == True:
                oper_state = _get_obj_attr_value(
                    obj, 'if/interfaces-state/interface/oper-status')
                if oper_state != None:
                    try:
                        set_interface_led(if_obj_list[0])
                    except:
                        nas_if.log_err("Error in setting LED")
                continue
def init_fp_ports(xnode_fp, lookup_map, lookup_sched_prof, lookup_buf_prof):
    # Be backward compatible
    if 'port' not in map(lambda x: x.tag, xnode_fp.getchildren()):
        init_all_ports_of_type('ianaift:ethernetCsmacd', xnode_fp, lookup_map,
                               lookup_sched_prof, lookup_buf_prof)
        return
    ifs = nas_os_if_utils.nas_os_if_list()
    ifnames = map(
        lambda x: cps_object.CPSObject(obj=x).get_attr_data(
            'if/interfaces/interface/name'), ifs)
    d = {}
    for pr in enumerate(ifnames):
        d[pr[1]] = pr[0]
    ifnames.sort()
    for xnode_port in xnode_fp:
        if xnode_port.tag != 'port':
            continue
        if 'port' in xnode_port.attrib:
            # Single port
            ifname = xnode_port.attrib['port']
            if ifname not in ifnames:
                continue
            init_fp_port(cps_object.CPSObject(obj=ifs[d[ifname]]), lookup_map,
                         lookup_sched_prof, lookup_buf_prof)
            continue
        if 'from' in xnode_port.attrib and 'to' in xnode_port.attrib:
            # Range of ports
            _from = xnode_port.attrib['from']
            _to = xnode_port.attrib['to']
            if _from not in ifnames or _to not in ifnames:
                continue
            i = ifnames.index(_from)
            j = ifnames.index(_to)
            while i <= j:
                init_fp_port(cps_object.CPSObject(obj=ifs[d[ifnames[i]]]),
                             lookup_map, lookup_sched_prof, lookup_buf_prof)
                i = i + 1
def monitor_interface_event():
    handle = cps.event_connect()
    cps.event_register(handle, _physical_key)
    cps.event_register(handle, _logical_if_state_key)
    _led_control = media.led_control_get()
    while True:
        o = cps.event_wait(handle)
        obj = cps_object.CPSObject(obj=o)
        if _physical_key == obj.get_key():
            if o['operation'] != 'create':
                continue
            print "physical port creation event"
            set_media_type_on_port_create(obj)
        elif _logical_if_state_key == obj.get_key():
            if_index = _get_obj_attr_value(obj, 'if/interfaces-state/interface/if-index')
            # check if if_index is present
            if if_index == None:
                print 'Interface index not present in the interface state event'
                continue
            # Get Interface attributes
            admin_state = _get_obj_attr_value(obj, 'if/interfaces-state/interface/admin-status')
            if admin_state != None:
                # This is admin state change event
                try:
                    if_obj_list = nas_if.nas_os_if_list(d={'if-index':if_index})
                    set_media_transceiver(if_obj_list[0])
                except:
                    print "Unable to set media transceiver for ", str(if_index)
            if _led_control == True:
                oper_state = _get_obj_attr_value(obj, 'if/interfaces-state/interface/oper-status')
                if oper_state != None:
                    try:
                        set_interface_led(if_obj_list[0])
                    except:
                        print "Error in setting LED"
                continue
                                 "/usr/bin/opx-config-fanout",interface,"true"])
    except Exception as ex:
        nas_if.log_err(str(ex))


def parse_config_file():
    """parse the xml file which has the config for
       fanout interfaces
    """
    if not os.path.isfile(fanout_config_file):
        nas_if.log_err(str(fanout_config_file)+" does not exist")
    try:
        config_xml_handle = minidom.parse(fanout_config_file)
    except Exception:
        nas_if.log_err(str(fanout_config_file)+" Is not a valid xml file")

    try:
        intf_list = config_xml_handle.getElementsByTagName("interface")
        parse_intf_config(intf_list)
    except Exception as ex:
        nas_if.log_err(str(ex))


if __name__ == '__main__':

    # Wait till interface service is ready
    while nas_if.nas_os_if_list() == None:
        sleep(1)

    parse_config_file()
def create_if_map(lst):
    if_n = {}

    for i in lst:
        obj = cps_object.CPSObject(obj=i)
        name = obj.get_attr_data(_g_if_name)
        if_n[name] = obj

    return if_n

if __name__ == '__main__':
    if len(sys.argv) < 2:
        print "Missing parameters.. please provide interface name eg.. e00-1"
        sys.exit(1)

    l = nas_if.nas_os_if_list()

    if_names = create_if_map(l)

    if not sys.argv[1] in if_names:
        print "Interface is invalid... " + sys.argv[1]
        sys.exit(1)

    obj = if_names[sys.argv[1]]
    # disable the port first before delteting the interface
    obj.add_attr('enabled', False)

    ch = {'operation': 'set', 'change': obj.get()}
    if cps.transaction([ch]) != True:
        print "Failed to shutdown interface, exiting..."
        sys.exit(0)
Beispiel #19
0
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)
        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
            media.media_transceiver_set(1, fp_details.media_id, _lane, enable)
                                 "/usr/bin/sonic-config-fanout",interface,"true"])
    except Exception as ex:
        syslog.syslog(str(ex))


def parse_config_file():
    """parse the xml file which has the config for
       fanout interfaces
    """
    if not os.path.isfile(fanout_config_file):
        print "%s does not exist" % (fanout_config_file)
    try:
        config_xml_handle = minidom.parse(fanout_config_file)
    except Exception:
        print "%s Is not a valid xml file" % (fanout_config_file)

    try:
        intf_list = config_xml_handle.getElementsByTagName("interface")
        parse_intf_config(intf_list)
    except Exception as ex:
        syslog.syslog(str(ex))


if __name__ == '__main__':

    # Wait till interface service is ready
    while nas_if.nas_os_if_list() == None:
        sleep(1)

    parse_config_file()
Beispiel #21
0
    if_n = {}

    for i in lst:
        obj = cps_object.CPSObject(obj=i)
        name = obj.get_attr_data(_g_if_name)
        if_n[name] = obj

    return if_n


if __name__ == '__main__':
    if len(sys.argv) < 2:
        print "Missing parameters.. please provide interface name eg.. e00-1"
        sys.exit(1)

    l = nas_if.nas_os_if_list()

    if_names = create_if_map(l)

    if not sys.argv[1] in if_names:
        print "Interface is invalid... " + sys.argv[1]
        sys.exit(1)

    obj = if_names[sys.argv[1]]
    # disable the port first before delteting the interface
    obj.add_attr('enabled', False)

    ch = {'operation': 'set', 'change': obj.get()}
    if cps.transaction([ch]) != True:
        print "Failed to shutdown interface, exiting..."
        sys.exit(0)
def iface_config_clear():
    ifs = nas_os_if_utils.nas_os_if_list() + nas_os_if_utils.nas_os_cpu_if()

    # For each interface, ...
    for iface in ifs:
        ifidx = cps_object.CPSObject(obj=iface).get_attr_data(
            'dell-base-if-cmn/if/interfaces/interface/if-index')
        # Set all ingress maps to none
        cps_set(
            'base-qos/port-ingress', 'target', {
                'base-qos/port-ingress/port-id': ifidx,
                'base-qos/port-ingress/dot1p-to-color-map': 0,
                'base-qos/port-ingress/dscp-to-tc-map': 0,
                'base-qos/port-ingress/priority-group-to-pfc-priority-map': 0,
                'base-qos/port-ingress/tc-to-queue-map': 0,
                'base-qos/port-ingress/dot1p-to-tc-color-map': 0,
                'base-qos/port-ingress/dot1p-to-tc-map': 0,
                'base-qos/port-ingress/tc-to-priority-group-map': 0,
                'base-qos/port-ingress/dscp-to-tc-color-map': 0,
                'base-qos/port-ingress/dscp-to-color-map': 0
            })
        # Set all egress maps and scheduler profile to none
        cps_set(
            'base-qos/port-egress', 'target', {
                'base-qos/port-egress/port-id': ifidx,
                'base-qos/port-egress/pfc-priority-to-queue-map': 0,
                'base-qos/port-egress/tc-to-dot1p-map': 0,
                'base-qos/port-egress/tc-color-to-dscp-map': 0,
                'base-qos/port-egress/tc-color-to-dot1p-map': 0,
                'base-qos/port-egress/tc-to-queue-map': 0,
                'base-qos/port-egress/tc-to-dscp-map': 0,
                'base-qos/port-egress/scheduler-profile-id': 0
            })
        # For each priority group, ...
        resp = []
        cps_get('base-qos/priority-group', 'target',
                {'base-qos/priority-group/port-id': ifidx}, resp)
        for r in resp:
            # Set buffer profile to none
            cps_set(
                'base-qos/priority-group', 'target', {
                    'base-qos/priority-group/port-id':
                    ifidx,
                    'base-qos/priority-group/local-id':
                    cps_object.CPSObject(obj=r).get_attr_data(
                        'base-qos/priority-group/local-id'),
                    'base-qos/priority-group/buffer-profile-id':
                    0
                })
        # For each queue, ...
        resp = []
        cps_get('base-qos/queue', 'target', {'base-qos/queue/port-id': ifidx},
                resp)
        for r in resp:
            # Set scheduler and buffer profile to none
            robj = cps_object.CPSObject(obj=r)
            cps_set(
                'base-qos/queue', 'target', {
                    'base-qos/queue/port-id':
                    ifidx,
                    'base-qos/queue/queue-number':
                    robj.get_attr_data('base-qos/queue/queue-number'),
                    'base-qos/queue/type':
                    robj.get_attr_data('base-qos/queue/type'),
                    'base-qos/queue/scheduler-profile-id':
                    0,
                    'base-qos/queue/buffer-profile-id':
                    0
                })
        # For each scheduler group, ...
        resp = []
        cps_get('base-qos/scheduler-group', 'target',
                {'base-qos/scheduler-group/port-id': ifidx}, resp)
        for r in resp:
            # Set scheduler profile to none
            robj = cps_object.CPSObject(obj=r)
            cps_set(
                'base-qos/scheduler-group', 'target', {
                    'base-qos/scheduler-group/id':
                    robj.get_attr_data('base-qos/scheduler-group/id'),
                    'base-qos/scheduler-group/scheduler-profile-id':
                    0
                })