code: def remove_nio(self, port_number):
          
  
          if port_number not in self._nios:
              raise DynamipsError("Port {} is not allocated".format(port_number))
  
          nio = self._nios[port_number]
          if isinstance(nio, NIOUDP):
              self.manager.port_manager.release_udp_port(nio.lport, self._project)
          if self._hypervisor:
              yield from self._hypervisor.send('ethsw remove_nio "{name}" {nio}'.format(name=self._name, nio=nio))
  
          log.info('Ethernet switch "{name}" [{id}]: NIO {nio} removed from port {port}'.format(name=self._name,
                                                                                                id=self._id,
                                                                                                nio=nio,
                                                                                                port=port_number))
  
          del self._nios[port_number]
          if port_number in self._mappings:
              del self._mappings[port_number]
  
          return nio
docs: Removes the specified NIO as member of this Ethernet switch.
  
          :param port_number: allocated port number
  
          :returns: the NIO that was bound to the port