3.1.3.2 Master and Nonmaster Locator Initialization

Any implementation of the Remote Procedure Call Location Services Extensions MUST determine its role using the following algorithm:

  1. The locator determines whether the computer on which it is running, is joined to the domain and whether it is acting as a domain controller of the domain.

  2. Locators running on a domain controller MUST initialize as a master locator.

  3. Locators running on a domain-joined computer, but not running as a domain controller, MUST initialize as a nonmaster locator. A nonmaster locator MUST initialize the list of potential master locators by enumerating the computers running as domain controllers in the domain.

  4. Locators running on a non-domain-joined computer MUST initialize as a nonmaster locator. An implementation SHOULD change its role from nonmaster locator to master locator if no master locator is discovered by the master locator discovery process or if the master locators discovered are not reachable. As part of this process, the locator MUST perform master locator-specific initialization, as specified in section 3.4.1.3.

  5. Any locator that becomes a master locator and responds to a master locator discovery query or sends a broadcast lookup request as specified in section 3.4 SHOULD continue to remain as a master locator.

  6. Master locator reachability MAY be determined by making a call on the I_nsi_ping_locator method on the LocToLoc interface.<7>