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)
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
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 })