예제 #1
0
def get_port_queue_id(ifidx, queue_type, q_num, ifname):
    queue_obj = nas_qos.QueueCPSObj(
        port_id=ifidx,
        queue_type=queue_type,
        queue_number=q_num)
    cps_data_list = []
    ret = cps.get([queue_obj.data()], cps_data_list)

    if ret == False:
        raise RuntimeError(
            'Failed to get {1} queue {2} id for port {0}({3})'.format(
                ifname,
                queue_type,
                q_num,
                ifidx))

    m = nas_qos.QueueCPSObj(None, None, None, cps_data=cps_data_list[0])
    queue_id = m.extract_id()
    dbg_print(
        "           > Intf {4}({0}) {1} Q{2} = QID 0x{3:X}".format(
            ifidx,
            queue_type,
            q_num,
            queue_id,
            ifname))
    return queue_id
def get_port_queue_id_list(port_name, queue_type):
    cps_data_list = []
    ret_data_list = []

    ifindex = nas_os_if_utils.name_to_ifindex(port_name)
    if ifindex is None:
        print 'Failed to get ifindex for port ', port_name
        return None

    if queue_type == 'ALL':
        queue_type = None

    queue_obj = nas_qos.QueueCPSObj(port_id=ifindex,
                                    queue_type=queue_type,
                                    queue_number=None)
    ret = cps.get([queue_obj.data()], cps_data_list)

    if ret == False:
        print 'Failed to get queue list'
        return None

    print '-' * 36
    print '%-16s %-10s %s' % ('id', 'type', 'number')
    print '-' * 36
    for cps_data in cps_data_list:
        m = nas_qos.QueueCPSObj(None, None, None, cps_data=cps_data)
        queue_id = m.extract_id()
        type_val = m.extract_attr('type')
        local_num = m.extract_attr('queue-number')
        if queue_type is None or queue_type == type_val:
            print '%-16x %-10s %s' % (queue_id, type_val, local_num)
            ret_data_list.append(queue_id)

    return ret_data_list
def get_port_queue_id_list(port_id, queue_type):
    cps_data_list = []
    ret_data_list = []

    if queue_type == 'ALL':
        queue_type = None

    attr_list = {
        'type': queue_type,
        'queue-number': None,
        'port-id': port_id,
    }
    queue_obj = nas_qos.QueueCPSObj(map_of_attr=attr_list)
    ret = cps.get([queue_obj.data()], cps_data_list)

    if ret == False:
        print 'Failed to get queue list'
        return None

    print '#### Queue list Show ####'
    print '-' * 36
    print '%-16s %-10s %s' % ('id', 'type', 'number')
    print '-' * 36
    for cps_data in cps_data_list:
        m = nas_qos.QueueCPSObj(cps_data=cps_data)
        queue_id = m.extract_id()
        type_val = m.extract_attr('type')
        local_num = m.extract_attr('queue-number')
        if queue_type is None or queue_type == type_val:
            print '%-16x %-10s %s' % (queue_id, type_val, local_num)
            ret_data_list.append(queue_id)

    return ret_data_list
def queue_modify_buffer_profile_example(port_id, queue_type, queue_number,
                                        buf_prof_id):
    attr_list = {
        'type': queue_type,
        'queue-number': queue_number,
        'port-id': port_id,
        'buffer-profile-id': buf_prof_id,
    }
    queue_obj = nas_qos.QueueCPSObj(map_of_attr=attr_list)

    upd = ('set', queue_obj.data())
    ret_cps_data = cps_utils.CPSTransaction([upd]).commit()

    if ret_cps_data == False:
        print 'Queue buffer profile modification failed'
        return None

    print 'Return = ', ret_cps_data
    m = nas_qos.QueueCPSObj(cps_data=ret_cps_data[0])
    port_id = m.extract_attr('port-id')
    queue_number = m.extract_attr('queue-number')
    print "Successfully modified Queue of Port %d Number %d" % (port_id,
                                                                queue_number)

    return ret_cps_data
