code: func (r *ForwarderRequest) CreateEndpoint(queue *waiter.Queue) (tcpip.Endpoint, *tcpip.Error) {
  	r.mu.Lock()
  	defer r.mu.Unlock()
  
  	if r.segment == nil {
  		return nil, tcpip.ErrInvalidEndpointState
  	}
  
  	f := r.forwarder
  	ep, err := f.listen.createEndpointAndPerformHandshake(r.segment, &header.TCPSynOptions{
  		MSS:           r.synOptions.MSS,
  		WS:            r.synOptions.WS,
  		TS:            r.synOptions.TS,
  		TSVal:         r.synOptions.TSVal,
  		TSEcr:         r.synOptions.TSEcr,
  		SACKPermitted: r.synOptions.SACKPermitted,
  	})
  	if err != nil {
  		return nil, err
  	}
  
  	// Start the protocol goroutine.
  	ep.startAcceptedLoop(queue)
  
  	return ep, nil
  }
docs: // CreateEndpoint creates a TCP endpoint for the connection request, performing
  // the 3-way handshake in the process.