docs: def discover_connections(self, x=255, y=255):
          """Attempt to discover all available Ethernet connections to a machine.
  
          After calling this method, :py:class:`.MachineController` will attempt
          to communicate via the Ethernet connection on the same board as the
          destination chip for all commands.
  
          If called multiple times, existing connections will be retained in
          preference to new ones.
  
          .. note::
              The system must be booted for this command to succeed.
  
          .. note::
              Currently, only systems comprised of multiple Ethernet-connected
              SpiNN-5 boards are supported.
  
          Parameters
          ----------
          x : int
          y : int
              (Optional) The coordinates of the chip to initially use to query
              the system for the set of live chips.
  
          Returns
          -------
          int
              The number of new connections established.
          """
          working_chips = set(
              (x, y)
              for (x, y), route in iteritems(self.get_p2p_routing_table(x, y))
              if route != consts.P2PTableEntry.none)
          self._width = max(x for x, y in working_chips) + 1
          self._height = max(y for x, y in working_chips) + 1
  
          num_new_connections = 0
  
          for x, y in spinn5_eth_coords(self._width, self._height,
                                        *self.root_chip):
              if (x, y) in working_chips and (x, y) not in self.connections:
                  # Discover the chip's IP address
                  try:
                      ip = self.get_ip_address(x, y)
                  except SCPError:
                      continue
  
                  if ip is not None:
                      # Create a connection to the IP
                      self.connections[(x, y)] = \
                          SCPConnection(ip, self.scp_port,
                                        self.n_tries, self.timeout)
  
                      # Attempt to use the connection (and remove it if it
                      # doesn't work)
                      try:
                          self.get_software_version(x, y, 0)
                          num_new_connections += 1
                      except SCPError:
                          self.connections.pop((x, y)).close()
  
          return num_new_connections