@staticmethod
    def _split_range(range_start, range_end, full_mask):

        bit_flag = 1
        last_temp_start = range_start
        last_temp_end = last_temp_start
        result_list = []

        while True:
            if ((last_temp_start & bit_flag) == 0) and \
                    ((last_temp_end | bit_flag) <= range_end):
                last_temp_end |= bit_flag
                bit_flag <<= 1
            else:
                mask = full_mask - (1 - bit_flag)
                result_list.append({"prefix": last_temp_start, "mask": mask})
                if last_temp_end >= range_end:
                    break
                bit_flag = 1
                last_temp_start = last_temp_end + 1
                last_temp_end = last_temp_start

        return result_list
dataset/ETHPy150Open openstack/dragonflow/dragonflow/controller/sg_app.py/SGApp._split_range/swapped operands of `-`