code: func OnConnect(memif *libmemif.Memif) (err error) {
  	details, err := memif.GetDetails()
  	if err != nil {
  		fmt.Printf("libmemif.GetDetails() error: %v\n", err)
  	}
  	fmt.Printf("memif %s has been connected: %+v\n", memif.IfName, details)
  
  	stopCh = make(chan struct{})
  	// Start a separate go routine for each RX queue.
  	// (memif queue is a unit of parallelism for Rx/Tx).
  	// Beware: the number of queues created may be lower than what was requested
  	// in MemifConfiguration (the master makes the final decision).
  	// Use Memif.GetDetails to get the number of queues.
  	var i uint8
  	for i = 0; i < uint8(len(details.RxQueues)); i++ {
  		wg.Add(1)
  		go IcmpResponder(memif, i)
  	}
  	return nil
  }
docs: // OnConnect is called when a memif connection gets established.