code: def adapter_add_nio_binding(self, adapter_number, nio):
          
  
          try:
              adapter = self._ethernet_adapters[adapter_number]
          except IndexError:
              raise QemuError('Adapter {adapter_number} does not exist on QEMU VM "{name}"'.format(name=self._name,
                                                                                                   adapter_number=adapter_number))
  
          if self.is_running():
              try:
                  yield from self.add_ubridge_udp_connection("QEMU-{}-{}".format(self._id, adapter_number),
                                                             self._local_udp_tunnels[adapter_number][1],
                                                             nio)
              except (IndexError, KeyError):
                  raise QemuError('Adapter {adapter_number} does not exist on QEMU VM "{name}"'.format(name=self._name,
                                                                                                       adapter_number=adapter_number))
  
          adapter.add_nio(0, nio)
          log.info('QEMU VM "{name}" [{id}]: {nio} added to adapter {adapter_number}'.format(name=self._name,
                                                                                             id=self._id,
                                                                                             nio=nio,
                                                                                             adapter_number=adapter_number))
docs: Adds a port NIO binding.
  
          :param adapter_number: adapter number
          :param nio: NIO instance to add to the adapter