Exemple #1
0
    def __init__(self,
                 queue_type=None,
                 queue_number=None,
                 port_id=None,
                 switch_id=0,
                 cps_data=None):

        if cps_data != None:
            self.cps_data = cps_data
            return

        self.cps_data = None
        self.cps_obj_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map())

        if queue_type != None:
            self.cps_obj_wr.add_leaf_attr('type', queue_type)
        if queue_number != None:
            self.cps_obj_wr.add_leaf_attr('queue-number', queue_number)
        if port_id != None:
            self.cps_obj_wr.add_leaf_attr('port-id', port_id)
        self.cps_obj_wr.add_leaf_attr('switch-id', switch_id)

        # add stats you want to pull here
        self.cps_obj_wr.add_leaf_attr('packets', 0)
        self.cps_obj_wr.add_leaf_attr('bytes', 0)
        self.cps_obj_wr.add_leaf_attr('dropped-packets', 0)
        self.cps_obj_wr.add_leaf_attr('dropped-bytes', 0)
        self.cps_obj_wr.add_leaf_attr('current-occupancy-bytes', 0)
        self.cps_obj_wr.add_leaf_attr('watermark-bytes', 0)
    def __init__(self,
                 port_name=None,
                 level=None,
                 switch_id=0,
                 sg_id=None,
                 sched_id=None,
                 chld_id_list=[],
                 cps_data=None):
        if cps_data is not None:
            self.cps_data = cps_data
            return

        self.cps_obj_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map())
        self.cps_data = self.cps_obj_wr.get()
        self.set_attr('switch-id', switch_id)
        if port_name is not None:
            port_id = ifindex_utils.if_nametoindex(port_name)
            self.set_attr('port-id', port_id)
        if sg_id is not None:
            self.set_attr('id', sg_id)
        if level is not None:
            self.set_attr('level', level)
        if sched_id is not None:
            self.set_attr('scheduler-profile-id', sched_id)
        if chld_id_list is not None and isinstance(
                chld_id_list, list) and len(chld_id_list) > 0:
            self.set_attr('child_count', len(chld_id_list))
            self.set_attr('child-list', chld_id_list)
    def __init__(self,
                 ifindex=None,
                 ifname=None,
                 cps_data=None,
                 switch_id=0,
                 list_of_attr_value_pairs=[]):

        if cps_data is not None:
            self.cps_data = cps_data
            return

        self.cps_data = None
        self.cps_obj_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map())

        if ifindex is not None:
            self.cps_obj_wr.add_leaf_attr('port-id', ifindex)
        elif ifname is not None:
            ifindex = ifindex_utils.if_nametoindex(ifname)
            if ifindex is None:
                raise RuntimeError("Port " + ifname + " not available")
            self.cps_obj_wr.add_leaf_attr('port-id', ifindex)

        self.cps_obj_wr.add_leaf_attr('switch-id', switch_id)

        for pair in list_of_attr_value_pairs:
            self.set_attr(pair[0], pair[1])
Exemple #4
0
    def __create_map_table(self, map_name):
        map_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map())
        if self.yang_name in self.get_old_maps():
            map_wr.add_leaf_attr('switch-id', self.switch_id)

        upd = ('create', map_wr.get())
        ret_data_list = cps_utils.CPSTransaction([upd]).commit()

        if ret_data_list == False:
            print "Map Table Create failed - " + self.yang_name
            return None

        self.map_result = ret_data_list[0]
        map_id = utl.extract_cps_attr(self, ret_data_list[0], 'id')

        if map_name != None:
            map_wr.add_leaf_attr('id', map_id)
            map_wr.add_leaf_attr('name', map_name)
            upd = ('set', map_wr.get())

            ret_cps_data = cps_utils.CPSTransaction([upd]).commit()
            if ret_cps_data == False:
                print "map name modification failed"

        return map_id
    def __init__(self,
                 meter_type=None,
                 cir=None,
                 cbs=None,
                 pbs=None,
                 pir=None,
                 meter_id=None,
                 switch_id=0,
                 cps_data=None):

        if cps_data is not None:
            self.cps_data = cps_data
            return

        self.cps_data = None
        self.cps_obj_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map())
        self.mode_detected = True

        if meter_id is not None:
            # Detect Meter Mode only for the Create case
            self.mode_detected = False
            self.cps_obj_wr.add_leaf_attr('id', meter_id)

        self.cps_obj_wr.add_leaf_attr('switch-id', switch_id)

        if meter_type is not None:
            self.cps_obj_wr.add_leaf_attr('type', meter_type)
        if cir is not None:
            self.cps_obj_wr.add_leaf_attr('committed-rate', cir)
        if cbs is not None:
            self.cps_obj_wr.add_leaf_attr('committed-burst', cbs)
        if pbs is not None:
            self.cps_obj_wr.add_leaf_attr('peak-burst', pbs)
        if pir is not None:
            self.cps_obj_wr.add_leaf_attr('peak-rate', pir)