예제 #5
0
def qos_queue_get(ifidx, q_num, q_type):
    flt = nas_qos.QueueCPSObj(queue_type=q_type,
                              queue_number=q_num,
                              port_id=ifidx)
    ret = []
    r = cps.get([flt.data()], ret)
    if r == False:
        raise RuntimeError("Queue Get failed")

    q = nas_qos.QueueCPSObj(queue_type=q_type,
                            queue_number=q_num,
                            port_id=ifidx,
                            cps_data=ret[0])

    return q.extract_id(), q.extract_opaque_data()
예제 #6
0
def qos_queue_get(ifidx, q_num, q_type):
    attr_list = {
        'type': q_type,
        'queue-number': q_num,
        'port-id': ifidx,
    }
    flt = nas_qos.QueueCPSObj(map_of_attr = attr_list)
    ret = []
    r = cps.get([flt.data()], ret)
    if r == False:
        raise RuntimeError("Queue Get failed")

    q = nas_qos.QueueCPSObj(cps_data=ret[0])

    return q.extract_id(), q.extract_opaque_data()
예제 #7
0
def queue_get_example(port_id, queue_type, queue_number):
    return_data_list = []

    queue_obj = nas_qos.QueueCPSObj(queue_type=queue_type,
                                    queue_number=queue_number,
                                    port_id=port_id)
    ret = cps.get([queue_obj.data()], return_data_list)

    if ret:
        print '#### Queue Show ####'
        for cps_ret_data in return_data_list:
            m = nas_qos.QueueCPSObj(port_id=port_id,
                                    queue_type=queue_type,
                                    queue_number=queue_number,
                                    cps_data=cps_ret_data)
            m.print_obj()
    else:
        print "Error in Get"
def queue_get_example(port_id, queue_type, queue_number):
    return_data_list = []

    attr_list = {
        'type': queue_type,
        'queue-number': queue_number,
        'port-id': port_id,
    }
    queue_obj = nas_qos.QueueCPSObj(map_of_attr=attr_list)
    ret = cps.get([queue_obj.data()], return_data_list)

    if ret:
        print '#### Queue Show ####'
        for cps_ret_data in return_data_list:
            m = nas_qos.QueueCPSObj(cps_data=cps_ret_data)
            m.print_obj()
    else:
        print "Error in Get"
예제 #9
0
def get_port_queue_id(ifidx, queue_type, q_num, ifname):
    attr_list = {
        'port-id': ifidx,
        'type': queue_type,
        'queue-number': q_num,
    }
    queue_obj = nas_qos.QueueCPSObj(map_of_attr=attr_list)
    cps_data_list = []
    ret = cps.get([queue_obj.data()], cps_data_list)

    if ret == False:
        raise RuntimeError(
            'Failed to get {1} queue {2} id for port {0}({3})'.format(
                ifname, queue_type, q_num, ifidx))

    m = nas_qos.QueueCPSObj(cps_data=cps_data_list[0])
    queue_id = m.extract_id()
    dbg_print("           > Intf {4}({0}) {1} Q{2} = QID 0x{3:X}".format(
        ifidx, queue_type, q_num, queue_id, ifname))
    return queue_id
예제 #10
0
def queue_modify_wred_example(port_id, queue_type, queue_number, wred_id):
    m = nas_qos.QueueCPSObj(queue_type=queue_type,
                            queue_number=queue_number,
                            port_id=port_id)
    m.set_attr('wred-id', wred_id)

    upd = ('set', m.data())
    ret_cps_data = cps_utils.CPSTransaction([upd]).commit()

    if ret_cps_data == False:
        print "Queue modify Failed"
        return None

    print 'Return = ', ret_cps_data
    m = nas_qos.QueueCPSObj(None, None, None, cps_data=ret_cps_data[0])
    port_id = m.extract_attr('port-id')
    queue_number = m.extract_attr('queue-number')
    print "Successfully modified Queue of Port %d Number %d" % (port_id,
                                                                queue_number)

    return ret_cps_data
