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
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()
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()
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"
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
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
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
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
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]))