Exemple #6
0
    def __init__(self, cps_data=None, map_of_attr={}):
        if cps_data is not None:
            self.cps_data = cps_data
            return

        self.cps_obj_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map())
        self.cps_data = self.cps_obj_wr.get()
        for key in map_of_attr:
            self.set_attr(key, map_of_attr[key])
    def __init__(self, local_id, port_id, cps_data=None):

        if cps_data is not None:
            self.cps_data = cps_data
            return

        self.cps_data = None
        self.cps_obj_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map())

        if local_id is not None:
            self.cps_obj_wr.add_leaf_attr('local-id', local_id)
        if port_id is not None:
            self.cps_obj_wr.add_leaf_attr('port-id', port_id)
    def __init__(self, id=None, cps_data=None):

        if cps_data != None:
            self.cps_data = cps_data
            return

        self.cps_data = None
        self.cps_obj_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map())

        if id != None:
            self.cps_obj_wr.add_leaf_attr('id', id)

        # add supported stats to pull here
        self.cps_obj_wr.add_leaf_attr('current-occupancy-bytes', 0)
        self.cps_obj_wr.add_leaf_attr('watermark-bytes', 0)
Exemple #9
0
    def __init__(self, switch_id=0, wred_id=None, cps_data=None,
                 map_of_attr={}):
        if cps_data is not None:
            self.cps_data = cps_data
            return

        self.cps_obj_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map())
        self.cps_data = self.cps_obj_wr.get()
        self.set_attr('switch-id', switch_id)
        if wred_id is not None:
            self.set_attr('id', wred_id)
        for key in map_of_attr:
            if key == 'npu-id-list':
                for npu_id in map_of_attr[key]:
                    self.add_npu_to_list(npu_id)
            else:
                self.set_attr(key, map_of_attr[key])
Exemple #10
0
 def __form_map_entry_obj(self, pair):
     val_num = 0
     entry_wr = utl.CPSObjWrp(self.yang_entry_name, self.get_type_map())
     if self.yang_name in self.get_old_maps():
         entry_wr.add_leaf_attr('switch-id', self.switch_id,
                                utl.obj_path(self.yang_name))
     if self.get_map_id() is None:
         raise RuntimeError('Map Entry needs Map Table to be created first')
     entry_wr.add_leaf_attr('id', self.get_map_id(),
                            utl.obj_path(self.yang_name))
     if isinstance(pair, tuple):
         names = self.get_attr_names(self.yang_name)
         for val in pair:
             entry_wr.add_leaf_attr(names[val_num], val)
             val_num += 1
     elif isinstance(pair, dict):
         for name, val in pair.items():
             entry_wr.add_leaf_attr(name, val)
     return entry_wr
    def __init__(self, port_id=None, local_id=None, cps_data=None):

        if cps_data != None:
            self.cps_data = cps_data
            return

        self.cps_data = None
        self.cps_obj_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map())

        if port_id != None:
            self.cps_obj_wr.add_leaf_attr('port-id', port_id)
        if local_id != None:
            self.cps_obj_wr.add_leaf_attr('local-id', local_id)

        # add supported stats to pull here
        self.cps_obj_wr.add_leaf_attr('packets', 0)
        self.cps_obj_wr.add_leaf_attr('bytes', 0)
        self.cps_obj_wr.add_leaf_attr('current-occupancy-bytes', 0)
        self.cps_obj_wr.add_leaf_attr('shared-current-occupancy-bytes', 0)
Exemple #12
0
    def __init__(self,
                 queue_type,
                 queue_number,
                 port_id,
                 switch_id=0,
                 cps_data=None):

        if cps_data is not None:
            self.cps_data = cps_data
            return

        self.cps_data = None
        self.cps_obj_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map())

        if queue_type is not None:
            self.cps_obj_wr.add_leaf_attr('type', queue_type)
        if queue_number is not None:
            self.cps_obj_wr.add_leaf_attr('queue-number', queue_number)
        if port_id is not None:
            self.cps_obj_wr.add_leaf_attr('port-id', port_id)
        self.cps_obj_wr.add_leaf_attr('switch-id', switch_id)
Exemple #13
0
    def __init__(self,
                 yang_map_name,
                 entry_list=[],
                 map_id=None,
                 switch_id=0,
                 cps_data=None,
                 create_map=True,
                 map_name=None):
        self.yang_name = yang_map_name
        self.yang_entry_name = yang_map_name + '/entry'

        if cps_data is not None:
            self.cps_data = cps_data
            return

        self.cps_data = None
        self.switch_id = switch_id

        self.map_id = map_id

        if (create_map is False):
            # try to get bulk
            self.cps_obj_wr = utl.CPSObjWrp(self.yang_name,
                                            self.get_type_map())
            self.cps_data = self.cps_obj_wr.get()
            return

        if map_id is None:
            self.map_id = self.__create_map_table(map_name)

        self.new_entry_list = []
        self.mod_entry_list = []
        self.del_entry_list = []
        for pair in entry_list:
            entry_obj_wr = self.__form_map_entry_obj(pair)
            self.new_entry_list.append(entry_obj_wr)
Exemple #14
0
 def data_map(self):
     entry_wr = utl.CPSObjWrp(self.yang_name, self.get_type_map())
     if self.yang_name in self.get_old_maps():
         entry_wr.add_leaf_attr('switch-id', self.switch_id)
     entry_wr.add_leaf_attr('id', self.map_id)
     return entry_wr.get()