code: def _add_ubridge_connection(self, nio, adapter_number):
          
  
          try:
              adapter = self._ethernet_adapters[adapter_number]
          except IndexError:
              raise DockerError("Adapter {adapter_number} doesn't exist on Docker container '{name}'".format(name=self.name,
                                                                                                             adapter_number=adapter_number))
  
          for index in range(4096):
              if "tap-gns3-e{}".format(index) not in psutil.net_if_addrs():
                  adapter.host_ifc = "tap-gns3-e{}".format(str(index))
                  break
          if adapter.host_ifc is None:
              raise DockerError("Adapter {adapter_number} couldn't allocate interface on Docker container '{name}'. Too many Docker interfaces already exists".format(name=self.name,
                                                                                                                                                                      adapter_number=adapter_number))
          bridge_name = 'bridge{}'.format(adapter_number)
          yield from self._ubridge_send('bridge create {}'.format(bridge_name))
          self._bridges.add(bridge_name)
          yield from self._ubridge_send('bridge add_nio_tap bridge{adapter_number} {hostif}'.format(adapter_number=adapter_number,
                                                                                                    hostif=adapter.host_ifc))
          log.debug("Move container %s adapter %s to namespace %s", self.name, adapter.host_ifc, self._namespace)
          try:
              yield from self._ubridge_send('docker move_to_ns {ifc} {ns} eth{adapter}'.format(ifc=adapter.host_ifc,
                                                                                               ns=self._namespace,
                                                                                               adapter=adapter_number))
          except UbridgeError as e:
              raise UbridgeNamespaceError(e)
  
          if nio:
              yield from self._connect_nio(adapter_number, nio)
docs: Creates a connection in uBridge.
  
          :param nio: NIO instance or None if it's a dummy interface (if an interface is missing in ubridge you can't see it via ifconfig in the container)
          :param adapter_number: adapter number