code: func (r *ForwarderRequest) CreateEndpoint(queue *waiter.Queue) (tcpip.Endpoint, *tcpip.Error) {
  	ep := newEndpoint(r.stack, r.route.NetProto, queue)
  	if err := r.stack.RegisterTransportEndpoint(r.route.NICID(), []tcpip.NetworkProtocolNumber{r.route.NetProto}, ProtocolNumber, r.id, ep, ep.reusePort); err != nil {
  		ep.Close()
  		return nil, err
  	}
  
  	ep.id = r.id
  	ep.route = r.route.Clone()
  	ep.dstPort = r.id.RemotePort
  	ep.regNICID = r.route.NICID()
  
  	ep.state = stateConnected
  
  	ep.rcvMu.Lock()
  	ep.rcvReady = true
  	ep.rcvMu.Unlock()
  
  	ep.HandlePacket(r.route, r.id, r.vv)
  
  	return ep, nil
  }
docs: // CreateEndpoint creates a connected UDP endpoint for the session request.