code: def add(self, properties):
          
          new_vf = super(FakedVirtualFunctionManager, self).add(properties)
          partition = self.parent
          assert 'virtual-function-uris' in partition.properties
          partition.properties['virtual-function-uris'].append(new_vf.uri)
          if 'device-number' not in new_vf.properties:
              devno = partition.devno_alloc()
              new_vf.properties['device-number'] = devno
          return new_vf
docs: Add a faked Virtual Function resource.
  
          Parameters:
  
            properties (dict):
              Resource properties.
  
              Special handling and requirements for certain properties:
  
              * 'element-id' will be auto-generated with a unique value across
                all instances of this resource type, if not specified.
              * 'element-uri' will be auto-generated based upon the element ID,
                if not specified.
              * 'class' will be auto-generated to 'virtual-function',
                if not specified.
              * 'device-number' will be auto-generated with a unique value
                within the partition in the range 0x8000 to 0xFFFF, if not
                specified.
  
              This method also updates the 'virtual-function-uris' property in
              the parent Partition resource, by adding the URI for the faked
              Virtual Function resource.
  
          Returns:
            :class:`zhmcclient_mock.FakedVirtualFunction`: The faked Virtual
              Function resource.