예제 #11
0
def queue_modify_scheduler_example(port_id, queue_type, queue_number,
                                   sched_id):
    queue_obj = nas_qos.QueueCPSObj(port_id=port_id,
                                    queue_type=queue_type,
                                    queue_number=queue_number)
    queue_obj.set_attr('scheduler-profile-id', sched_id)

    upd = ('set', queue_obj.data())
    ret_cps_data = cps_utils.CPSTransaction([upd]).commit()

    if ret_cps_data == False:
        print 'Queue scheduler profile modification failed'
        return None

    print 'Return = ', ret_cps_data
    m = nas_qos.QueueCPSObj(None, None, None, cps_data=ret_cps_data[0])
    port_id = m.extract_attr('port-id')
    queue_number = m.extract_attr('queue-number')
    print "Successfully modified Queue of Port %d Number %d" % (port_id,
                                                                queue_number)

    return ret_cps_data
def queue_create_example(port_id, queue_type, queue_number, parent_sg):
    attr_list = {
        'port-id': port_id,
        'type': queue_type,
        'queue-number': queue_number,
        'parent': parent_sg,
    }
    print port_id, queue_type, queue_number, parent_sg

    q_obj = nas_qos.QueueCPSObj(map_of_attr = attr_list)
    upd = ('create', q_obj.data())
    ret_cps_data = cps_utils.CPSTransaction([upd]).commit()

    if ret_cps_data == False:
        print "Queue creation failed"
        return None

    print 'Return = ', ret_cps_data
    q_obj = nas_qos.QueueCPSObj(cps_data=ret_cps_data[0])
    q_id = q_obj.extract_id()
    print 'Successfully created queue id %-16x' % q_id

    return q_id
예제 #13
0
def queue_modify_wred_example (port_id, queue_type, queue_number, wred_id):
    attr_list = {
        'type': queue_type,
        'queue-number': queue_number,
        'port-id': port_id,
        'wred-id': wred_id,
    }
    m = nas_qos.QueueCPSObj (map_of_attr=attr_list)

    upd = ('set', m.data())
    ret_cps_data = cps_utils.CPSTransaction([upd]).commit()

    if ret_cps_data == False:
        print "Queue modify Failed"
        return None

    print 'Return = ', ret_cps_data
    m = nas_qos.QueueCPSObj(cps_data=ret_cps_data[0])
    port_id = m.extract_attr('port-id')
    queue_number = m.extract_attr('queue-number')
    print "Successfully modified Queue of Port %d Number %d" % (port_id, queue_number)

    return ret_cps_data
def queue_delete_example(port_id,  queue_type=None, queue_number=None):
    return_data_list = []

    attr_list = {
        'port-id': port_id,
        'type': queue_type,
        'queue-number': queue_number,
    }
    queue_obj = nas_qos.QueueCPSObj(map_of_attr=attr_list)
    ret = cps.get([queue_obj.data()], return_data_list)

    if ret:
        for cps_ret_data in return_data_list:
            m = nas_qos.QueueCPSObj(cps_data=cps_ret_data)
            q_id = m.extract_attr('id')
            upd = ('delete', m.data())
            ret_cps_data = cps_utils.CPSTransaction([upd]).commit()
            if ret_cps_data == False:
                print "Queue delete failed"
                return False
            else:
                print "Queue %-16x is deleted" % q_id

    return True
예제 #15
0
def bind_q_profile(key_tuple, scheduler_profile_id, buffer_profile_id):
    q_obj = nas_qos.QueueCPSObj(
        port_id=key_tuple[0], queue_type=key_tuple[1],
        queue_number=key_tuple[2])
    q_obj.set_attr('scheduler-profile-id', scheduler_profile_id)
    if (buffer_profile_id):
        q_obj.set_attr('buffer-profile-id', buffer_profile_id)

    upd = ('set', q_obj.data())
    r = cps_utils.CPSTransaction([upd]).commit()
    if r == False:
        raise RuntimeError(
            'Unable to set scheduler profile {0} for {1} Queue {2}'.format(scheduler_profile_id,
                                                                           key_tuple[1],
                                                                           key_tuple[2]))
    dbg_print(
        '> Successfully set scheduler profile {0} for {1} Queue {2}'.format(scheduler_profile_id,
                                                                              key_tuple[1],
                                                                              key_tuple[2]))