code: func validateCSINodeDriver(driver storage.CSINodeDriver, driverNamesInSpecs sets.String, fldPath *field.Path) field.ErrorList {
  	allErrs := field.ErrorList{}
  
  	allErrs = append(allErrs, apivalidation.ValidateCSIDriverName(driver.Name, fldPath.Child("name"))...)
  	allErrs = append(allErrs, validateCSINodeDriverNodeID(driver.NodeID, fldPath.Child("nodeID"))...)
  
  	// check for duplicate entries for the same driver in specs
  	if driverNamesInSpecs.Has(driver.Name) {
  		allErrs = append(allErrs, field.Duplicate(fldPath.Child("name"), driver.Name))
  	}
  	driverNamesInSpecs.Insert(driver.Name)
  	topoKeys := make(sets.String)
  	for _, key := range driver.TopologyKeys {
  		if len(key) == 0 {
  			allErrs = append(allErrs, field.Required(fldPath, key))
  		}
  
  		if topoKeys.Has(key) {
  			allErrs = append(allErrs, field.Duplicate(fldPath, key))
  		}
  		topoKeys.Insert(key)
  
  		for _, msg := range validation.IsQualifiedName(key) {
  			allErrs = append(allErrs, field.Invalid(fldPath, driver.TopologyKeys, msg))
  		}
  	}
  
  	return allErrs
  }
docs: // validateCSINodeDriver tests if CSINodeDriver has valid entries