10.3. Sun Ray Client Boot Process

This process flow shows how a Sun Ray Client obtains its basic network parameters, firmware server, and Sun Ray server.


The Configuration GUI must be enabled on the client for the user to locally configure the Sun Ray parameters. Locally configured parameter values override network values with the exception of MTU, which is always the minimum of the values seen.

  1. Power unit on.

  2. Read local configuration (from Configuration GUI), if present.

    1. netType = STATIC IP OR DHCP OR Auto-config (IPv6)

    2. If netType is STATIC IP, use locally configured values for

      • IP Address

      • Net mask

      • Broadcast address

      • Router

      • MTU

  3. Bring up the network interface.

    1. If any networking values missing, then perform DHCP.

    2. If AuthSrvr value is not defined, then perform DHCP_INFORM request.

    3. Merge any local values, DHCP vendor options, and DHCP_INFORM values (local values override DHCP except MTU, which is minimum of values seen).

    4. If XDispMgr was given by DHCP AND no AltAuth vendor option was found, then set AltAuth to XDispMgr (option 49) values.

  4. Read Configuration Parameter file (model.parms file) on firmware server.

    1. Try the to find firmware servers that contain .parms file, in order:

      1. Locally configured value

      2. DHCP vendor option (FWSrvr)

      3. Option 66 (TftpSrvr) IP Address or DNS name

      4. DNS lookup of "sunray-config-servers" (if mapped to multiple addresses, choose one randomly)

    2. Download the .parms file.

      1. Search for SunRayPx.MAC.parms.

      2. Search for SunRayPx.parms.

    3. Parse the .parms file.

      • parms.version = firmware version

      • parms.revision = max supported hardware revision

      • parms.barrier = barrier value of server firmware

      • parms.BarrierLevel = barrier override value

      • parms.servers = server list

      • parms.select = inorder | random

    4. If .parms file was successfully parsed OR firmware server was obtained by locally configured value, then go to Step 5.


      If a locally configured firmware server is unreachable or the correct configuration parameter file does not exist, the Sun Ray client will not attempt any of the other methods in Step 4 to locate configuration parameter files. This setup prevents the unintentional loading of a different firmware version than is provided by the locally designated firmware server.

    5. If no .parms file found AND not at end of firmware server list, then go to Step 4 and pick next firmware server on the list.

    6. If no firmware servers left to try, then set following values:

      • parms.version = DHCP vendor option NewTVer (set to NULL string if none provided by DHCP)

      • parms.BarrierLevel = DHCP BarrierLevel (set to current_barrier if none provided by DHCP)

      • set parms.revision to current_revision

      • set parms.barrier to current_barrier

      • set parms.select = inorder

  5. Determine if there is new firmware to load.


    • parms.version is not equal to the current firmware version

    • AND parms.version is not equal to "_NONE_"

    • AND parms.revision is >= to current hardware revision

    • AND either parms.barrier is >= to parms.BarrierLevel or parms.barrier is >= current firmware's barrier level


    1. Download firmware.

    2. Write firmware to flash.

    3. Reboot.


    No firmware is loaded.

  6. Determine a Sun Ray server to connect to.

    1. If AlthAuth/AuthSrvr/parms.servers are all empty, then set server_list to "sunray-servers". Otherwise set server_list to parms.servers.

    2. If untried server_list addresses are left, then:

      1. Select a name in order (or randomly if parms.select=random).

      2. Translate the name to a list of IP addresses (either DNS lookup, or IP address notation).

      3. Select an address from the list in order (or randomly if parms.select=random).

      4. Set that the broadcast address was seen if the selected address is the broadcast address, and select the next address.

      5. Go to Step 6h.

    3. If untried AltAuth addresses are left, then:

      1. Select an address in order (or randomly if parms.select=random).

      2. Set that the broadcast address was seen if the selected address is the broadcast address, and select the next address

      3. Go to Step 6h.

    4. If AuthSrvr is defined, then:

      1. Set address to AuthSrvr.

      2. Go to Step 6h.

    5. If broadcast address was seen, then perform broadcast protocol.

    6. If broadcast response received, then:

      1. Set selected address to responder.

      2. Go to Step 6h.

    7. Timeout in 30 seconds and reboot.

    8. Try to connect to selected address.

    9. If connection fails, then go to Step 6b.

  7. Sun Ray Client is connected.