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)
Exemple #2
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)
def get_cpu_port():
    ifs = nas_os_if_utils.nas_os_cpu_if()
    cpu_ifs = []
    cpu_ifnames = []
    for intf in ifs:
        obj = cps_utils.CPSObject(obj=intf)
        try:
            iftype = obj.get_attr_data('if/interfaces/interface/type')
        except ValueError:
            continue
        if iftype != base_cpu_intf_type:
            continue
        cpu_ifnames.append(obj.get_attr_data('if/interfaces/interface/name'))
        cpu_ifs.append(obj.get_attr_data('dell-base-if-cmn/if/interfaces/interface/if-index'))
    return cpu_ifs, cpu_ifnames
Exemple #4
0
def get_cpu_port():
    ifs = nas_os_if_utils.nas_os_cpu_if()
    cpu_ifs = []
    cpu_ifnames = []
    for intf in ifs:
        obj = cps_utils.CPSObject(obj=intf)
        try:
            iftype = obj.get_attr_data('if/interfaces/interface/type')
        except ValueError:
            continue
        if iftype != base_cpu_intf_type:
            continue
        cpu_ifnames.append(obj.get_attr_data('if/interfaces/interface/name'))
        cpu_ifs.append(obj.get_attr_data('dell-base-if-cmn/if/interfaces/interface/if-index'))
    return cpu_ifs, cpu_ifnames
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
                })