code: func ListenUDP(priv *ecdsa.PrivateKey, conn conn, nodeDBPath string, netrestrict *netutil.Netlist) (*Network, error) {
  	realaddr := conn.LocalAddr().(*net.UDPAddr)
  	transport, err := listenUDP(priv, conn, realaddr)
  	if err != nil {
  		return nil, err
  	}
  	net, err := newNetwork(transport, priv.PublicKey, nodeDBPath, netrestrict)
  	if err != nil {
  		return nil, err
  	}
  	log.Info("UDP listener up", "net", net.tab.self)
  	transport.net = net
  	go transport.readLoop()
  	return net, nil
  }
docs: // ListenUDP returns a new table that listens for UDP packets on laddr.