code: def add_nio(self, nio, port_number):
          
  
          if port_number in self._nios:
              raise DynamipsError("Port {} isn't free".format(port_number))
  
          yield from self._hypervisor.send('ethsw add_nio "{name}" {nio}'.format(name=self._name, nio=nio))
  
          log.info('Ethernet switch "{name}" [{id}]: NIO {nio} bound to port {port}'.format(name=self._name,
                                                                                            id=self._id,
                                                                                            nio=nio,
                                                                                            port=port_number))
          self._nios[port_number] = nio
          for port_settings in self._ports:
              if port_settings["port_number"] == port_number:
                  yield from self.set_port_settings(port_number, port_settings)
                  break
docs: Adds a NIO as new port on Ethernet switch.
  
          :param nio: NIO instance to add
          :param port_number: port to allocate for the NIO