3.5.4.7.1.4 DhcpScopeAssociatedWithVendorClassesEnumerationParameters

This is the processing done when the EnumInputParameters contains data of type DhcpScopeAssociatedWithVendorClassesEnumerationParameters. The ObjectType MUST be EnumerationObjectType.DhcpScope. This is used to enumerate all the DHCP scopes that are present on a specified DHCP server and having an option specified for a particular vendor class. The DhcpScopeAssociatedWithVendorClassesEnumerationParameters.AddressFamily is used to determine the simple table within the ADM_DHCPScopesTable compound table on which the processing has to be done. The following are the steps involved in identifying the rows to be returned as a part of the enumeration.

  1. If DhcpScopeAssociatedWithVendorClassesEnumerationParameters.VendorClassRecordIds is not specified or is an empty collection, EnumOutputData is assigned an empty collection.

  2. Fetch the DHCP Server against which the scopes having options of the specified vendor classes are required. This is done by calling the procedure GetDHCPServerFromTable and passing the following parameters:

    • Param_Id is set to DhcpScopeAssociatedWithVendorClassesEnumerationParameters.ParentServerRecordId.

    • Param_addressfamily is assigned the value of DhcpScopeAssociatedWithVendorClassesEnumerationParameters.AddressFamily.

  3. If any of the entry in the DhcpScopeAssociatedWithVendorClassesEnumerationParameters.VendorClassRecordIds is 0, it means the scopes associated with default vendor class option is being requested. Perform the following steps to enumerate the rows:

    1. In this case, enumerate all the scopes in ADM_DHCPScopesTable whose DHCPServerRecordId is the same as DhcpScopeAssociatedWithVendorClassesEnumerationParameters.ParentServerRecordId.

  4. Otherwise perform the following steps to enumerate the rows of interest.

    1. Enumerate the option definitions from Result_server.OptionDefinitions whose VendorClassRecordId is one of the values in the list DhcpScopeAssociatedWithVendorClassesEnumerationParameters.VendorClassRecordIds.

    2. For each of the enumerated option definitions, enumerate the rows in the ADM_DhcpOptionsTable whose ScopeRecordId is not null and OptionDefinitionRecordId is the same as the RecordId of the option definition that is getting enumerated. This will provide the list of scopes in the form of RecordId in ADM_DHCPScopesTable which are associated with the specified vendor class.

    3. Enumerate the scopes with the RecordId in the list generated above.

  5. For each row enumerated in the ADM_DHCPScopesTable, perform the following steps to generate the enumerated data.

    1. Call the procedure GetScopeFromTable of ADM_DHCPScopesTable passing the following input parameters:

      • Param_Id is set to the RecordId of the row being enumerated.

      • Param_addressFamily is set to DhcpScopeAssociatedWithVendorClassesEnumerationParameters.AddressFamily.

    2. Add the Result_scope returned by the procedure to EnumOutputData.