docs: def update_port_postcommit(self, context):
          """Send port updates to CVX
  
          This method is also responsible for the initial creation of ports
          as we wait until after a port is bound to send the port data to CVX
          """
          port = context.current
          orig_port = context.original
          network = context.network.current
  
          log_context("update_port_postcommit: port", port)
          log_context("update_port_postcommit: orig", orig_port)
  
          tenant_id = port['project_id']
  
          # Device id can change without a port going DOWN, but the new device
          # id may not be supported
          if orig_port and port['device_id'] != orig_port['device_id']:
              self._delete_port_resources(orig_port, context.original_host)
  
          if context.status == n_const.PORT_STATUS_DOWN:
              if (context.original_host and
                      context.status != context.original_status):
                  self._delete_port_resources(orig_port, context.original_host)
                  self._try_to_release_dynamic_segment(context, migration=True)
          else:
              self.create_tenant(tenant_id)
              self.create_network(network)
              if context.binding_levels:
                  segments = [
                      level['bound_segment'] for level in context.binding_levels]
                  self.create_segments(segments)
              self.create_instance(port)
              self.create_port(port)
              self.create_port_binding(port, context.host)