docs: def _validate(dns_proto, dns_servers, ip_proto, ip_addrs, gateway):
      '''
      Ensure that the configuration passed is formatted correctly and contains
      valid IP addresses, etc.
      '''
      errors = []
      # Validate DNS configuration
      if dns_proto == 'dhcp':
          if dns_servers is not None:
              errors.append(
                  'The dns_servers param cannot be set if unless dns_proto is '
                  'set to \'static\''
              )
      else:
          if str(dns_servers).lower() in ['none', '[]']:
              pass
          elif not isinstance(dns_servers, list):
              errors.append(
                  'The dns_servers param must be formatted as a list'
              )
          else:
              bad_ips = [x for x in dns_servers
                         if not salt.utils.validate.net.ipv4_addr(x)]
              if bad_ips:
                  errors.append('Invalid DNS server IPs: {0}'
                                .format(', '.join(bad_ips)))
  
      # Validate IP configuration
      if ip_proto == 'dhcp':
          if ip_addrs is not None:
              errors.append(
                  'The ip_addrs param cannot be set if unless ip_proto is set '
                  'to \'static\''
              )
          if gateway is not None:
              errors.append(
                  'A gateway IP cannot be set if unless ip_proto is set to '
                  '\'static\''
              )
      else:
          if not ip_addrs:
              errors.append(
                  'The ip_addrs param is required to set static IPs'
              )
          elif not isinstance(ip_addrs, list):
              errors.append(
                  'The ip_addrs param must be formatted as a list'
              )
          else:
              bad_ips = [x for x in ip_addrs
                         if not salt.utils.validate.net.ipv4_addr(x)]
              if bad_ips:
                  errors.append('The following static IPs are invalid: '
                                '{0}'.format(', '.join(bad_ips)))
  
              # Validate default gateway
              if gateway is not None:
                  if not salt.utils.validate.net.ipv4_addr(gateway):
                      errors.append('Gateway IP {0} is invalid'.format(gateway))
  
      return errors