code: func CanUseIPTablesProxier(iptver IPTablesVersioner, kcompat KernelCompatTester) (bool, error) {
  	minVersion, err := utilversion.ParseGeneric(iptablesMinVersion)
  	if err != nil {
  		return false, err
  	}
  	versionString, err := iptver.GetVersion()
  	if err != nil {
  		return false, err
  	}
  	version, err := utilversion.ParseGeneric(versionString)
  	if err != nil {
  		return false, err
  	}
  	if version.LessThan(minVersion) {
  		return false, nil
  	}
  
  	// Check that the kernel supports what we need.
  	if err := kcompat.IsCompatible(); err != nil {
  		return false, err
  	}
  	return true, nil
  }
docs: // CanUseIPTablesProxier returns true if we should use the iptables Proxier
  // instead of the "classic" userspace Proxier.  This is determined by checking
  // the iptables version and for the existence of kernel features. It may return
  // an error if it fails to get the iptables version without error, in which
  // case it will also return false.