docs: def validate_network(roles=None,
                       inventory_path=None,
                       output_dir=None,
                       extra_vars=None):
      """Validate the network parameters (latency, bandwidth ...)
  
      Performs flent, ping tests to validate the constraints set by
      :py:func:`emulate_network`. Reports are available in the tmp directory used
      by enos.
  
      Args:
          roles (dict): role->hosts mapping as returned by
              :py:meth:`enoslib.infra.provider.Provider.init`
          inventory_path (str): path to an inventory
          output_dir (str): directory where validation files will be stored.
              Default to :py:const:`enoslib.constants.TMP_DIRNAME`.
      """
      logger.debug('Checking the constraints')
      if not output_dir:
          output_dir = os.path.join(os.getcwd(), TMP_DIRNAME)
  
      if not extra_vars:
          extra_vars = {}
  
      output_dir = os.path.abspath(output_dir)
      _check_tmpdir(output_dir)
      utils_playbook = os.path.join(ANSIBLE_DIR, 'utils.yml')
      options = {'enos_action': 'tc_validate',
                 'tc_output_dir': output_dir}
  
      options.update(extra_vars)
      run_ansible([utils_playbook],
                  roles=roles,
                  inventory_path=inventory_path,
                  extra_vars=options)