@staticmethod
def _calc_vpp_workers(node, vpp_workers, numa_node, other_cpus_end,
    total_vpp_workers, reserve_vpp_main_core):
    """
        Calculate the VPP worker information

        :param node: Node dictionary
        :param vpp_workers: List of VPP workers
        :param numa_node: Numa node
        :param other_cpus_end: The end of the cpus allocated for cores
        other than vpp
        :param total_vpp_workers: The number of vpp workers needed
        :param reserve_vpp_main_core: Is there a core needed for
        the vpp main core
        :type node: dict
        :type numa_node: int
        :type other_cpus_end: int
        :type total_vpp_workers: int
        :type reserve_vpp_main_core: bool
        :returns: Is a core still needed for the vpp main core
        :rtype: bool
        """
    cpus = node['cpu']['cpus_per_node'][numa_node]
    for cpu in cpus:
        start = cpu[0]
        end = cpu[1]
        if start <= other_cpus_end:
            start = other_cpus_end + 1
        if reserve_vpp_main_core:
            start += 1
        workers_end = start + total_vpp_workers - 1
        if workers_end <= end:
            if reserve_vpp_main_core:
                node['cpu']['vpp_main_core'] = start - 1
            reserve_vpp_main_core = False
            if total_vpp_workers:
                vpp_workers.append((start, workers_end))
            break
    if reserve_vpp_main_core:
        node['cpu']['vpp_main_core'] = other_cpus_end + 1
    return reserve_vpp_main_core
