code: def port_add_nio_binding(self, port_number, nio):
          
  
          if not self._ethernet_adapter.port_exists(port_number):
              raise VPCSError("Port {port_number} doesn't exist in adapter {adapter}".format(adapter=self._ethernet_adapter,
                                                                                             port_number=port_number))
  
          if self.is_running():
              yield from self.add_ubridge_udp_connection("VPCS-{}".format(self._id), self._local_udp_tunnel[1], nio)
  
          self._ethernet_adapter.add_nio(port_number, nio)
          log.info('VPCS "{name}" [{id}]: {nio} added to port {port_number}'.format(name=self._name,
                                                                                    id=self.id,
                                                                                    nio=nio,
                                                                                    port_number=port_number))
  
          return nio
docs: Adds a port NIO binding.
  
          :param port_number: port number
          :param nio: NIO instance to add to the slot/port