<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://help.openclovis.com/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://help.openclovis.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bot</id>
		<title>OpenClovis Product Documentation - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://help.openclovis.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bot"/>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Special:Contributions/Bot"/>
		<updated>2026-05-02T08:43:54Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.20.2</generator>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/evalguide</id>
		<title>Doc:latest/evalguide</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/evalguide"/>
				<updated>2011-10-24T20:34:01Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Table of contents:&lt;br /&gt;
* [[Doc:latest/evalguide/preface | Preface ]]&lt;br /&gt;
* [[Doc:latest/evalguide/scope | Objectives and Scope ]]&lt;br /&gt;
* [[Doc:latest/evalguide/prerequisites | Hardware and Software Prerequisites]]&lt;br /&gt;
* [[Doc:latest/evalguide/setup | Runtime Hardware Setup ]]&lt;br /&gt;
* [[Doc:latest/evalguide/build | Building the Evaluation System and Deploying Runtime Images]]&lt;br /&gt;
* [[Doc:latest/evalguide/csa |Sample Applications]]&lt;br /&gt;
&amp;lt;!--**[[Doc:latest/evalguide/csa101 | csa101&amp;lt;sub&amp;gt;csa201&amp;lt;/sub&amp;gt; Component Management]]--&amp;gt;&lt;br /&gt;
**[[Doc:latest/evalguide/csa102 | csa102 Redundancy and Failover]]&lt;br /&gt;
**[[Doc:latest/evalguide/csa103 | csa103&amp;lt;sub&amp;gt;csa203&amp;lt;/sub&amp;gt; Checkpointing]]&lt;br /&gt;
**[[Doc:latest/evalguide/csa104 | csa104 Provisioning]]&lt;br /&gt;
**[[Doc:latest/evalguide/csa105 | csa105 Software Alarm Management and Provisioning]]&lt;br /&gt;
&amp;lt;!--**[[Doc:latest/evalguide/csa106 | csa106 HAL/DO (hardware provisioning with Ethernet port)]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--**[[Doc:latest/evalguide/csa111 | csa111 Hello World with logging]]--&amp;gt;&lt;br /&gt;
**[[Doc:latest/evalguide/csa212 | csa212 Event Subscription]]&lt;br /&gt;
**[[Doc:latest/evalguide/csa113 | csa113&amp;lt;sub&amp;gt;csa213&amp;lt;/sub&amp;gt; Event Publication]]&lt;br /&gt;
**[[Doc:latest/evalguide/csa213 | csa213 Event Publication]]&lt;br /&gt;
&amp;lt;!--**[[Doc:latest/evalguide/csa114 | csa114 IOC &amp;amp; RMD]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--**[[Doc:latest/evalguide/csa115 | csa115 Name Service]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--**[[Doc:latest/evalguide/csa501 | csa501 Logical Addressing and RMD calls]]--&amp;gt;&lt;br /&gt;
**[[Doc:latest/evalguide/dhaDemo | Dynamic HA application]]&lt;br /&gt;
**[[Doc:latest/evalguide/csasum | Summary and Next Steps]]&lt;br /&gt;
* [[Doc:latest/evalguide/app_ide | Appendix: SAFplus IDE ]]&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/evalguide/app_ide</id>
		<title>Doc:latest/evalguide/app ide</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/evalguide/app_ide"/>
				<updated>2011-10-24T20:33:37Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Appendix A: SAFplus IDE==&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus IDE is an Integrated Development Environment designed to simplify and accelerate the development of software with the OpenClovis SDK. It  provides a simple and powerful mechanism with easy drag-and-drop features, to create Resources and Components, define attributes and relationships between them. The OpenClovis IDE graphical interface enables you to capture the Information Models through UML notifications and save them as XML files.&lt;br /&gt;
&lt;br /&gt;
This Appendix is only a brief introduction to the IDE and only provides basic information on how to&lt;br /&gt;
*start the OpenClovis IDE&lt;br /&gt;
*view the model which was used to build the the skeleton code for csa101 to csa113&lt;br /&gt;
*generate code based upon the model.&lt;br /&gt;
&lt;br /&gt;
Further information concerning the IDE and creating a model can be found within the ''OpenClovis IDE User Guide'' and ''OpenClovis Sample Application Tutorial''.&lt;br /&gt;
&lt;br /&gt;
As previously mentioned, this appendix assumes you have followed the instructions found in the document ''OpenClovis Installation Guide,'' and installed the SDK. After installing the SDK, we need to create a project area. You may have already created a project area  either by the command &amp;lt;code&amp;gt;cl-create-project-area&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;cl-eval-wizard&amp;lt;/code&amp;gt;. Again to prevent the repetition of data we suggest looking at section [[Doc:Evalguide/build#Evaluation Wizard - Single Node Setup|Evaluation Wizard - Single Node Setup]] and [[Doc:Evalguide/build#Manually Building the Target Images|Manually Building the Target Images]].&lt;br /&gt;
&lt;br /&gt;
===Scope===&lt;br /&gt;
&lt;br /&gt;
This appendix covers instructions to start the OpenClovis IDE and introduce you to the evaluation model that forms the foundation of the Evaluation System. You will be able to see how the values set for Clovis Sample Applications, affect the source code generated and behavior.&lt;br /&gt;
&lt;br /&gt;
Instructions are provided to generate source code. Once the code is generated you have the opportunity to see how we enhanced the generated source code to create the Clovis Sample Applications which were run in Chapter [[Doc:Evalguide/csa#Sample Applications|Sample Applications]].&lt;br /&gt;
&lt;br /&gt;
Although the generated code provides a framework for the Sample Applications without any functionality, instructions are provided on how to configure, build and start SAFplus Platform.&lt;br /&gt;
&lt;br /&gt;
===Starting the IDE===&lt;br /&gt;
&lt;br /&gt;
If you chose to create symbolic links during installation, from the command line enter &amp;lt;code&amp;gt;cl-ide&amp;lt;/code&amp;gt; to launch OpenClovis IDE. Otherwise, from the command line you can either: &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add the installation directory to the shell's search path. For example with a bash shell,&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;export PATH=$PATH:$install_dir/sdk-5.0/bin&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
or&lt;br /&gt;
&amp;lt;li&amp;gt;Execute the command&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;install_dir&amp;gt;/sdk-5.0/bin/cl-ide&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The splash screen for OpenClovis IDE is displayed followed by the Workspace Launcher, as presented in Figure [[#eval_IDEWorkspaceLauncher|OpenClovis IDE Workspace Launcher]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;eval_IDEWorkspaceLauncher&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:eval_IDEWorkspaceLauncher.png|frame|center|'''OpenClovis IDE Workspace Launcher''']]&lt;br /&gt;
&lt;br /&gt;
Within the '''Workspace''' field the default location of the workspace of IDE is placed. This is the location where information concerning the IDE and models created is saved. This can be altered by pressing the '''Browse''' button. Select the workspace directory and click OK to launch OpenClovis IDE as illustrated in the Figure &lt;br /&gt;
[[#eval_IDEWelcomeScreen|OpenClovis IDE Welcome Screen]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;eval_IDEWelcomeScreen&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:eval_IDEWelcomeScreen.png|frame|center|'''OpenClovis IDE Welcome Screen''']]&lt;br /&gt;
&lt;br /&gt;
===Importing the Evaluation Model===&lt;br /&gt;
&lt;br /&gt;
First, we need to import the model. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;eval_ImportEvalModel&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:eval_ImportEvalModel.png|frame|center|'''Importing Evaluation Model into Eclipse Workspace''']]&lt;br /&gt;
&lt;br /&gt;
The Clovis Works model is now presented within the Clovis Workspace View. To, view the Resource Editor, right click on '''eval''' -&amp;gt; select '''Clovis''' -&amp;gt; select '''Resource Editor.''' For the Component Editor right click on '''eval'''-&amp;gt; select '''Clovis''' -&amp;gt; select '''Component Editor.''' The Resource and Component Editor views will now be presented.  See Figures below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;eval_IDEComponentView&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:eval_IDEComponentView.png|frame|center|'''Component View''']]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;eval_IDEResourceView&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:eval_IDEResourceView.png|frame|center|'''Resource View''']]&lt;br /&gt;
&lt;br /&gt;
This is the Evaluation Model used as the foundation of our Evaluation System. From here you have the opportunity to explore the model in its entirety. To understand how to navigate the IDE please refer to the OpenClovis IDE User Guide.&lt;br /&gt;
&lt;br /&gt;
===Generating Source Code===&lt;br /&gt;
&lt;br /&gt;
To generate source code a number of steps are required. Firstly the location of SAFplus Platform and Python needs to be correct. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;eval_IDEASPPython&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:eval_IDEASPPython.png|frame|center|'''Set SAFplus Platform and Python Location''']]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''SAFplus Platform Location''': &lt;br /&gt;
&amp;lt;br&amp;gt;This usually appears by default. This is the location where the SAFplus Platform source code is installed. The default location is usually &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&amp;lt;install_dir&amp;gt;/sdk-5.0/src/SAFplus Platform&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;'''Python Location''': &lt;br /&gt;
&amp;lt;br&amp;gt;Again the location of Python 2.4.2 should appear by default. If this is not the case python can be located within &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&amp;lt;installation-directory&amp;gt;buildtools/local/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;The default &amp;lt;code&amp;gt;&amp;lt;installation-directory&amp;gt;&amp;lt;/code&amp;gt; is &amp;lt;code&amp;gt;/opt/clovis&amp;lt;/code&amp;gt; for root installation and &amp;lt;code&amp;gt;$HOME/clovis&amp;lt;/code&amp;gt; for non root users. This is determined during the installation of the SDK.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once we are certain the locations of SAFplus Platform and Python 2.4.1 are correct we can now generate the code.&lt;br /&gt;
#Within the '''Clovis Workspace View''' highlight '''eval;''' and right click to present a menu.&lt;br /&gt;
#Within the menu select '''Generate Source.'''&lt;br /&gt;
#A '''Project Validation''' pop up window is displayed with the message: &amp;lt;br&amp;gt;'''''eval model has errors/warnings. Do you want to continue?''''' &amp;lt;br&amp;gt;Press '''OK'''&lt;br /&gt;
&lt;br /&gt;
Once '''OK''' is pressed the XML and source code is generated and placed within &lt;br /&gt;
 &amp;lt;project-area_dir&amp;gt;/eval&lt;br /&gt;
&lt;br /&gt;
You will now be able to view this generated source code within&lt;br /&gt;
 &amp;lt;project-area_dir&amp;gt;/eval/src&lt;br /&gt;
&lt;br /&gt;
You have the opportunity to compare how we built upon the generated code to further develop the Clovis Sample Application found within Chapter [[Doc:Evalguide#Sample Applications|Sample Applications]].&lt;br /&gt;
&lt;br /&gt;
===Configuring &amp;amp; Building Generated Code, and Starting SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
Once the code for the eval model is generated, the first choice you will have to make is decide which hardware setup to run the generated code. This information can be found within is discussed in full within Chapter [[Doc:Evalguide/setup#Runtime Hardware Setup|Runtime Hardware Setup]]. &lt;br /&gt;
&lt;br /&gt;
The next logical step is to configure and build this code. There are two methods of doing this, the first via the OpenClovis IDE, as covered within the ''OpenClovis Sample Application Tutorial''. &lt;br /&gt;
&lt;br /&gt;
The second method, as discussed earlier, is via the command line. As you already have this document open we suggest looking again at Chapter [[Doc:Evalguide/build#Building the Evaluation System and Deploying Runtime Images|Building the Evaluation System and Deploying Runtime Images]]: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Doc:Evalguide/build#Modifying the Clovis Sample Applications|Modifying the Clovis Sample Applications]]&lt;br /&gt;
&amp;lt;br&amp;gt;Provides instructions on modifying the generated code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;[[Doc:Evalguide/build#Building SAFplus Platform and the Evaluation System|Building SAFplus Platform and the Evaluation System]]&lt;br /&gt;
&amp;lt;br&amp;gt;Provides details on how to configure and build SAFplus Platform and the generated model. One small difference here is that when we run &amp;lt;code&amp;gt;&amp;lt;install_dir&amp;gt;/sdk-5.0/src/SAFplus/configure -with-model-name&amp;lt;/code&amp;gt; it should be run with the generated eval model. E.g.:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ &amp;lt;install_dir&amp;gt;/sdk-5.0/src/SAFplus/configure \&lt;br /&gt;
  --with-asp-build --with-model-name=eval&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;[[Doc:Evalguide/build#Configuration file - target.conf|Configuration file - target.conf]]&lt;br /&gt;
&amp;lt;br&amp;gt;The Hardware Setup choice you made will be required here in setting up the target.conf file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;[[Doc:Evalguide/build#Building Single/Distributed Target Image(s)|Building Single/Distributed Target Image(s)]]&lt;br /&gt;
&amp;lt;br&amp;gt;Lists commands required to build the target images.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;[[Doc:Evalguide/build#Content of Target Images|Content of Target Images]]&lt;br /&gt;
&amp;lt;br&amp;gt;Provides details of the content of the target images for both the singe and distributed setups.&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;li&amp;gt;[[Doc:Evalguide/build#Runtime Software Installation|Runtime Software Installation]]&lt;br /&gt;
&amp;lt;br&amp;gt;Once the  images have been created this section provides information on how these can be copied to the target.&lt;br /&gt;
&lt;br /&gt;
Once the images are copied to their targets we now have to start/stop SAFplus Platform. This is discussed within Section [[Doc:Evalguide/csa#Starting and Stopping SAFplus|Starting and Stopping SAFplus]].&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Running the Sample Applications===&lt;br /&gt;
&lt;br /&gt;
The sample applications can be run via the SAFplus Platform Console, however, as the code is simply generated from the IDE nothing will happen.&lt;br /&gt;
&lt;br /&gt;
===Summary and Next Steps===&lt;br /&gt;
&lt;br /&gt;
This appendix provided you with specific steps to open the OpenClovis IDE, import and open the Evaluation Model and generate the source code.&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/tutorial</id>
		<title>Doc:latest/tutorial</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/tutorial"/>
				<updated>2011-10-24T20:32:29Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Preface==&lt;br /&gt;
The ''SAFplus Platform Sample Application Tutorial'' is a comprehensive tutorial designed to highlight the steps involved in using SAFplus software to design and build a high availability system. In this tutorial you will learn to:&lt;br /&gt;
* Design a model using the SAFplus IDE&lt;br /&gt;
* Generate code from this model to provide middleware support&lt;br /&gt;
* Customize this code for a particular application&lt;br /&gt;
* Build and deploy the customized code&lt;br /&gt;
* Run the system to see the SAFplus Platform software in action&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Audience===&lt;br /&gt;
&amp;lt;br&amp;gt; ''SAFplus Platform Sample Application Tutorial''  is designed for system integrators, designers, and system architects. To use SAFplus Platform, you should be aware of the fundamentals of operation, management, and configuration of telecommunication and networking domains. You should also be familiar with C programming, UML notations, and have the basic knowledge of Linux.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; This document assumes that you have installed the SAFplus Platform SDK, following the installation steps found in the ''SAFplus Platform Installation Guide''.&lt;br /&gt;
&lt;br /&gt;
===Documentation Conventions===&lt;br /&gt;
This guide uses different fonts and symbols to differentiate between document elements and types of information. These conventions are summarized in the following table.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#cdd6e6&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#d3e3ff&amp;quot;| Notation&lt;br /&gt;
!style=&amp;quot;background:#d3e3ff&amp;quot;| Description&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
|style=&amp;quot;background:#ffccaa&amp;quot; | &amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;Code&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|This font denotes the C code provided in various examples.&amp;lt;br&amp;gt;This font denotes function and variable names.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
|style=&amp;quot;background:#ffffaa&amp;quot; | &amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;Output&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|Terminal output.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
|style=&amp;quot;color:blue&amp;quot; | Cross reference&lt;br /&gt;
|This font denotes a hyperlink. You can click on the hyperlink text to access the reference location, which can be either a section within the guide or a URL link.&amp;lt;br&amp;gt;A cross reference refers to a section name and accesses the first page of that section.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Filenames&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;DIR&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| Files names, Directory paths.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
|&amp;lt;code&amp;gt;$ Commands ''group_identifier''&amp;lt;/code&amp;gt; &lt;br /&gt;
| Commands to be run from a shell.&amp;lt;br&amp;gt; Italic text indicate an argument. This can be replaced with your desired value.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]This indicates the presence of notes or annotations, related to the context of the document. &lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Caution.png]]This indicates that certain precautionary measures must be taken before performing a particular task.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Info.png]]This indicates that additional information is provided to you.&lt;br /&gt;
&lt;br /&gt;
As mentioned in the ''SAFplus Platform Installation Guide'' the default directory for installation is &amp;lt;code&amp;gt;/opt/clovis&amp;lt;/code&amp;gt; for root installation and &amp;lt;code&amp;gt;$HOME/clovis&amp;lt;/code&amp;gt; for non root users. Throughout this document we will use &amp;lt;code&amp;gt;&amp;lt;install_dir&amp;gt;&amp;lt;/code&amp;gt; to refer to the installation directory.&lt;br /&gt;
&lt;br /&gt;
===Related Documents===&lt;br /&gt;
For additional information about OpenClovis products, please refer to the following guides:&lt;br /&gt;
* '''[[Doc:latest/relnotes | SAFplus Platform Release Notes]]''' provides information about the software and the hardware required to install OpenClovis SAFplus Availability/Scalability Platform and Integrated Development Environment (IDE). It summarizes the additional features and enhancements of the product since the previous release. It also summarizes the issues and limitations of the product and provides workarounds wherever applicable.&lt;br /&gt;
* '''[[Doc:latest/safcompliance | SAFplus Platform SA-Forum Compliance]]''' describes the level of compliance of OpenClovis SAFplus Platform and its Application Programming Interface (API) with the relevant Service Availability Forum Specifications.&lt;br /&gt;
* '''[[Doc:latest/installguide | SAFplus Platform Installation Guide]]''' provides the system requirements, installation procedure for OpenClovis SAFplus Platform, IDE, and the Evaluation System.&lt;br /&gt;
* '''[[Doc:latest/tutorial | SAFplus Platform Sample Application Tutorial]]''' explains the steps to create and build a sample model using OpenClovis IDE and OpenClovis SAFplus Platform. It also provides troubleshooting information for this process. This provides the logical first step in understanding the SAFplus Platform offering.&lt;br /&gt;
* '''[[Doc:latest/evalguide | SAFplus Platform Evaluation System User Guide]]''' provides all the required information to configure and run the sample models packaged within the Evaluation System. This document also provides good understanding of OpenClovis SAFplus Platform's functionality. This is the natural follow on to the ''OpenClovis Sample Application Tutorial'' as it builds on the example created in that document. &lt;br /&gt;
* '''[[Doc:latest/sdkguide | SAFplus Platform SDK User Guide]]''' provides information about SAFplus Availability/Scalability Platform architecture, various SAFplus Platform components, and their interactions. This guide helps you to configure the OpenClovis SAFplus Platform components, compile, and execute the SAFplus Platform code to build your custom application.&lt;br /&gt;
* '''[[Doc:latest/ideguide | SAFplus Platform IDE User Guide]]''' describes the usage of Integrated Development Environment (IDE), a graphical development environment that complements the SAFplus Platform. This guide helps you to understand how to use the various features of the IDE to build the application.&lt;br /&gt;
* '''[[Doc:latest/logtoolguide | SAFplus Platform Log Tool User Guide]]''' provides information about the usage of OpenClovis Log Tool. OpenClovis Log Tool is an interactive utility that allows you to view binary log files in a readable format and hence monitor system errors, warnings, and other log information. Log Tool allows you to format the &amp;lt;code&amp;gt;.log&amp;lt;/code&amp;gt; files and filter them to view the required entries.&lt;br /&gt;
* '''SAFplus Platform API Reference Guide [http://www.openclovis.org/doc/latest/apirefs/index.html]''' is provided for each component. It describes the Application Programming Interface (API), Service Model, and Management Information Model of the various OpenClovis Application Service Platform (SAFplus Platform) services. It helps the developer to understand the capabilities of the SAFplus Platform services and the APIs provided by these services.&lt;br /&gt;
* '''[[SAFplus Platform Console Reference Guide]]''' provides details about managing applications built on SAFplus Platform using the SAFplus Platform runtime debug console commands. SAFplus Platform Console commands can be used to manage, monitor, and test your application.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Online Technical Support===&lt;br /&gt;
OpenClovis customers and partners can register on our Web site and receive personalized services and information. If you need any support or assistance while working on OpenClovis products, you can access the following: URL: http://www.openclovis.com. Send your queries to: support@openclovis.com. Open source community support is available at: http://www.openclovis.org/forum.&lt;br /&gt;
&lt;br /&gt;
===Documentation Feedback===&lt;br /&gt;
We are interested in hearing from our customers on the documentation provided with the product. Let us know your comments and suggestions on improving the documentation at OpenClovis Inc. Send your comments to: support@openclovis.com. Or even better, edit (or comment in) the page on our documentation wiki located at [http://help.openclovis.com http://help.openclovis.com].&lt;br /&gt;
&lt;br /&gt;
==Our Example: The csa101 System==&lt;br /&gt;
The ''SAFplus Platform Sample Application Tutorial'' will take you through a series of examples each introducing a key concept of the product. Each example builds on the example before it so it is important to go through them in order. The examples are named so that it is easy to determine their sequence. The examples all begin with the letters '''csa''' (standing for Clovis Sample Application) and end with a number. Our first example will be '''csa101'''.&lt;br /&gt;
&lt;br /&gt;
The purpose of our first example is to highlight basic component management. It introduces the basic skeleton of a SAFplus Platform based application component and illustrates how it interacts with the System. It demonstrates basic component registration and life-cycle management.&lt;br /&gt;
&lt;br /&gt;
We will keep this first example very simple. It will consist of the SAFplus Platform running a small component named '''csa101'''. All that this component will do is continuously print 'Hello World!' to a log file. While this component is not very exciting, it will allow us to easily see when the application is in a running state and when it is not. This will allow us to focus on the infrastructure of SAFplus Platform and how the application interfaces with it.&lt;br /&gt;
&lt;br /&gt;
For this example we will assume that we have a chassis with five slots. We will have one type of blade in our example, a '''System Controller'''.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]With the type of model we are developing we would typically define two blade types to install in these slots. The first blade type would be a '''System Controller''' blade (which is responsible for running the SAFplus Platform software which manages application startup, shutdown, failover, etc.) and the second blade type would be a '''Payload''' blade (which is responsible for running our custom '''csa101''' application). However, for the purpose of simplifying the deployment of our system, we will define only the '''System Controller''' blade type and have both the SAFplus Platform and component application run on this one blade. This will allow the example to be run on a single PC.&lt;br /&gt;
&lt;br /&gt;
==Creating the csa101 Model==&lt;br /&gt;
The first step in setting up our example is to create a model which represents the system that we will eventually deploy. This is done through the '''SAFplus Platform IDE'''. In this chapter we will step through the following tasks:&lt;br /&gt;
* Create a project area&lt;br /&gt;
* Launch the '''SAFplus Platform IDE'''&lt;br /&gt;
* Create the IDE project&lt;br /&gt;
* Specify the Resource model (the types of physical hardware in our system)&lt;br /&gt;
* Specify the Component model (the types of components or applications in our system)&lt;br /&gt;
* Specify which Components run on which Resources&lt;br /&gt;
* Specify important build and boot parameters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Creating a New Project Area===&lt;br /&gt;
A project area is a directory on your system where you can develop SAFplus Platform models and generate the code corresponding to those models. The project area can hold multiple models allowing you to manage all of your models in one location. All the models in the same project area share the same SAFplus Platform source tree. This way any modifications made to the SAFplus Platform source tree are re-used across all the models that were created in that project area.&lt;br /&gt;
&lt;br /&gt;
You create a project area using a script from the command line. To create a project area named '''projectarea1''' in the '''/home/clovis''' directory you should execute the following command:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# cl-create-project-area /home/clovis/projectarea1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Launching the SAFplus Platform IDE===&lt;br /&gt;
You can launch the '''SAFplus Platform IDE''' from the command line. If you chose to create symbolic links during installation you can simply enter &amp;lt;code&amp;gt;'''cl-ide'''&amp;lt;/code&amp;gt; from any directory. If you did not create symbolic links during installation you can either:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add the installation directory to the shells search path and then launch the IDE. For example with a bash shell, &lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# export PATH=$PATH:$install_dir/sdk-5.0/bin&lt;br /&gt;
# cl-ide&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;li&amp;gt;Execute the command&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;install_dir&amp;gt;/sdk-5.0/bin/cl-ide&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The splash screen for SAFplus Platform IDE is displayed as illustrated in Figure [[#SAFplus Platform IDE Opening Screen | SAFplus Platform IDE Opening Screen]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='SAFplus Platform IDE Opening Screen'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_GettingStartedIDE_OpeningScreen.png|frame|center| '''SAFplus Platform IDE Opening Screen''' ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will then be prompted to select a workspace in which to do your work as illustrated in Figure [[#SAFplus Platform IDE Workspace Launcher | SAFplus Platform IDE Workspace Launcher]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='SAFplus Platform IDE Workspace Launcher'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_GettingStartedIDE_WorkspaceLauncher.png|frame|center| '''SAFplus Platform IDE Workspace Launcher''' ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The workspace you select should correspond to the project area that you created in the previous section (in this case &amp;quot;/home/clovis/projectarea1&amp;quot;). Note that the workspace includes a subdirectory of &amp;quot;/ide_workspace&amp;quot;. This is done strictly for organizational purposes. It keeps the IDE models separate from the generated SAFplus Platform models and code.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Select the workspace and click  '''OK'''  to launch SAFplus Platform IDE as illustrated in the Figure [[#SAFplus Platform IDE Welcome Screen | SAFplus Platform IDE Welcome Screen]].&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='SAFplus Platform IDE Welcome Screen'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_WelcomeScreen.png|frame|center| '''SAFplus Platform IDE Welcome Screen''' ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The '''SAFplus Platform''' IDE is launched and you are now looking at the main work area. For more information about the components of this main work area including the SAFplus Platform IDE menu and toolbar, see ''SAFplus Platform IDE User Guide''.&lt;br /&gt;
&lt;br /&gt;
===Creating the Sample Project===&lt;br /&gt;
We will now create a project within the '''SAFplus Platform IDE'''. This project will hold both the resource model and the component model for our example system. The resource model is a physical view of the resources (the chassis, the blade types, etc.) in our system. The component model is a logical view of the components (applications, etc.) in our system.&lt;br /&gt;
&lt;br /&gt;
We will be using the '''New Project Wizard''' to create our project. The wizard captures some high-level information about the system that we are building and performs a lot of the basic setup for us.&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]The same model that we are building through the wizard could also be created manually through the Resource and Component Editors. For more information on the Resource and Component Editors see ''SAFplus Platform IDE User Guide''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To launch the '''New Project Wizard''' select  '''File'''  &amp;gt;  '''New''' &amp;gt;  '''Project''' from the IDE menu bar.&lt;br /&gt;
&lt;br /&gt;
The  '''New Project Wizard''' is displayed and  '''Clovis System Project'''  is selected by default as illustrated in Figure [[#New Project Wizard | New Project Wizard]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='New Project Wizard'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_GettingStartedIDE_NewProjectWizard.png|frame|center| '''New Project Wizard''' ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click  '''Next'''. The  '''Clovis System Project''' window is displayed as illustrated in Figure [[#Clovis System Project | Clovis System Project]].&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span id='Clovis System Project'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_NewProject.png|frame|center| '''Clovis System Project''' ]]&lt;br /&gt;
&lt;br /&gt;
Enter the following information:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Project Name''' : Enter the name of your new project as  '''SampleModel'''.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]Do not use spaces or special characters for the project name. The project name can be alphanumeric, but cannot start with a number or have only numbers.&lt;br /&gt;
&amp;lt;br&amp;gt;Select  '''Use default'''  to use the same directory mentioned in the  '''Directory'''  field. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;'''SDK Location''': Enter the location where the SAFplus Platform SDK was installed. For e.g. if the SDK was installed at location /opt/clovis, then the SDK location is /opt/clovis/sdk-&amp;lt;version&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;'''Project Area Location''': Enter the location where the generated source code for the model should be stored.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]This can be any existing directory but is usually the project area that was created in the previous section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;'''Python Location''': Enter the location where Python 2.5.0 is installed on your system. If Python 2.5.0 was installed by SAFplus Platform SDK, the directory is  &amp;lt;code&amp;gt;'''&amp;lt;installation_directory&amp;gt;/buildtools/local/bin'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click '''Next'''. The '''Add New Blade Type''' window is displayed. This dialog is used to define the blade types that are in our system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Add New Blade Type'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_AddBlade.png|frame|center| '''Add New Blade Type''' ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Remember that the system we are modelling has only one blade type...a System Controller.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Use the '''Add''' button to add a new blade type to the list. Name this blade type 'SysBlade' (for System Controller blade).&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Click '''Next'''. The '''Add New SAF Node Type''' window is displayed. This dialog is used to define the type of logical node that will be run on the corresponding blade type defined in the previous dialog.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Add New SAF Node Type'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_AddNode.png|frame|center| '''Add New SAF Node Type''' ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Node types represent groups of software. They are classified as either a System Controller class or a Payload class. This distinction gives the node type certain characteristics which cause it to behave in a well-defined manner. Since we have only a System Controller in our system we will add a node type of class System Controller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Use the '''Add''' button to add a new node type to the list. Name the node type 'SCNode' and ensure that its node class is 'System Controller (SAF Class B)'.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Click '''Next'''. The '''Specify Program Names''' window is displayed. This dialog is used to create programs or SAF Service Types and associate them with the SAF Node Types specified in the previous dialog.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Specify Program Names'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_DefineProgramNames.png|frame|center| '''Specify Program Names''' ]]&lt;br /&gt;
&lt;br /&gt;
In our system we need one SAF Service Type which represents our high availability software (csa101 that continously prints &amp;quot;Hello World!&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Use the '''Add''' button to add a program name to the list. Change the program name to 'csa101' and associate the program with the 'SCNode' node type.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Click '''Finish'''. This will create the sample model using the blade type, node type, and program name information collected through the 'New Project Wizard' dialogs.&lt;br /&gt;
&lt;br /&gt;
===Viewing the Model===&lt;br /&gt;
&lt;br /&gt;
====The SAFplus Platform IDE Perspective====&lt;br /&gt;
Once the wizard pages are closed you will be returned to the main IDE view also known as the '''SAFplus Platform IDE Perspective'''. On the left hand side of this view you will see the '''Clovis Workspace''' pane which contains the new project you just created with all project related files and folders. The folders are displayed based on your filter settings. With the default filter settings, the folders shown in Figure [[#Clovis Workspace|Clovis Workspace]] is displayed in the '''Clovis Workspace''' pane. For information about filter settings, refer  ''SAFplus Platform IDE User Guide''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Clovis Workspace'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_GettingStartedIDE_ClovisWorkspace.png|frame|center|Clovis Workspace]]&lt;br /&gt;
&lt;br /&gt;
By default, the '''Resource''' and '''Component''' Editor views are available for the created project. To view them, click '''Clovis''' on the menu bar at the top of the screen and select '''Resource Editor''' or  '''Component Editor'''  from the menu. You can also click '''Resource Editor''' or '''Component Editor''' icons from the tool bar as shown in Figure [[#SAFplus Platform IDE Tool Bar | SAFplus Platform IDE Tool Bar]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='SAFplus Platform IDE Tool Bar'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_Toolbar.png|frame|center| '''SAFplus Platform IDE Tool Bar''' ]]&lt;br /&gt;
&lt;br /&gt;
====Resource Editor View====&lt;br /&gt;
The '''Resource Editor''' shows the types of physical objects in our system. It gives us a place to create new objects and interact with the objects that already exist. The '''Resource Editor''' view for our model should look similar to the following figure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='SAFplus Platform Resource Editor'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_ResourceEditor.png|frame|center| '''SAFplus Platform Resource Editor''' ]]&lt;br /&gt;
&lt;br /&gt;
This editor always has a '''Chassis''' object which is the root of all other objects in the editor. In our case it also has the '''SysBlade''' blade type that we created through the '''Project Creation Wizard'''. You will also notice that the '''SysBlade''' is attached to the '''Chassis''' using a '''Composition''' relationship indicating that '''SysBlade'''s reside within the '''Chassis'''.&lt;br /&gt;
&lt;br /&gt;
On the right hand side of the editor view you will see the '''Palette''' which can be expanded and collapsed. Expanding the '''Palette''' you will see the list of objects that can be dragged onto the editor view to add to our model. Once an object is on the editor view you can view and change its properties by right clicking on the object and selecting '''Properties...''' from the context menu.&lt;br /&gt;
&lt;br /&gt;
For more information about the '''Resource Editor''' view see ''SAFplus Platform IDE User Guide''.&lt;br /&gt;
&lt;br /&gt;
====Component Editor View====&lt;br /&gt;
The '''Component Editor''' shows the types of logical objects in our system. It gives us a place to create new objects and interact with the objects that already exist. The '''Component Editor''' view for our model should look similar to the following figure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='SAFplus Platform Component Editor'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_ComponentEditor.png|frame|center| '''SAFplus Platform Component Editor''' ]]&lt;br /&gt;
&lt;br /&gt;
This editor always has a '''Cluster''' object which is the root of all other objects in the editor. In our case it also has the '''SCNode''' node type and the '''csa101''' SAF Service Type (a combination of Service Group, Service Unit, Service Instance, Component Service Instance, and SAF Component) that we created through the '''Project Creation Wizard'''. These have all been automatically attached in a way that makes a working model.&lt;br /&gt;
&lt;br /&gt;
On the right hand side of the editor view you will see the '''Palette''' which can be expanded and collapsed. Expanding the '''Palette''' you will see the list of objects that can be dragged onto the editor view to add to our model. Once an object is on the editor view you can view and change its properties by right clicking on the object and selecting '''Properties...''' from the context menu.&lt;br /&gt;
&lt;br /&gt;
For more information about the '''Component Editor''' view see ''SAFplus Platform IDE User Guide''.&lt;br /&gt;
&lt;br /&gt;
===Configuring the Components===&lt;br /&gt;
The '''New Project Wizard''' that we used to create our project configured the system using the most common options. We will have to make a few changes to this model in order for our example to work. We will make these changes in the '''Component Editor''' view.&lt;br /&gt;
&lt;br /&gt;
In the Component Editor you will notice seven different objects that were created by the wizard. The first two of these are:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Cluster: The root object of all other objects in the Component Editor view.&lt;br /&gt;
&amp;lt;li&amp;gt;SCNode: This is the SAF Node Type that we specified during project creation.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The next five objects all make up the Program or SAF Service Type that we specified on the last dialog of the New Project Wizard. These objects are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;csa101SG: This is the Service Group representing our high availability software component.&lt;br /&gt;
&amp;lt;li&amp;gt;csa101SU: This is the Service Unit that is logically associated with the SCNode SAF Node Type.&lt;br /&gt;
&amp;lt;li&amp;gt;csa101SI: This is the Service Instance&lt;br /&gt;
&amp;lt;li&amp;gt;csa101CSI: This is the Component Service Instance&lt;br /&gt;
&amp;lt;li&amp;gt;csa101: This is the SAF Component which represents our program or executable.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will be making changes to the Service Group (csa101SG), the Service Instance (csa101SI), and the SAF Component (csa101).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Configuring the Service Group====&lt;br /&gt;
To make changes to the Service Group double-click on the box titled '''csa101SG'''. The '''Service Group Details''' dialog is displayed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Service Group Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_ServiceGroupDetails.png|frame|center| '''Service Group Details''' ]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first change we want to make is to the '''Redundancy Model'''. The '''Redundancy Model''' is the strategy that is used by the SAFplus Platform system to recover from a node failure. For our simple model (which only has one node) we are not going to rely on any failover recovery so change the '''Redundancy Model''' to 'No Redundancy' as shown.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]You will notice that when you change the redundancy model some of the other fields are modified automatically and become read-only. This is to ensure integrity of the redundancy models.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The second change that we want to make is to the '''Admin State'''. The '''Admin State''' defines the state of the component when the system is first brought up. In our case we want to change the '''Admin State''' to be 'Locked Initialized'. This means that when the system first starts up this '''Service Group''' (and its subcomponents) will be initialized but not yet put into a running state. So our csa101 application will not yet start printing &amp;quot;Hello World!&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;When you are finished making the changes click the '''OK''' button to commit the changes.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Configuring the Service Instance====&lt;br /&gt;
To make changes to the Service Instance double-click on the box titled '''csa101SI'''. The '''Service Instance Details''' dialog is displayed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Service Instance Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_ServiceInstanceDetails.png|frame|center| '''Service Instance Details''' ]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The only change we want to make here is to the '''Number of standby assignments'''. This value represents the number of components that will be waiting to take over during a node failure and goes hand-in-hand with the '''Redundancy Model''' that we selected for the Service Group. Since we selected 'No Redundancy' for our '''Redundancy Model''' we need to set this value to 0...since we are not supporting any failover in this model.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;When you are finished making the changes click the '''OK''' button to commit the changes.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Configuring the SAF Component====&lt;br /&gt;
To make changes to the SAF Component double-click on the box titled '''csa101'''. The '''SAF Component Details''' dialog is displayed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='SAF Component Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_SAFComponentDetails.png|frame|center| '''SAF Component Details''' ]]&lt;br /&gt;
&lt;br /&gt;
The SAF Component represents our high availabilty program or executable. We need to pass a command line argument to this executable. The reason for this argument is to force the program to print the 'Hello World!' output to a special log file for our viewing. We will look at this more closely when we customize our code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;To add command line parameters click the '''Edit...''' button corresponding to the '''Command line Arguments''' label.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The '''Command line Argument Details''' dialog is displayed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Command line Argument Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_CommandLineArgs.png|frame|center| '''Command line Argument Details''' ]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Click the '''New''' button to add a new value to the list.&lt;br /&gt;
&amp;lt;li&amp;gt;Click on the new value in the list and it will become editable. Change the value to '''-p'''.&lt;br /&gt;
&amp;lt;li&amp;gt;Click the '''OK''' button to save and close the dialog.&lt;br /&gt;
&amp;lt;li&amp;gt;Click the '''OK''' button on the '''SAF Component Details''' dialog to commit the changes to the SAF Component and close the dialog.&lt;br /&gt;
&amp;lt;li&amp;gt;Save the component model using the '''File &amp;gt; Save''' menu item.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuring Physical Instances===&lt;br /&gt;
The configuration of our logical models is complete. During this process we have defined all of the 'types' of objects in our system. Now it is time to configure actual instances of those objects so that they can be built and deployed.&lt;br /&gt;
&lt;br /&gt;
Object instance configuration is done through the Availability Management Framework (AMF) via the '''AMF Configuration''' dialog.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;To launch this dialog go to the the '''Clovis''' menu and select '''AMF Configuration...'''&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The '''AMF Configuration''' dialog is displayed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='AMF Configuration Dialog'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_AMFConfig.png|frame|center| '''AMF Configuration Dialog''' ]]&lt;br /&gt;
&lt;br /&gt;
You will note from the instructions on this page that the physical instances representing the objects in our model can be created manually or by using wizards. Using the wizards will save us both typing and time so we will use these instead of creating each instance manually.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Creating Node Instances====&lt;br /&gt;
First we will create actual instances of the Node Types (in our case only one Node Type...SCNode) we created in our model.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Double-click AMF Configuration in the left hand pane. The Node Instance List appears.&lt;br /&gt;
&amp;lt;li&amp;gt;Click on Node Instance List. The right hand pane displays the fields we must fill out to create our node instance.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the right hand pane:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Select SCNode for the '''Node Type'''.&lt;br /&gt;
&amp;lt;li&amp;gt;Select SysBlade for the '''Blade type'''.&lt;br /&gt;
&amp;lt;li&amp;gt;Enter 1 for the '''Node Count'''.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The complete form should look like the following.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Node Wizard Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_AMFNodeWizardDetails.png|frame|center| '''Node Wizard Details''' ]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Click the '''Create Instance Tree''' button to create our node instance.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expanding the '''Node Instance List''' branch of the '''AMF Configuration''' tree in the left-hand pane reveals a new node instance named SCNodeI0 (indicating SCNode Instance 0).&lt;br /&gt;
&lt;br /&gt;
====Creating Service Group Instances====&lt;br /&gt;
Now we will create actual instances of the Service Groups that we defined in our model.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Click on Service Group List. The right hand pane displays the fields we must fill out to create our service group instance.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the right hand pane:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Select csa101SG (the only service group type we defined) for the '''Service Group Type'''.&lt;br /&gt;
*The '''Associated Node Instances''' list will be populated with all of the node instances that can be associated with the selected service group type.&lt;br /&gt;
&amp;lt;li&amp;gt;Select SCNodeI0 from the '''Associated Node Instances''' list.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The completed form should look like the following.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Service Group Wizard Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_AMFSGWizardDetails.png|frame|center| '''Service Group Wizard Details''' ]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Click the '''Create Instance Tree''' button to create our service group instance.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you now completely expand the '''AMF Configuration''' branch of the tree in the left-hand pane you will see the following.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='AMS Configuration Instance Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_AMSConfigDetails.png|frame|center| '''AMF Configuration Instance Details''' ]]&lt;br /&gt;
&lt;br /&gt;
Notice that not only have the wizards created the node and service group instances for you, they have also filled out the entire instance tree. This was accomplished based on two key sets of information. The first of these is the association that was made between the service group type and the node instance in the '''Service Group Wizard'''. The second set of information is the component model that we created through the New Project Wizard and the Component Editor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]For more information regarding the specific properties of the generated instances see [[#Appendix B: AMF Configuration Instance Details|Appendix B: AMF Configuration Instance Details]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Thats it. We are done modelling the csa101 example!&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Click the OK button to commit our changes and close the dialog. &lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Now its time to generate the framework code.&lt;br /&gt;
&lt;br /&gt;
==Generating the csa101 Code==&lt;br /&gt;
In this step we generate the source code for our example. The code that will be created is the framework code that handles all of the low level functionality provided by SAFplus Platform.&lt;br /&gt;
&lt;br /&gt;
To generate the source code go to the '''Project''' menu and select '''Generate Source'''. Several progress dialogs will appear and after a few seconds code generation will be complete.&lt;br /&gt;
&lt;br /&gt;
The source code and configuration XML files are generated and placed in subdirectories of the '''Project Area Location''' that we specified in the '''New Project Wizard'''. You can review this location by using the '''Project &amp;gt; Properties''' menu to get to the '''Project Properties''' dialog and then selecting '''Clovis System Project''' in the left hand pane.&lt;br /&gt;
&lt;br /&gt;
You can review the generated code from within the SAFplus Platform IDE. To do this go to the '''Clovis Workspace''' pane and expand the '''SampleModel''' node. The node tree should look like the following.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Clovis Workspace Code Tree'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_CWCodeTree.png|frame|center| '''Clovis Workspace Code Tree''' ]]&lt;br /&gt;
&lt;br /&gt;
The code of particular interest to our example is in the SampleModel/src/app/csa101 branch of the tree. This is the code for our csa101 example. The csa101 example consists of two C modules (&amp;lt;code&amp;gt;clCompAppMain.c&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clCompCfg.c&amp;lt;/code&amp;gt;) and two header files. There is also a make file that will be used for building the application. The &amp;lt;code&amp;gt;clCompAppMain.c&amp;lt;/code&amp;gt; file implements our 'Hello World!' application.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]If you run code generation a second time you will be presented with a dialog box asking if you would like to make a backup copy of the existing source code before proceeding. You can answer No to this dialog.&lt;br /&gt;
&lt;br /&gt;
==Customizing the csa101 Code==&lt;br /&gt;
While the code that was generated in the previous section can be built and run we want to make some changes to it so that we can easily see what our example is doing. For our example we will be changing one source file (&amp;lt;code&amp;gt;clCompAppMain.c&amp;lt;/code&amp;gt;) and two make files.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]In a real production situation this is the point where you would customize the code to perform the specific tasks of your product.&lt;br /&gt;
&lt;br /&gt;
You will notice in the C file that there are several places where you see the following comment block.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|clCompAppMain.c&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /*&lt;br /&gt;
   ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
 // ...&lt;br /&gt;
&lt;br /&gt;
 /*&lt;br /&gt;
   ---END_APPLICATION_CODE---&lt;br /&gt;
 */&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Makefiles have a similar convention but with a slightly different syntax.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|Makefile&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
&lt;br /&gt;
 # ---END_APPLICATION_CODE---&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These are sections of the file where it is safe to enter custom application code without having to worry about that code being overwritten if you were to again perform '''Generate Source''' for your model. This is important since the typical development cycle is an iterative process where you will return to the IDE to make modifications to your model.&lt;br /&gt;
&lt;br /&gt;
To simplify the process of building and running the csa101 example, OpenClovis, Inc. has already made the necessary code customizations and shipped this code with the SAFplus Platform SDK. At this point you can simply replace the generated source files with these customized versions to avoid typing in the changes. We will go over each customization below and explain what was done.&lt;br /&gt;
&lt;br /&gt;
To replace the generated files with the customized versions shipped with the SAFplus Platform SDK follow these instructions.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]  The sample applications containing the csa101 example can be found under the installation directory at &amp;lt;code&amp;gt;&amp;lt;install_dir&amp;gt;/sdk-5.0/src/examples/eval&amp;lt;/code&amp;gt;. We will refer to this directory in the remaining of this section as &amp;lt;code&amp;gt;&amp;lt;eval_dir&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Exit the SAFplus Platform IDE using the '''File &amp;gt; Exit''' menu item. If you are prompted to save changes before exiting answer yes.&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate to the source code work area.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;# cd /home/clovis/projectarea1/ide_workspace/SampleModel/src/app&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Using your favorite editor open the file &amp;lt;code&amp;gt;Makefile&amp;lt;/code&amp;gt; that resides in this directory. This is the application make file.&lt;br /&gt;
&amp;lt;li&amp;gt;Add the following line to this file within the first &amp;lt;code&amp;gt;BEGIN_APPLICATION_CODE&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;END_APPLICATION_CODE&amp;lt;/code&amp;gt; comment block.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;SUBDIRS += ev&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
This will instruct the build process to build our custom output library.&lt;br /&gt;
&amp;lt;li&amp;gt;Save this file and exit the editor.&lt;br /&gt;
&amp;lt;li&amp;gt;Execute the following command to copy the output package to our working area.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;# cp -r &amp;lt;eval_dir&amp;gt;/src/app/ev .&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate to the component code work area.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;# cd csa101&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Execute the following command to copy the csa101 source code.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;# cp &amp;lt;eval_dir&amp;gt;/src/app/csa101/clCompAppMain.c .&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Execute the following command to copy the component make file.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;# cp &amp;lt;eval_dir&amp;gt;/src/app/csa101/Makefile .&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Restart the SAFplus Platform IDE.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;# cl-ide&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Customizing clCompAppMain.c===&lt;br /&gt;
The &amp;lt;code&amp;gt;clCompAppMain.c&amp;lt;/code&amp;gt; file is the C module which will implement our 'Hello World!' behavior. We have to make changes in several parts of this file.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]If you copied the files as instructed in the section above then these changes have already been made to the files. Use this section to review and understand the changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the include section of this file we have added a new include for &amp;lt;code&amp;gt;ev.h&amp;lt;/code&amp;gt;. This refers to a special output library that we copied to our work area in the previous section. This output library is used to redirect output from the application to a component specific log. This is purely cosmetic but it will allow us to easily monitor what is happening when we run our example. (The following code begins at line 44 of the source file.)&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|clCompAppMain.c&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
 /*&lt;br /&gt;
   ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;clCompAppMain.h&amp;quot;&lt;br /&gt;
 #include &amp;quot;../ev/ev.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 /*&lt;br /&gt;
   ---END_APPLICATION_CODE---&lt;br /&gt;
 */&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Next we define a couple of static variables that will keep track of the state of our application and a function to aid in showing when the application is running. (The following code begins at line 79 of the source file.)&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|clCompAppMain.c&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
 /*&lt;br /&gt;
   ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
 static int running = 0;&lt;br /&gt;
 static int exiting = 0;&lt;br /&gt;
&lt;br /&gt;
 static char*&lt;br /&gt;
 show_progress(void)&lt;br /&gt;
 {&lt;br /&gt;
     static char bar[] = &amp;quot;          .&amp;quot;;&lt;br /&gt;
     static int progress = 0;&lt;br /&gt;
&lt;br /&gt;
     /* Show a little progress bar */&lt;br /&gt;
     return &amp;amp;bar[sizeof(bar)-2-(progress++)%(sizeof(bar)-2)];&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 /*&lt;br /&gt;
   ---END_APPLICATION_CODE---&lt;br /&gt;
 */&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;running&amp;lt;/code&amp;gt; flag will be used to indicate whether the current application is active or suspended while &amp;lt;code&amp;gt;exiting&amp;lt;/code&amp;gt; is a flag that indicates that the main() function returns, causing the exit of the application.&lt;br /&gt;
&lt;br /&gt;
The function &amp;lt;code&amp;gt;show_progress&amp;lt;/code&amp;gt; returns a pointer to a c string with a number of spaces followed by a '.' character. The number of spaces in the string cycles from zero to an upper bound. This is used later on to provide visual indication of the progress of the application's output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Next we have added a function &amp;lt;code&amp;gt;hello_func&amp;lt;/code&amp;gt; to print the output. (The following code begins at line 118 of the source file.)&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|clCompAppMain.c&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void *hello_func(void *unused)&lt;br /&gt;
{&lt;br /&gt;
    while (!exiting)&lt;br /&gt;
    {&lt;br /&gt;
        if (running)&lt;br /&gt;
        {&lt;br /&gt;
            clprintf(CL_LOG_SEV_INFO, &amp;quot;csa101: Hello World! %s\n&amp;quot;, show_progress());&lt;br /&gt;
        }&lt;br /&gt;
        sleep(1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return NULL;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notice the while loop condition. This function uses the &amp;lt;code&amp;gt;exiting&amp;lt;/code&amp;gt; variable that was initialized to 0.  The loop will keep running until &amp;lt;code&amp;gt;exiting&amp;lt;/code&amp;gt; is set to non-zero.  The if condition within the while loop checks the value of the &amp;lt;code&amp;gt;running&amp;lt;/code&amp;gt; variable.  The work of the application: printing &amp;quot;Hello World!&amp;quot; along with the progress indicator will only be done when the &amp;lt;code&amp;gt;running&amp;lt;/code&amp;gt; variable is set non-zero.  Next the command &amp;lt;code&amp;gt;sleep(1)&amp;lt;/code&amp;gt; simply sleeps for a second so as not to fill log files too quickly or completely swamp the CPU.&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;code&amp;gt;exiting&amp;lt;/code&amp;gt; becomes non-zero, we return from the function. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Next we have added a function to initialize the special output library mentioned earlier (which is at line 245 in the source file).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Next we create a thread and call the function &amp;lt;code&amp;gt;hello_func&amp;lt;/code&amp;gt; in the new thread context. (The following code begins at line 252 of the source file.)&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|clCompAppMain.c&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/*  &lt;br /&gt;
 * ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
 */&lt;br /&gt;
clprintf(CL_LOG_SEV_INFO, &amp;quot;csa101: Instantiated as component instance %s.\n&amp;quot;, appName.value);&lt;br /&gt;
&lt;br /&gt;
clprintf(CL_LOG_SEV_INFO, &amp;quot;%s: Waiting for CSI assignment...\n&amp;quot;, appName.value);&lt;br /&gt;
&lt;br /&gt;
rc = clOsalTaskCreateDetached(&amp;quot;hello_thread&amp;quot;, CL_OSAL_SCHED_OTHER, CL_OSAL_THREAD_PRI_NOT_APPLICABLE, 0, hello_func, NULL);&lt;br /&gt;
CL_ASSERT(rc == CL_OK);&lt;br /&gt;
&lt;br /&gt;
/*  &lt;br /&gt;
 * ---END_APPLICATION_CODE---&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Next we indicate to our app when we are exiting. (The following code begins at line 284 of the source file.)&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|clCompAppMain.c&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/*  &lt;br /&gt;
 * ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
 exiting = 1;&lt;br /&gt;
 clEvalAppLogStreamClose(gEvalLogStream);&lt;br /&gt;
&lt;br /&gt;
/*  &lt;br /&gt;
 * ---END_APPLICATION_CODE---&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
We set the &amp;lt;code&amp;gt;exiting&amp;lt;/code&amp;gt; variable to 1. This will cause the loop in our &amp;lt;code&amp;gt;hello_func&amp;lt;/code&amp;gt; function to exit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Next we will put in code to manage the state of our application. (The following code begins at line 453 of the source file.)&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|clCompAppMain.c&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
void clCompAppAMFCSISet(SaInvocationT       invocation,&lt;br /&gt;
                        const SaNameT       *compName,&lt;br /&gt;
                        SaAmfHAStateT       haState,&lt;br /&gt;
                        SaAmfCSIDescriptorT csiDescriptor)&lt;br /&gt;
{&lt;br /&gt;
    /*&lt;br /&gt;
     * ---BEGIN_APPLICATION_CODE--- &lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    // ...&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
     * ---END_APPLICATION_CODE---&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
     * Print information about the CSI Set&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    clprintf (CL_LOG_SEV_INFO, &amp;quot;Component [%.*s] : PID [%d]. CSI Set Received\n&amp;quot;,&lt;br /&gt;
              compName-&amp;gt;length, compName-&amp;gt;value, mypid);&lt;br /&gt;
&lt;br /&gt;
    clCompAppAMFPrintCSI(csiDescriptor, haState);&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
     * Take appropriate action based on state&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    switch ( haState )&lt;br /&gt;
    {&lt;br /&gt;
        case SA_AMF_HA_ACTIVE:&lt;br /&gt;
        {&lt;br /&gt;
            /*&lt;br /&gt;
             * AMF has requested application to take the active HA state &lt;br /&gt;
             * for the CSI.&lt;br /&gt;
             */&lt;br /&gt;
&lt;br /&gt;
            /*&lt;br /&gt;
             * ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
             */&lt;br /&gt;
&lt;br /&gt;
            clprintf(CL_LOG_SEV_INFO, &amp;quot;csa101: ACTIVE state requested; activating service\n&amp;quot;);&lt;br /&gt;
            running = 1;&lt;br /&gt;
&lt;br /&gt;
            /*&lt;br /&gt;
             * ---END_APPLICATION_CODE---&lt;br /&gt;
             */&lt;br /&gt;
&lt;br /&gt;
            saAmfResponse(amfHandle, invocation, SA_AIS_OK);&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|clCompAppMain.c&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        case SA_AMF_HA_STANDBY:&lt;br /&gt;
        {&lt;br /&gt;
            /*&lt;br /&gt;
             * AMF has requested application to take the standby HA state &lt;br /&gt;
             * for this CSI.&lt;br /&gt;
             */&lt;br /&gt;
&lt;br /&gt;
            /*&lt;br /&gt;
             * ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
             */&lt;br /&gt;
&lt;br /&gt;
            clprintf(CL_LOG_SEV_INFO, &amp;quot;csa101: New state is not the ACTIVE; deactivating service\n&amp;quot;);&lt;br /&gt;
            running = 0;&lt;br /&gt;
&lt;br /&gt;
            /*&lt;br /&gt;
             * ---END_APPLICATION_CODE---&lt;br /&gt;
             */&lt;br /&gt;
&lt;br /&gt;
            saAmfResponse(amfHandle, invocation, SA_AIS_OK);&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        case SA_AMF_HA_QUIESCED:&lt;br /&gt;
        {&lt;br /&gt;
            /*&lt;br /&gt;
             * AMF has requested application to quiesce the CSI currently&lt;br /&gt;
             * assigned the active or quiescing HA state. The application &lt;br /&gt;
             * must stop work associated with the CSI immediately.&lt;br /&gt;
             */&lt;br /&gt;
&lt;br /&gt;
            /*&lt;br /&gt;
             * ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
             */&lt;br /&gt;
            clprintf(CL_LOG_SEV_INFO, &amp;quot;csa101: Acknowledging new state\n&amp;quot;);&lt;br /&gt;
            running = 0;&lt;br /&gt;
&lt;br /&gt;
            /*&lt;br /&gt;
             * ---END_APPLICATION_CODE---&lt;br /&gt;
             */&lt;br /&gt;
&lt;br /&gt;
            saAmfResponse(amfHandle, invocation, SA_AIS_OK);&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|clCompAppMain.c&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
        case SA_AMF_HA_QUIESCING:&lt;br /&gt;
        {&lt;br /&gt;
            /*&lt;br /&gt;
             * AMF has requested application to quiesce the CSI currently&lt;br /&gt;
             * assigned the active HA state. The application must stop work&lt;br /&gt;
             * associated with the CSI gracefully and not accept any new&lt;br /&gt;
             * workloads while the work is being terminated.&lt;br /&gt;
             */&lt;br /&gt;
&lt;br /&gt;
            /*&lt;br /&gt;
             * ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
             */&lt;br /&gt;
            clprintf(CL_LOG_SEV_INFO, &amp;quot;csa101: Signaling completion of QUIESCING\n&amp;quot;);&lt;br /&gt;
            running = 0;&lt;br /&gt;
&lt;br /&gt;
            /*&lt;br /&gt;
             * ---END_APPLICATION_CODE---&lt;br /&gt;
             */&lt;br /&gt;
&lt;br /&gt;
            saAmfCSIQuiescingComplete(amfHandle, invocation, SA_AIS_OK);&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
We have modified the &amp;lt;code&amp;gt;clCompAppAMFCSISet&amp;lt;/code&amp;gt; callback function to let our application know what to do when the state changes. In the case where the state changes to &amp;lt;code&amp;gt;SA_AMF_HA_ACTIVE&amp;lt;/code&amp;gt; we set the &amp;lt;code&amp;gt;running&amp;lt;/code&amp;gt; variable to 1. This will cause our application to begin printing the 'Hello World!' message. For any other state change we set the &amp;lt;code&amp;gt;running&amp;lt;/code&amp;gt; variable to 0 which will cause the message to stop printing. For any state change we print out a message indicating the new state of the application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The last change that we make is to indicate to our application when the component is being disassociated with the workflow. (The following code begins at line 588 of the source file.)&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|clCompAppMain.c&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
void clCompAppAMFCSIRemove(SaInvocationT  invocation,&lt;br /&gt;
                           const SaNameT  *compName,&lt;br /&gt;
                           const SaNameT  *csiName,&lt;br /&gt;
                           SaAmfCSIFlagsT csiFlags)&lt;br /&gt;
{&lt;br /&gt;
    ....&lt;br /&gt;
&lt;br /&gt;
    /*  &lt;br /&gt;
     * Add application specific logic for removing the work for this CSI.&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    /*  &lt;br /&gt;
     * ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
     */&lt;br /&gt;
    running = 0;&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
     * ---END_APPLICATION_CODE---&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    saAmfResponse(amfHandle, invocation, SA_AIS_OK);&lt;br /&gt;
&lt;br /&gt;
    return;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the &amp;lt;code&amp;gt;clCompAppAMFCSIRemove&amp;lt;/code&amp;gt; callback function we indicate to our application that we are no longer running so that the while loop in the &amp;lt;code&amp;gt;hello_func&amp;lt;/code&amp;gt; function stops printing our 'Hello World!' message.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Customizing the Component MakeFile===&lt;br /&gt;
We have to make a small change to the component &amp;lt;code&amp;gt;MakeFile&amp;lt;/code&amp;gt; so that it knows about our special output library during the build. To do this we add the following lines. This file is located in &amp;lt;code&amp;gt;/home/clovis/projectarea1/ide_workspace/SampleModel/src/app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|Component MakeFile&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
    # ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
&lt;br /&gt;
    SUBDIRS += ev&lt;br /&gt;
&lt;br /&gt;
    # ---END_APPLICATION_CODE---&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Customizing the Application MakeFile===&lt;br /&gt;
We have to make sure that our special output library is built along with our application. To do this we change the line listing the sudirectories to make as follows. This file is located in the directory &amp;lt;code&amp;gt;/home/clovis/projectarea1/ide_workspace/SampleModel/src/app/csa101&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|Application MakeFile&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
    # ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
    &lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
    # Library added for demo console handling for the evaluation kit&lt;br /&gt;
    ASP_LIBS   +=  libeval.a&lt;br /&gt;
&lt;br /&gt;
    # ---END_APPLICATION_CODE---&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We are finished customizing our application code!&lt;br /&gt;
&lt;br /&gt;
==Building the csa101 Code==&lt;br /&gt;
&lt;br /&gt;
Now that we have finished customizing the code it is time to build it. The build process is launched using the '''Project &amp;gt; Build Project''' menu item. Once selected the '''Build Configuration''' dialog appears.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Build Configuration Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_BuildConfigDetails.png|frame|center| '''Build Configuration Details''' ]]&lt;br /&gt;
&lt;br /&gt;
The '''Build Configuration''' dialog is used to gather specific information about the build we are about to perform. Using this dialog you can rebuild the same model using different cross builds, or including different chassis managers. We don't have to make any changes to this dialog since the default settings make sense for our sample application.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]If you have prebuilt the SAFplus Platform libraries then you can check the '''Use pre built SAFplus''' checkbox and include the location of the prebuilt libraries. For more information about pre-building SAFplus Platform libraries, see ''SAFplus Platform SDK User Guide''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]The '''Include SNMP for North Bound Access''' control is checked by default. This just means that Net SNMP will be started along with our system. If you want end-to-end connectivity you will need to supply an SNMP Sub Agent and a MIB. See the ''SAFplus Platform SDK User Guide'' for more details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]In the '''Project''' menu if the '''Build Project''' entry is not highlighted, then click in the right pane i.e. '''Clovis Workspace''' pane and click the '''Project''' menu again. This not highlighting of the '''Build Project''' is because the '''Clovis Workspace''' is not selected properly because of moving focus to some other pane.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Click the '''OK''' button to begin the build. If this is the first time that the project is being built, or if you have made changes to any setting on this screen, you will initially see a progress dialog indicating that the project is being configured. The configuration step is setting up the project for building. After the configuration has completed you will see a progress dialog indicating that the code is being built.&lt;br /&gt;
&lt;br /&gt;
==Creating the csa101 Images==&lt;br /&gt;
&lt;br /&gt;
Making the csa101 images will create software packages that can be deployed on target machines to run the example. The process of creating images is launched using the '''Project &amp;gt; Make Images''' menu item. Once selected the '''Make Images Configuration''' dialog appears.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Make Images Configuration Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_MakeImagesConfigDetails.png|frame|center| '''Make Images Configuration Details''' ]]&lt;br /&gt;
&lt;br /&gt;
The '''Make Images Configuration''' dialog is used to indicate information about the environment on which the images will be deployed. This information is used to tailor the images to run on that environment. Here we will make the following modificaiton.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enter a value for the '''Trap IP'''. This value specifies where the SNMP sub-agent will send traps at runtime. This field is optional but if specified must be a valid IP address. Enter a value of '127.0.0.1' in this field.&lt;br /&gt;
&amp;lt;li&amp;gt;Enter a value for the '''TIPC Net ID'''. This value represents a unique identifier used by TIPC to set up interprocess communication across the deployed OpenClovis SAFplus Platform cluster. This field is required and should default to '1340'.&lt;br /&gt;
&amp;lt;li&amp;gt;Check the '''Create Node Specific Images''' and '''Package Images into Tarballs''' check boxes. This will create tarballs of the images making them easy to deploy to various machines.&lt;br /&gt;
&amp;lt;li&amp;gt;The table on this dialog will hold a row for each node instance defined in the model. In our case this is only one...SCNodeI0. For each of these instances we can define the slot number in the chassis on which the node will run and the network interface that the node will use for communication. In our case enter '1' for the Slot Number and 'eth0' for the Network Interface.&lt;br /&gt;
&amp;lt;li&amp;gt;Click '''OK''' to begin the make image process. A dialog box will appear and after a few seconds the the make images process will be complete.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The images will be populated at &amp;lt;project_area&amp;gt;/target/SampleModel/images. Each node-specific image is provided as a directory containing the run-time files (binaries, libraries, prerequisites, and configuration files) as well as a tarball with the same content.  &amp;lt;i&amp;gt;e.g.&amp;lt;/i&amp;gt; For our model containing one node (&amp;lt;code&amp;gt;SCNodeI0&amp;lt;/code&amp;gt;) the following files and directories are generated for deployment on the run-time system.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;project_area&amp;gt;&lt;br /&gt;
   |+target&lt;br /&gt;
       |+&amp;lt;model&amp;gt;&lt;br /&gt;
           |+images&lt;br /&gt;
               |+SCNodeI0&lt;br /&gt;
               |   |+bin&lt;br /&gt;
               |   |+etc&lt;br /&gt;
               |   |+lib&lt;br /&gt;
               |   |+modules&lt;br /&gt;
               |   |+share&lt;br /&gt;
               |-SCNodeI0.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The rest of the steps in this example are all done from the command line so we can exit the IDE. To do this use the '''File &amp;gt; Exit''' menu item.&lt;br /&gt;
&lt;br /&gt;
==Deploying the csa101 Images==&lt;br /&gt;
Now that the image has been built we must deploy it so that we can run and observe our example. Since we are assuming that the example will be run on the same machine as the images were built this is a fairly trivial exercise. Use the following steps to deploy the runtime image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First we create a directory where we will install the image. In our case we will use &amp;lt;code&amp;gt;/root/asp&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /root&lt;br /&gt;
# mkdir asp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Next we navigate to that directory and untar the deployment package.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /root/asp&lt;br /&gt;
# tar xzvf /home/clovis/projectarea1/target/SampleModel/images/SCNodeI0.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The System Controller is now installed and ready to run.&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] If you were going to run the example on a machine other than the one where the images were built you would first copy the installation tarball to that machine before performing the above steps.&lt;br /&gt;
&lt;br /&gt;
==Running the csa101 Example==&lt;br /&gt;
There are two parts to running the csa101 example. First we must start SAFplus Platform, and then we interact with the system components.&lt;br /&gt;
&lt;br /&gt;
===Starting SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
To start SAFplus Platform on System Controller node.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open a shell.&lt;br /&gt;
&amp;lt;li&amp;gt;Run the following commands&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /root/asp&lt;br /&gt;
# etc/init.d/asp start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] This assumes that you are running the SAFplus Platform example on the same PC that you are executing these commands. If you are running SAFplus Platform on a different machine then you should first ssh to that machine before executing the commands.&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] If SAFplus Platform fails to start properly it could be due to the machine's firewall being enabled. SAFplus Platform will not run on a machine which has firewall enabled. See the ''Environment Related Observation'' section of the ''SAFplus Platform Release Notes'' for more information.&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] By default the network interface used by the Group Membership Service is set to eth0. During the make images phase of the tutorial we also set the ethernet interface for node SCNodeI0 to be eth0. During image generation these configuration parameters are written to two files in the deployment package.&lt;br /&gt;
*&amp;lt;code&amp;gt;/root/asp/etc/clGmsConfig.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;/root/asp/etc/asp.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There may be an occasion where you want to switch this interface for a machine on which you are deploying. If you would like to switch this interface on a machine without having to go through the process of rebuilding and redeploying, you can edit these two files and change the 'eth0' references to the interface you would like to use.&lt;br /&gt;
&lt;br /&gt;
===Interacting with the System Components===&lt;br /&gt;
Once SAFplus Platform is up and running the next step is to start csa101 by informing SAFplus Platform that it should start the application. The Evaluation System's model tells SAFplus Platform that csa101 is locked for instantiation. This means that the process will not be started when SAFplus Platform comes up. This method of starting csa's is used for the Evaluation System, allowing users to interact with csa's and clearly see their output/functionality. Usually this would not be the case with applications, where they would run when SAFplus Platform begins.&lt;br /&gt;
&lt;br /&gt;
At this point it would help to be familiar with the Service Availability Forum's notions of  Service Unit, Service Group, and administrative state.  The Service Availability Forum's Application Interface Specification (available from http://www.saforum.org/) is a good place to start.&lt;br /&gt;
&lt;br /&gt;
In brief, the sample applications in the Evaluation System are part of service units which in turn are part of service groups.  Service groups (and the service units that make up the service groups) can be in &amp;quot;administrative&amp;quot; states which include &amp;quot;LockInstantiation&amp;quot;, &amp;quot;LockAssignment&amp;quot;, and &amp;quot;Unlocked&amp;quot;.  There are other states, but these are the ones we care about for the purposes of this Evaluation System.  If the administrative state of a service unit is &amp;quot;LockInstantiation&amp;quot; then the application that is part of that service unit will not even be started.  If the administrative state is &amp;quot;LockAssignment&amp;quot; then the application will be started, but it will not be assigned any work.  If the administrative state is &amp;quot;Unlocked&amp;quot; then it will not only be started, but will have a workload assigned to it, which is to say that it will start doing work (or start providing service), rather than idly sit waiting for work.&lt;br /&gt;
&lt;br /&gt;
The administrative state of a service unit or service group can change from LockInstantiation to LockAssignment, from LockAssignment to Unlocked, or back to LockInstantiation, from Unlocked to LockAssignment.  A picture might help here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;PartialServiceGroupAdministrativeStateDiagram&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; [[File:eval_AdministrativeStateDiagram.png|frame|center| '''Partial Service Group Administrative State Diagram''' ]]&lt;br /&gt;
&lt;br /&gt;
As the figure shows, the administrative state of a service unit (or service group) can change from &amp;quot;LockInstantiation&amp;quot; to &amp;quot;LockAssignment&amp;quot; and from there to &amp;quot;Unlocked&amp;quot;, or back to &amp;quot;LockInstantiation&amp;quot;.  One way to change the administrative state of a service group is with the SAFplus Platform Console command line interface. &lt;br /&gt;
&lt;br /&gt;
To use the SAFplus Platform Console:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Open a terminal on the Development Machine. (Or ssh into System Controller node as root, if you are running SAFplus Platform on a machine other than the development machine.)&lt;br /&gt;
&amp;lt;li&amp;gt; Change to image bin directory: &amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;# cd /root/asp/bin&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Start the SAFplus Platform Console &amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;# ./asp_console&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; From within the SAFplus Platform Console: &amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cli[Test]-&amp;gt; setc 1&lt;br /&gt;
cli[Test:SCNodeI0]-&amp;gt; setc cpm&lt;br /&gt;
cli[Test:SCNodeI0:CPM]-&amp;gt; amsLockAssignment sg csa101SGI0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above changes the administrative state of the group csa101SGI0 from &amp;quot;locked-for-instantiation&amp;quot; to &amp;quot;locked-for-assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]For the command &amp;lt;code&amp;gt;cli[Test]-&amp;gt; setc 1&amp;lt;/code&amp;gt;, the 1 represents the physical slot number of the System Controller within the Chassis. Remember that we set our System Controller to be in slot 1 in the make images dialog.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Now lets tail the application log file so that we can see whats going on. In another window, as root, run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# tail -f /root/asp/var/log/csa101I0Log.latest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see the following:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffffaa;&amp;quot; align=&amp;quot;center&amp;quot;| /root/asp/var/log/csa101I0Log.latest&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Tue Jul 15 21:32:06 2008   (SCNodeI0.10849 : csa101_EO.---.---.00034 :   INFO)&lt;br /&gt;
 Component [csa101I0] : PID [10849]. Initializing&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:32:06 2008   (SCNodeI0.10849 : csa101_EO.---.---.00035 :   INFO)&lt;br /&gt;
    IOC Address             : 0x1&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:32:06 2008   (SCNodeI0.10849 : csa101_EO.---.---.00036 :   INFO)&lt;br /&gt;
    IOC Port                : 0x80&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:32:06 2008   (SCNodeI0.10849 : csa101_EO.---.---.00037 :   INFO)&lt;br /&gt;
 csa101: Instantiated as component instance csa101I0.&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:32:06 2008   (SCNodeI0.10849 : csa101_EO.---.---.00038 :   INFO)&lt;br /&gt;
 csa101I0: Waiting for CSI assignment...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Next change the administrative state of the csa101SGI0 service group to  &amp;quot;unlocked&amp;quot; by running (in the SAFplus Platform Console) :&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# cli[Test:SCNodeI0:CPM]-&amp;gt; amsUnlock sg csa101SGI0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the window where you're running the &amp;quot;tail -f&amp;quot; you should see:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffffaa;&amp;quot; align=&amp;quot;center&amp;quot;| /root/asp/var/log/csa101I0Log.latest&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Tue Jul 15 21:36:17 2008   (SCNodeI0.10849 : csa101_EO.---.---.00049 :   INFO)&lt;br /&gt;
 csa101: ACTIVE state requested; activating service&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:36:18 2008   (SCNodeI0.10849 : csa101_EO.---.---.00050 :   INFO)&lt;br /&gt;
 csa101: Hello World! .&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:36:19 2008   (SCNodeI0.10849 : csa101_EO.---.---.00051 :   INFO)&lt;br /&gt;
 csa101: Hello World!  .&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:36:20 2008   (SCNodeI0.10849 : csa101_EO.---.---.00052 :   INFO)&lt;br /&gt;
 csa101: Hello World!   .&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:36:21 2008   (SCNodeI0.10849 : csa101_EO.---.---.00053 :   INFO)&lt;br /&gt;
 csa101: Hello World!    .&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:36:22 2008   (SCNodeI0.10849 : csa101_EO.---.---.00054 :   INFO)&lt;br /&gt;
 csa101: Hello World!     .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
As you can tell from the output log our component is up and running! It is continuously printing our 'Hello World!' output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Now change the state of the csa101SGI0 service group back to &amp;quot;locked-for-assignment&amp;quot; by running (in the SAFplus Platform Console): &lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# cli[Test:SCNodeI0:CPM]-&amp;gt; amsLockAssignment sg csa101SGI0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the tail -f output you should see:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffffaa;&amp;quot; align=&amp;quot;center&amp;quot;| /root/asp/var/log/csa101I0Log.latest&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Tue Jul 15 21:39:29 2008   (SCNodeI0.10849 : csa101_EO.---.---.00241 :   INFO)&lt;br /&gt;
 csa101: Hello World!  .&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:39:30 2008   (SCNodeI0.10849 : csa101_EO.---.---.00242 :   INFO)&lt;br /&gt;
 Component [csa101I0] : PID [10849]. CSI Set Received&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:39:30 2008   (SCNodeI0.10849 : csa101_EO.---.---.00243 :   INFO)&lt;br /&gt;
    CSI Flags               : [Target One]&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:39:30 2008   (SCNodeI0.10849 : csa101_EO.---.---.00244 :   INFO)&lt;br /&gt;
    CSI Name                : [csa101CSII0]&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:39:30 2008   (SCNodeI0.10849 : csa101_EO.---.---.00245 :   INFO)&lt;br /&gt;
    HA State                : [Quiesced]&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:39:30 2008   (SCNodeI0.10849 : csa101_EO.---.---.00246 :   INFO)&lt;br /&gt;
 csa101: Acknowledging new state&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:39:30 2008   (SCNodeI0.10849 : csa101_EO.---.---.00249 :   INFO)&lt;br /&gt;
 Component [csa101I0] : PID [10849]. CSI Remove Received&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:39:30 2008   (SCNodeI0.10849 : csa101_EO.---.---.00250 :   INFO)&lt;br /&gt;
    CSI                     : csa101CSII0&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:39:30 2008   (SCNodeI0.10849 : csa101_EO.---.---.00251 :   INFO)&lt;br /&gt;
    CSI Flags               : 0x2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Our component has been put into Lock Assignment state so our 'Hello World!' output has stopped printing to the log.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;At this point you can either unlock the service group to change its state to &amp;quot;unlocked&amp;quot; or you can lock it for instantiation to change it to state  &amp;quot;locked-for-instantiation&amp;quot;.  The latter will cause the csa101 process to die.  From state &amp;quot;locked-for-assignment&amp;quot;, it is possible to change the state to &amp;quot;locked-for-instantiation&amp;quot; by running (in the SAFplus Platform Console):&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cli[Test:SCNodeI0:CPM]-&amp;gt; amsLockInstantiation sg csa101SGI0&lt;br /&gt;
cli[Test:SCNodeI0:CPM] -&amp;gt; end&lt;br /&gt;
cli[Test:SCNodeI0] -&amp;gt; end&lt;br /&gt;
cli[Test] -&amp;gt; bye&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stopping SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
To stop SAFplus Platform on the System Controller&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open a shell.&lt;br /&gt;
&amp;lt;li&amp;gt;ssh into the System Controller node as root.&lt;br /&gt;
&amp;lt;li&amp;gt;Once logged in, run the following command&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /root/asp&lt;br /&gt;
# etc/init.d/asp stop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Summary and Next Steps==&lt;br /&gt;
In the csa101 example we learned the following.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;How to create a system model using the '''SAFplus Platform IDE'''.&lt;br /&gt;
&amp;lt;li&amp;gt;How to generate the source code.&lt;br /&gt;
&amp;lt;li&amp;gt;How to customize this source code to fit a specific application.&lt;br /&gt;
&amp;lt;li&amp;gt;How to configure and build the customized source code.&lt;br /&gt;
&amp;lt;li&amp;gt;How to make runtime images and deploy them to target machines.&lt;br /&gt;
&amp;lt;li&amp;gt;How to start and stop '''SAFplus'''.&lt;br /&gt;
&amp;lt;li&amp;gt;How to interact with system components using the '''SAFplus Platform Console'''.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The next logical step would be to run through the '''SAFplus Platform Evaluation System User Guide'''. This guide goes over more complex system configurations and introduces new concepts.&lt;br /&gt;
&lt;br /&gt;
For more in depth information on the '''SAFplus Platform IDE''' see the '''SAFplus Platform IDE User Guide'''.&lt;br /&gt;
&lt;br /&gt;
For more in depth information on the '''SAFplus Platform SDK''' see the '''SAFplus Platform SDK User Guide'''.&lt;br /&gt;
&lt;br /&gt;
==Appendix A: target.conf Settings==&lt;br /&gt;
&lt;br /&gt;
Below is a description of the values in the settings in the &amp;lt;code&amp;gt;target.conf&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''TRAP_IP''' (Mandatory): Specifies where the SNMP SubAgent should send traps at runtime.  If you do not have an SNMP SubAgent in your model specify '''127.0.0.1''' as the value.  &amp;lt;i&amp;gt;e.g.&amp;lt;/i&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
TRAP_IP=127.0.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''CMM_IP''' (Mandatory if deployed on an ATCA chassis): Specifies the IP address of the target system's chassis management module or shelf manager. &amp;lt;i&amp;gt;ATCA chassis Example&amp;lt;/i&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
CMM_IP=169.254.1.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''CMM_USERNAME''' and '''CMM_PASSWORD''' (Mandatory if deployed on an ATCA chassis): Specifies the username and password required for the OpenClovis SAFplus Platform Chassis Manager to connect to the target system's chassis management module. &amp;lt;i&amp;gt;e.g.&amp;lt;/i&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
CMM_USERNAME=root&lt;br /&gt;
CMM_PASSWORD=password&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''INSTALL_PREREQUISITES=YES|NO''' (Mandatory): Specifies whether the target images will include 3rd party runtime prerequisites or not.  Say '''YES''' if the target nodes do not meet the target host requirements specified in the Installation section of this document.  &amp;lt;i&amp;gt;e.g.&amp;lt;/i&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
INSTALL_PREREQUISITES=YES&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''INSTANTIATE_IMAGES=YES|NO''' (Mandatory): Specifies whether &amp;lt;code&amp;gt;make images&amp;lt;/code&amp;gt; will generate node-instance specific images instead of only generating node-type specific images.  This option is a development optimization for advanced users of SAFplus Platform SDK.  If unsure, say '''YES'''. &amp;lt;i&amp;gt;e.g.&amp;lt;/i&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
INSTANTIATE_IMAGES=YES&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''CREATE_TARBALLS=YES|NO''' (Mandatory): Specifies whether the node-instance specific images created will be packaged into tarballs for deployment onto the target system.  If unsure, say '''YES'''.  &amp;lt;i&amp;gt;e.g.&amp;lt;/i&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE_TARBALLS=YES&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''TIPC_NETID''' (Mandatory): Specifies a unique identifier used by TIPC to set up interprocess communication across the deployed OpenClovis SAFplus Platform cluster.  This is an unsigned 32-bit integer, and &amp;lt;i&amp;gt;must&amp;lt;/i&amp;gt; be unique for every model that is deployed.  &amp;lt;i&amp;gt;e.g.&amp;lt;/i&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
TIPC_NETID=1337&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Node Instance Details''': These specify the node-instance specific parameters required for deploying the model. For each node in the model there is a corresponding entry in the file:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''SLOT_&amp;lt;node instance name&amp;gt;''' (Mandatory): Specifies which slot the node is located in.  The first slot is slot 1 -- DO NOT USE SLOT NUMBER 0, it is invalid.  When deployed to an ATCA chassis, the physical slot in which the blade is actually installed will override this value.  When deployed to regular (non-ATCA) systems, this is a logical slot and must be unique for every node in the cluster. &amp;lt;i&amp;gt;e.g.&amp;lt;/i&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
SLOT_SCNodeI0=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''LINK_&amp;lt;node instance name&amp;gt;''' (Optional): Specifies the ethernet interface used by the node for OpenClovis SAFplus Platform communication with the rest of the cluster.  If unspecified, this defaults to &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;.  &amp;lt;i&amp;gt;e.g.&amp;lt;/i&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
LINK_SCNodeI0=eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''ARCH_&amp;lt;node instance name&amp;gt;''' (Optional if '''ARCH''' is specified): Specifies the target architecture of the node as a combination of machine architecture (MACH) and linux kernel version.  This is only required on a per-node basis if the target cluster has heterogeneous architectures across the nodes.  If it is a homogeneous cluster, a single '''ARCH''' parameter (described below) will suffice.  &amp;lt;i&amp;gt;e.g.&amp;lt;/i&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
ARCH_SCNodeI0=i386/linux-2.6.14&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''ARCH''' (Optional if node-specific '''ARCH_''' parameters are specified): Specifies the target architecture of all nodes in a homogeneous cluster as a combination of machine architecture (MACH) and linux kernel version.  Note: The build process automatically populates this variable based on the last target the model is built for.&amp;lt;i&amp;gt;e.g.&amp;lt;/i&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
ARCH=i386/linux-2.6.14&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
For example, if we have a three-node cluster with the following details:&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;600&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Example Node Instance Detail'''&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Node Name&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Slot Number&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Link Interface&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Architecture&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|SCNodeI0&lt;br /&gt;
|1&lt;br /&gt;
|eth0&lt;br /&gt;
|i386/linux-2.6.14&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|PayloadNodeI0&lt;br /&gt;
|3&lt;br /&gt;
|eth0&lt;br /&gt;
|i386/linux-2.6.14&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|PayloadNodeI1&lt;br /&gt;
|4&lt;br /&gt;
|eth1&lt;br /&gt;
|ppc/linux-2.6.9&lt;br /&gt;
|}&lt;br /&gt;
we would specify the node instance details as:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
SLOT_SCNodeI0=1&lt;br /&gt;
SLOT_PayloadNodeI0=3&lt;br /&gt;
SLOT_PayloadNodeI1=4&lt;br /&gt;
&lt;br /&gt;
LINK_SCNodeI0=eth0&lt;br /&gt;
LINK_PayloadNodeI0=eth0&lt;br /&gt;
LINK_PayloadNodeI1=eth1&lt;br /&gt;
&lt;br /&gt;
ARCH_SCNodeI0=i386/linux-2.6.14&lt;br /&gt;
ARCH_PayloadNodeI0=i386/linux-2.6.14&lt;br /&gt;
ARCH_PayloadNodeI1=ppc/linux-2.6.9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Appendix B: AMF Configuration Details==&lt;br /&gt;
This appendix gives brief descriptions of configuration details for instances of different entities (like Node, Service Group, Service Unit etc) that are present in the '''Clovis''' -&amp;gt; '''AMF Configuration''' dialog box.&lt;br /&gt;
&lt;br /&gt;
===Node Instance===&lt;br /&gt;
This screen displays the node instance that was created by the Node Instance Wizard. This node instance was created because the node type '''SCNode''' was selected on the wizard screen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Node Instance Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_NodeInstanceDetails.png|frame|center| '''Node Instance Details''' ]]&lt;br /&gt;
&lt;br /&gt;
The information on this screen is described below.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Node Instance Name''': This field holds the name of the node instance. This name must be unique. The name that was generated combines the node type (SCNode), the letter I (for Instance), and the number 0 (since this is the first instance of this type).&lt;br /&gt;
&amp;lt;li&amp;gt;'''Node Type''': This field holds the node type that was selected on the wizard screen.&lt;br /&gt;
&amp;lt;li&amp;gt;'''MOID''': This is the unique identifier for the node instance. It was generated by the wizard. The format of this ID is a string representing the one and only instance of the chassis (\Chassis:0) defined in the Resource Editor followed by a string representing the first and only instance of the blade type (\SysBlade:0) that was selected in the Node Instance Wizard.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]'''MOID''' is an acronym for Managed Object Identifier. It must be unique and is used to identify which hardware chassis and blade type this instance will run on.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Service Unit Instance===&lt;br /&gt;
This screen displays the service unit instance that was created by the Service Group Instance Wizard. This service unit instance was created because the service unit type is associated with both the selected node type (SCNode) and the selected service group type (csa101SG) in our model.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='SU Instance Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_SUInstanceDetails.png|frame|center| '''SU Instance Details''' ]]&lt;br /&gt;
&lt;br /&gt;
The information on this screen is described below.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''SU Instance Name''': This field holds the name of the service unit instance. This name must be unique. The name that was generated combines the service unit type (csa101SU), the letter I (for Instance), and the number 0 (since this is the first instance of this type).&lt;br /&gt;
&amp;lt;li&amp;gt;'''Service Unit Type''': This field holds the type of the service unit instance.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Component Instance===&lt;br /&gt;
This screen displays the component instance that was created by the Service Group Instance Wizard. This component instance was created because the component type is associated with the created parent service unit type (csa101SU) in our model.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Component Instance Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_ComponentInstanceDetails.png|frame|center| '''Component Instance Details''' ]]&lt;br /&gt;
&lt;br /&gt;
The information on this screen is described below.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Component Instance Name''': This field holds the name of the component instance. This name must be unique. The name that was generated combines the component type (csa101), the letter I (for Instance), and the number 0 (since this is the first instance of this type).&lt;br /&gt;
&amp;lt;li&amp;gt;'''Component Type''': This field holds the type of the component instance.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Service Group Instance===&lt;br /&gt;
This screen displays the service group instance that was created by the Service Group Instance Wizard. This service group instance was created because the service group type '''csa101SG''' was selected on the wizard screen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Service Group Instance Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_SGInstanceDetails.png|frame|center| '''Service Group Instance Details''' ]]&lt;br /&gt;
&lt;br /&gt;
The information on this screen is described below.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''SG Instance Name''': This field holds the name of the service group instance. This name must be unique. The name that was generated combines the service group type (csa101SG), the letter I (for Instance), and the number 0 (since this is the first instance of this type).&lt;br /&gt;
&amp;lt;li&amp;gt;'''ServiceGroup Type''': This field holds the type of the service group instance.&lt;br /&gt;
&amp;lt;li&amp;gt;'''Associated Service Units''': This button is used to associate service unit instances with this service group instance. Creating this association indicates that the selected service unit(s) will run within this service group instance.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clicking the '''Associated Service Units''' Edit... button will display the following dialog.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Associated Service Units Dialog'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_SG_SI_Association.png|frame|center| '''Associated Service Units Dialog''' ]]&lt;br /&gt;
&lt;br /&gt;
This dialog lists the service unit instances that can be associated with this service group instance. The list contains only one item, the service unit instance that was created by the wizard. This item is checked indicating that the wizard automatically chose this service unit instance to run within the service group instance.&lt;br /&gt;
&lt;br /&gt;
===Service Instance Instance===&lt;br /&gt;
This screen displays the service instance that was created by the Service Group Instance Wizard. This service instance was created because the service instance type is associated with the parent service group type (csa101SG) in our model.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Service Instance Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_SIInstanceDetails.png|frame|center| '''Service Instance Details''' ]]&lt;br /&gt;
&lt;br /&gt;
The information on this screen is described below.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Service Instance Name''': This field holds the name of the service instance. This name must be unique. The name that was generated combines the service instance type (csa101SI), the letter I (for Instance), and the number 0 (since this is the first instance of this type).&lt;br /&gt;
&amp;lt;li&amp;gt;'''ServiceInstance Type''': This field holds the type of the service instance.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Component Service Instance Instance===&lt;br /&gt;
This screen displays the component service instance that was created by the Service Group Instance Wizard. This component service instance was created because the component service instance is associated with the parent service instance type (csa101SI) in our model.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Component Service Instance Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_CSIInstanceDetails.png|frame|center| '''Component Service Instance Details''' ]]&lt;br /&gt;
&lt;br /&gt;
The information on this screen is described below.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Component Service Instance Name''': This field holds the name of the component service instance. This name must be unique. The name that was generated combines the component service instance type (csa101CSI), the letter I (for Instance), and the number 0 (since this is the first instance of this type).&lt;br /&gt;
&amp;lt;li&amp;gt;'''ComponentServiceInstance Type''': This field holds the type of the component service instance.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/tutorial</id>
		<title>Doc:latest/tutorial</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/tutorial"/>
				<updated>2011-10-24T20:24:07Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* Preface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Preface==&lt;br /&gt;
The ''SAFplus Platform Sample Application Tutorial'' is a comprehensive tutorial designed to highlight the steps involved in using SAFplus software to design and build a high availability system. In this tutorial you will learn to:&lt;br /&gt;
* Design a model using the SAFplus IDE&lt;br /&gt;
* Generate code from this model to provide middleware support&lt;br /&gt;
* Customize this code for a particular application&lt;br /&gt;
* Build and deploy the customized code&lt;br /&gt;
* Run the system to see the SAFplus Platform software in action&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Audience===&lt;br /&gt;
&amp;lt;br&amp;gt; ''SAFplus Platform Sample Application Tutorial''  is designed for system integrators, designers, and system architects. To use SAFplus Platform, you should be aware of the fundamentals of operation, management, and configuration of telecommunication and networking domains. You should also be familiar with C programming, UML notations, and have the basic knowledge of Linux.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; This document assumes that you have installed the SAFplus Platform SDK, following the installation steps found in the ''SAFplus Platform Installation Guide''.&lt;br /&gt;
&lt;br /&gt;
===Documentation Conventions===&lt;br /&gt;
This guide uses different fonts and symbols to differentiate between document elements and types of information. These conventions are summarized in the following table.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#cdd6e6&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#d3e3ff&amp;quot;| Notation&lt;br /&gt;
!style=&amp;quot;background:#d3e3ff&amp;quot;| Description&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
|style=&amp;quot;background:#ffccaa&amp;quot; | &amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;Code&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|This font denotes the C code provided in various examples.&amp;lt;br&amp;gt;This font denotes function and variable names.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
|style=&amp;quot;background:#ffffaa&amp;quot; | &amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;Output&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|Terminal output.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
|style=&amp;quot;color:blue&amp;quot; | Cross reference&lt;br /&gt;
|This font denotes a hyperlink. You can click on the hyperlink text to access the reference location, which can be either a section within the guide or a URL link.&amp;lt;br&amp;gt;A cross reference refers to a section name and accesses the first page of that section.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Filenames&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;DIR&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| Files names, Directory paths.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
|&amp;lt;code&amp;gt;$ Commands ''group_identifier''&amp;lt;/code&amp;gt; &lt;br /&gt;
| Commands to be run from a shell.&amp;lt;br&amp;gt; Italic text indicate an argument. This can be replaced with your desired value.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]This indicates the presence of notes or annotations, related to the context of the document. &lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Caution.png]]This indicates that certain precautionary measures must be taken before performing a particular task.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Info.png]]This indicates that additional information is provided to you.&lt;br /&gt;
&lt;br /&gt;
As mentioned in the ''SAFplus Platform Installation Guide'' the default directory for installation is &amp;lt;code&amp;gt;/opt/clovis&amp;lt;/code&amp;gt; for root installation and &amp;lt;code&amp;gt;$HOME/clovis&amp;lt;/code&amp;gt; for non root users. Throughout this document we will use &amp;lt;code&amp;gt;&amp;lt;install_dir&amp;gt;&amp;lt;/code&amp;gt; to refer to the installation directory.&lt;br /&gt;
&lt;br /&gt;
===Related Documents===&lt;br /&gt;
For additional information about OpenClovis products, please refer to the following guides:&lt;br /&gt;
* '''[[Doc:latest/relnotes | SAFplus Platform Release Notes]]''' provides information about the software and the hardware required to install OpenClovis Application Service Platform (SAFplus Platform) and Integrated Development Environment (IDE). It summarizes the additional features and enhancements of the product since the previous release. It also summarizes the issues and limitations of the product and provides workarounds wherever applicable.&lt;br /&gt;
* '''[[Doc:latest/safcompliance | SAFplus Platform SA-Forum Compliance]]''' describes the level of compliance of OpenClovis SAFplus Platform and its Application Programming Interface (API) with the relevant Service Availability Forum Specifications.&lt;br /&gt;
* '''[[Doc:latest/installguide | SAFplus Platform Installation Guide]]''' provides the system requirements, installation procedure for OpenClovis SAFplus Platform, IDE, and the Evaluation System.&lt;br /&gt;
* '''[[Doc:latest/tutorial | SAFplus Platform Sample Application Tutorial]]''' explains the steps to create and build a sample model using OpenClovis IDE and OpenClovis SAFplus Platform. It also provides troubleshooting information for this process. This provides the logical first step in understanding the SAFplus Platform offering.&lt;br /&gt;
* '''[[Doc:latest/evalguide | SAFplus Platform Evaluation System User Guide]]''' provides all the required information to configure and run the sample models packaged within the Evaluation System. This document also provides good understanding of OpenClovis SAFplus Platform's functionality. This is the natural follow on to the ''OpenClovis Sample Application Tutorial'' as it builds on the example created in that document. &lt;br /&gt;
* '''[[Doc:latest/sdkguide | SAFplus Platform SDK User Guide]]''' provides information about SAFplus Availability/Scalability Platform architecture, various SAFplus Platform components, and their interactions. This guide helps you to configure the OpenClovis SAFplus Platform components, compile, and execute the SAFplus Platform code to build your custom application.&lt;br /&gt;
* '''[[Doc:latest/ideguide | SAFplus Platform IDE User Guide]]''' describes the usage of Integrated Development Environment (IDE), a graphical development environment that complements the SAFplus Platform. This guide helps you to understand how to use the various features of the IDE to build the application.&lt;br /&gt;
* '''[[Doc:latest/logtoolguide | SAFplus Platform Log Tool User Guide]]''' provides information about the usage of OpenClovis Log Tool. OpenClovis Log Tool is an interactive utility that allows you to view binary log files in a readable format and hence monitor system errors, warnings, and other log information. Log Tool allows you to format the &amp;lt;code&amp;gt;.log&amp;lt;/code&amp;gt; files and filter them to view the required entries.&lt;br /&gt;
* '''SAFplus Platform API Reference Guide [http://www.openclovis.org/doc/latest/apirefs/index.html]''' is provided for each component. It describes the Application Programming Interface (API), Service Model, and Management Information Model of the various OpenClovis Application Service Platform (SAFplus Platform) services. It helps the developer to understand the capabilities of the SAFplus Platform services and the APIs provided by these services.&lt;br /&gt;
* '''[[SAFplus Platform Console Reference Guide]]''' provides details about managing applications built on SAFplus Platform using the SAFplus Platform runtime debug console commands. SAFplus Platform Console commands can be used to manage, monitor, and test your application.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Online Technical Support===&lt;br /&gt;
OpenClovis customers and partners can register on our Web site and receive personalized services and information. If you need any support or assistance while working on OpenClovis products, you can access the following: URL: http://www.openclovis.com. Send your queries to: support@openclovis.com. Open source community support is available at: http://www.openclovis.org/forum.&lt;br /&gt;
&lt;br /&gt;
===Documentation Feedback===&lt;br /&gt;
We are interested in hearing from our customers on the documentation provided with the product. Let us know your comments and suggestions on improving the documentation at OpenClovis Inc. Send your comments to: support@openclovis.com. Or even better, edit (or comment in) the page on our documentation wiki located at [http://help.openclovis.com http://help.openclovis.com].&lt;br /&gt;
&lt;br /&gt;
==Our Example: The csa101 System==&lt;br /&gt;
The ''OpenClovis Sample Application Tutorial'' will take you through a series of examples each introducing a key concept of the product. Each example builds on the example before it so it is important to go through them in order. The examples are named so that it is easy to determine their sequence. The examples all begin with the letters '''csa''' (standing for Clovis Sample Application) and end with a number. Our first example will be '''csa101'''.&lt;br /&gt;
&lt;br /&gt;
The purpose of our first example is to highlight basic component management. It introduces the basic skeleton of an OpenClovis Application Service Platform (SAFplus Platform) based application component and illustrates how it interacts with the System. It demonstrates basic component registration and life-cycle management.&lt;br /&gt;
&lt;br /&gt;
We will keep this first example very simple. It will consist of the OpenClovis SAFplus Platform running a small component named '''csa101'''. All that this component will do is continuously print 'Hello World!' to a log file. While this component is not very exciting, it will allow us to easily see when the application is in a running state and when it is not. This will allow us to focus on the infrastructure of SAFplus Platform and how the application interfaces with it.&lt;br /&gt;
&lt;br /&gt;
For this example we will assume that we have a chassis with five slots. We will have one type of blade in our example, a '''System Controller'''.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]With the type of model we are developing we would typically define two blade types to install in these slots. The first blade type would be a '''System Controller''' blade (which is responsible for running the OpenClovis software which manages application startup, shutdown, failover, etc.) and the second blade type would be a '''Payload''' blade (which is responsible for running our custom '''csa101''' application). However, for the purpose of simplifying the deployment of our system, we will define only the '''System Controller''' blade type and have both the SAFplus Platform and component application run on this one blade. This will allow the example to be run on a single PC.&lt;br /&gt;
&lt;br /&gt;
==Creating the csa101 Model==&lt;br /&gt;
The first step in setting up our example is to create a model which represents the system that we will eventually deploy. This is done through the '''OpenClovis IDE'''. In this chapter we will step through the following tasks:&lt;br /&gt;
* Create a project area&lt;br /&gt;
* Launch the '''OpenClovis IDE'''&lt;br /&gt;
* Create the IDE project&lt;br /&gt;
* Specify the Resource model (the types of physical hardware in our system)&lt;br /&gt;
* Specify the Component model (the types of components or applications in our system)&lt;br /&gt;
* Specify which Components run on which Resources&lt;br /&gt;
* Specify important build and boot parameters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Creating a New Project Area===&lt;br /&gt;
A project area is a directory on your system where you can develop OpenClovis models and generate the code corresponding to those models. The project area can hold multiple models allowing you to manage all of your models in one location. All the models in the same project area share the same SAFplus Platform source tree. This way any modifications made to the SAFplus Platform source tree are re-used across all the models that were created in that project area.&lt;br /&gt;
&lt;br /&gt;
You create a project area using a script from the command line. To create a project area named '''projectarea1''' in the '''/home/clovis''' directory you should execute the following command:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# cl-create-project-area /home/clovis/projectarea1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Launching the OpenClovis IDE===&lt;br /&gt;
You can launch the '''OpenClovis IDE''' from the command line. If you chose to create symbolic links during installation you can simply enter &amp;lt;code&amp;gt;'''cl-ide'''&amp;lt;/code&amp;gt; from any directory. If you did not create symbolic links during installation you can either:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add the installation directory to the shells search path and then launch the IDE. For example with a bash shell, &lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# export PATH=$PATH:$install_dir/sdk-5.0/bin&lt;br /&gt;
# cl-ide&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;li&amp;gt;Execute the command&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;install_dir&amp;gt;/sdk-5.0/bin/cl-ide&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The splash screen for OpenClovis IDE is displayed as illustrated in Figure [[#OpenClovis IDE Opening Screen | OpenClovis IDE Opening Screen]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='OpenClovis IDE Opening Screen'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_GettingStartedIDE_OpeningScreen.png|frame|center| '''OpenClovis IDE Opening Screen''' ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will then be prompted to select a workspace in which to do your work as illustrated in Figure [[#OpenClovis IDE Workspace Launcher | OpenClovis IDE Workspace Launcher]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='OpenClovis IDE Workspace Launcher'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_GettingStartedIDE_WorkspaceLauncher.png|frame|center| '''OpenClovis IDE Workspace Launcher''' ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The workspace you select should correspond to the project area that you created in the previous section (in this case &amp;quot;/home/clovis/projectarea1&amp;quot;). Note that the workspace includes a subdirectory of &amp;quot;/ide_workspace&amp;quot;. This is done strictly for organizational purposes. It keeps the IDE models separate from the generated SAFplus Platform models and code.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Select the workspace and click  '''OK'''  to launch OpenClovis IDE as illustrated in the Figure [[#OpenClovis IDE Welcome Screen | OpenClovis IDE Welcome Screen]].&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='OpenClovis IDE Welcome Screen'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_WelcomeScreen.png|frame|center| '''OpenClovis IDE Welcome Screen''' ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The '''OpenClovis''' IDE is launched and you are now looking at the main work area. For more information about the components of this main work area including the OpenClovis IDE menu and toolbar, see ''OpenClovis IDE User Guide''.&lt;br /&gt;
&lt;br /&gt;
===Creating the Sample Project===&lt;br /&gt;
We will now create a project within the '''OpenClovis IDE'''. This project will hold both the resource model and the component model for our example system. The resource model is a physical view of the resources (the chassis, the blade types, etc.) in our system. The component model is a logical view of the components (applications, etc.) in our system.&lt;br /&gt;
&lt;br /&gt;
We will be using the '''New Project Wizard''' to create our project. The wizard captures some high-level information about the system that we are building and performs a lot of the basic setup for us.&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]The same model that we are building through the wizard could also be created manually through the Resource and Component Editors. For more information on the Resource and Component Editors see ''OpenClovis IDE User Guide''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To launch the '''New Project Wizard''' select  '''File'''  &amp;gt;  '''New''' &amp;gt;  '''Project''' from the IDE menu bar.&lt;br /&gt;
&lt;br /&gt;
The  '''New Project Wizard''' is displayed and  '''Clovis System Project'''  is selected by default as illustrated in Figure [[#New Project Wizard | New Project Wizard]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='New Project Wizard'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_GettingStartedIDE_NewProjectWizard.png|frame|center| '''New Project Wizard''' ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click  '''Next'''. The  '''Clovis System Project''' window is displayed as illustrated in Figure [[#Clovis System Project | Clovis System Project]].&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;span id='Clovis System Project'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_NewProject.png|frame|center| '''Clovis System Project''' ]]&lt;br /&gt;
&lt;br /&gt;
Enter the following information:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Project Name''' : Enter the name of your new project as  '''SampleModel'''.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]Do not use spaces or special characters for the project name. The project name can be alphanumeric, but cannot start with a number or have only numbers.&lt;br /&gt;
&amp;lt;br&amp;gt;Select  '''Use default'''  to use the same directory mentioned in the  '''Directory'''  field. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;'''SDK Location''': Enter the location where the OpenClovis SDK was installed. For e.g. if the SDK was installed at location /opt/clovis, then the SDK location is /opt/clovis/sdk-&amp;lt;version&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;'''Project Area Location''': Enter the location where the generated source code for the model should be stored.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]This can be any existing directory but is usually the project area that was created in the previous section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;'''Python Location''': Enter the location where Python 2.5.0 is installed on your system. If Python 2.5.0 was installed by OpenClovis SDK, the directory is  &amp;lt;code&amp;gt;'''&amp;lt;installation_directory&amp;gt;/buildtools/local/bin'''&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click '''Next'''. The '''Add New Blade Type''' window is displayed. This dialog is used to define the blade types that are in our system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Add New Blade Type'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_AddBlade.png|frame|center| '''Add New Blade Type''' ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Remember that the system we are modelling has only one blade type...a System Controller.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Use the '''Add''' button to add a new blade type to the list. Name this blade type 'SysBlade' (for System Controller blade).&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Click '''Next'''. The '''Add New SAF Node Type''' window is displayed. This dialog is used to define the type of logical node that will be run on the corresponding blade type defined in the previous dialog.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Add New SAF Node Type'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_AddNode.png|frame|center| '''Add New SAF Node Type''' ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Node types represent groups of software. They are classified as either a System Controller class or a Payload class. This distinction gives the node type certain characteristics which cause it to behave in a well-defined manner. Since we have only a System Controller in our system we will add a node type of class System Controller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Use the '''Add''' button to add a new node type to the list. Name the node type 'SCNode' and ensure that its node class is 'System Controller (SAF Class B)'.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Click '''Next'''. The '''Specify Program Names''' window is displayed. This dialog is used to create programs or SAF Service Types and associate them with the SAF Node Types specified in the previous dialog.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Specify Program Names'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_DefineProgramNames.png|frame|center| '''Specify Program Names''' ]]&lt;br /&gt;
&lt;br /&gt;
In our system we need one SAF Service Type which represents our high availability software (csa101 that continously prints &amp;quot;Hello World!&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Use the '''Add''' button to add a program name to the list. Change the program name to 'csa101' and associate the program with the 'SCNode' node type.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Click '''Finish'''. This will create the sample model using the blade type, node type, and program name information collected through the 'New Project Wizard' dialogs.&lt;br /&gt;
&lt;br /&gt;
===Viewing the Model===&lt;br /&gt;
&lt;br /&gt;
====The OpenClovis IDE Perspective====&lt;br /&gt;
Once the wizard pages are closed you will be returned to the main IDE view also known as the '''OpenClovis IDE Perspective'''. On the left hand side of this view you will see the '''Clovis Workspace''' pane which contains the new project you just created with all project related files and folders. The folders are displayed based on your filter settings. With the default filter settings, the folders shown in Figure [[#Clovis Workspace|Clovis Workspace]] is displayed in the '''Clovis Workspace''' pane. For information about filter settings, refer  ''OpenClovis IDE User Guide''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Clovis Workspace'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_GettingStartedIDE_ClovisWorkspace.png|frame|center|Clovis Workspace]]&lt;br /&gt;
&lt;br /&gt;
By default, the '''Resource''' and '''Component''' Editor views are available for the created project. To view them, click '''Clovis''' on the menu bar at the top of the screen and select '''Resource Editor''' or  '''Component Editor'''  from the menu. You can also click '''Resource Editor''' or '''Component Editor''' icons from the tool bar as shown in Figure [[#OpenClovis IDE Tool Bar | OpenClovis IDE Tool Bar]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='OpenClovis IDE Tool Bar'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_Toolbar.png|frame|center| '''OpenClovis IDE Tool Bar''' ]]&lt;br /&gt;
&lt;br /&gt;
====Resource Editor View====&lt;br /&gt;
The '''Resource Editor''' shows the types of physical objects in our system. It gives us a place to create new objects and interact with the objects that already exist. The '''Resource Editor''' view for our model should look similar to the following figure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='OpenClovis Resource Editor'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_ResourceEditor.png|frame|center| '''OpenClovis Resource Editor''' ]]&lt;br /&gt;
&lt;br /&gt;
This editor always has a '''Chassis''' object which is the root of all other objects in the editor. In our case it also has the '''SysBlade''' blade type that we created through the '''Project Creation Wizard'''. You will also notice that the '''SysBlade''' is attached to the '''Chassis''' using a '''Composition''' relationship indicating that '''SysBlade'''s reside within the '''Chassis'''.&lt;br /&gt;
&lt;br /&gt;
On the right hand side of the editor view you will see the '''Palette''' which can be expanded and collapsed. Expanding the '''Palette''' you will see the list of objects that can be dragged onto the editor view to add to our model. Once an object is on the editor view you can view and change its properties by right clicking on the object and selecting '''Properties...''' from the context menu.&lt;br /&gt;
&lt;br /&gt;
For more information about the '''Resource Editor''' view see ''OpenClovis IDE User Guide''.&lt;br /&gt;
&lt;br /&gt;
====Component Editor View====&lt;br /&gt;
The '''Component Editor''' shows the types of logical objects in our system. It gives us a place to create new objects and interact with the objects that already exist. The '''Component Editor''' view for our model should look similar to the following figure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='OpenClovis Component Editor'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_ComponentEditor.png|frame|center| '''OpenClovis Component Editor''' ]]&lt;br /&gt;
&lt;br /&gt;
This editor always has a '''Cluster''' object which is the root of all other objects in the editor. In our case it also has the '''SCNode''' node type and the '''csa101''' SAF Service Type (a combination of Service Group, Service Unit, Service Instance, Component Service Instance, and SAF Component) that we created through the '''Project Creation Wizard'''. These have all been automatically attached in a way that makes a working model.&lt;br /&gt;
&lt;br /&gt;
On the right hand side of the editor view you will see the '''Palette''' which can be expanded and collapsed. Expanding the '''Palette''' you will see the list of objects that can be dragged onto the editor view to add to our model. Once an object is on the editor view you can view and change its properties by right clicking on the object and selecting '''Properties...''' from the context menu.&lt;br /&gt;
&lt;br /&gt;
For more information about the '''Component Editor''' view see ''OpenClovis IDE User Guide''.&lt;br /&gt;
&lt;br /&gt;
===Configuring the Components===&lt;br /&gt;
The '''New Project Wizard''' that we used to create our project configured the system using the most common options. We will have to make a few changes to this model in order for our example to work. We will make these changes in the '''Component Editor''' view.&lt;br /&gt;
&lt;br /&gt;
In the Component Editor you will notice seven different objects that were created by the wizard. The first two of these are:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Cluster: The root object of all other objects in the Component Editor view.&lt;br /&gt;
&amp;lt;li&amp;gt;SCNode: This is the SAF Node Type that we specified during project creation.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The next five objects all make up the Program or SAF Service Type that we specified on the last dialog of the New Project Wizard. These objects are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;csa101SG: This is the Service Group representing our high availability software component.&lt;br /&gt;
&amp;lt;li&amp;gt;csa101SU: This is the Service Unit that is logically associated with the SCNode SAF Node Type.&lt;br /&gt;
&amp;lt;li&amp;gt;csa101SI: This is the Service Instance&lt;br /&gt;
&amp;lt;li&amp;gt;csa101CSI: This is the Component Service Instance&lt;br /&gt;
&amp;lt;li&amp;gt;csa101: This is the SAF Component which represents our program or executable.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will be making changes to the Service Group (csa101SG), the Service Instance (csa101SI), and the SAF Component (csa101).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Configuring the Service Group====&lt;br /&gt;
To make changes to the Service Group double-click on the box titled '''csa101SG'''. The '''Service Group Details''' dialog is displayed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Service Group Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_ServiceGroupDetails.png|frame|center| '''Service Group Details''' ]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The first change we want to make is to the '''Redundancy Model'''. The '''Redundancy Model''' is the strategy that is used by the SAFplus Platform system to recover from a node failure. For our simple model (which only has one node) we are not going to rely on any failover recovery so change the '''Redundancy Model''' to 'No Redundancy' as shown.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]You will notice that when you change the redundancy model some of the other fields are modified automatically and become read-only. This is to ensure integrity of the redundancy models.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The second change that we want to make is to the '''Admin State'''. The '''Admin State''' defines the state of the component when the system is first brought up. In our case we want to change the '''Admin State''' to be 'Locked Initialized'. This means that when the system first starts up this '''Service Group''' (and its subcomponents) will be initialized but not yet put into a running state. So our csa101 application will not yet start printing &amp;quot;Hello World!&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;When you are finished making the changes click the '''OK''' button to commit the changes.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Configuring the Service Instance====&lt;br /&gt;
To make changes to the Service Instance double-click on the box titled '''csa101SI'''. The '''Service Instance Details''' dialog is displayed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Service Instance Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_ServiceInstanceDetails.png|frame|center| '''Service Instance Details''' ]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The only change we want to make here is to the '''Number of standby assignments'''. This value represents the number of components that will be waiting to take over during a node failure and goes hand-in-hand with the '''Redundancy Model''' that we selected for the Service Group. Since we selected 'No Redundancy' for our '''Redundancy Model''' we need to set this value to 0...since we are not supporting any failover in this model.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;When you are finished making the changes click the '''OK''' button to commit the changes.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Configuring the SAF Component====&lt;br /&gt;
To make changes to the SAF Component double-click on the box titled '''csa101'''. The '''SAF Component Details''' dialog is displayed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='SAF Component Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_SAFComponentDetails.png|frame|center| '''SAF Component Details''' ]]&lt;br /&gt;
&lt;br /&gt;
The SAF Component represents our high availabilty program or executable. We need to pass a command line argument to this executable. The reason for this argument is to force the program to print the 'Hello World!' output to a special log file for our viewing. We will look at this more closely when we customize our code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;To add command line parameters click the '''Edit...''' button corresponding to the '''Command line Arguments''' label.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The '''Command line Argument Details''' dialog is displayed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Command line Argument Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_CommandLineArgs.png|frame|center| '''Command line Argument Details''' ]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Click the '''New''' button to add a new value to the list.&lt;br /&gt;
&amp;lt;li&amp;gt;Click on the new value in the list and it will become editable. Change the value to '''-p'''.&lt;br /&gt;
&amp;lt;li&amp;gt;Click the '''OK''' button to save and close the dialog.&lt;br /&gt;
&amp;lt;li&amp;gt;Click the '''OK''' button on the '''SAF Component Details''' dialog to commit the changes to the SAF Component and close the dialog.&lt;br /&gt;
&amp;lt;li&amp;gt;Save the component model using the '''File &amp;gt; Save''' menu item.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuring Physical Instances===&lt;br /&gt;
The configuration of our logical models is complete. During this process we have defined all of the 'types' of objects in our system. Now it is time to configure actual instances of those objects so that they can be built and deployed.&lt;br /&gt;
&lt;br /&gt;
Object instance configuration is done through the Availability Management Framework (AMF) via the '''AMF Configuration''' dialog.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;To launch this dialog go to the the '''Clovis''' menu and select '''AMF Configuration...'''&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The '''AMF Configuration''' dialog is displayed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='AMF Configuration Dialog'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_AMFConfig.png|frame|center| '''AMF Configuration Dialog''' ]]&lt;br /&gt;
&lt;br /&gt;
You will note from the instructions on this page that the physical instances representing the objects in our model can be created manually or by using wizards. Using the wizards will save us both typing and time so we will use these instead of creating each instance manually.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Creating Node Instances====&lt;br /&gt;
First we will create actual instances of the Node Types (in our case only one Node Type...SCNode) we created in our model.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Double-click AMF Configuration in the left hand pane. The Node Instance List appears.&lt;br /&gt;
&amp;lt;li&amp;gt;Click on Node Instance List. The right hand pane displays the fields we must fill out to create our node instance.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the right hand pane:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Select SCNode for the '''Node Type'''.&lt;br /&gt;
&amp;lt;li&amp;gt;Select SysBlade for the '''Blade type'''.&lt;br /&gt;
&amp;lt;li&amp;gt;Enter 1 for the '''Node Count'''.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The complete form should look like the following.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Node Wizard Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_AMFNodeWizardDetails.png|frame|center| '''Node Wizard Details''' ]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Click the '''Create Instance Tree''' button to create our node instance.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expanding the '''Node Instance List''' branch of the '''AMF Configuration''' tree in the left-hand pane reveals a new node instance named SCNodeI0 (indicating SCNode Instance 0).&lt;br /&gt;
&lt;br /&gt;
====Creating Service Group Instances====&lt;br /&gt;
Now we will create actual instances of the Service Groups that we defined in our model.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Click on Service Group List. The right hand pane displays the fields we must fill out to create our service group instance.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the right hand pane:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Select csa101SG (the only service group type we defined) for the '''Service Group Type'''.&lt;br /&gt;
*The '''Associated Node Instances''' list will be populated with all of the node instances that can be associated with the selected service group type.&lt;br /&gt;
&amp;lt;li&amp;gt;Select SCNodeI0 from the '''Associated Node Instances''' list.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The completed form should look like the following.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Service Group Wizard Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_AMFSGWizardDetails.png|frame|center| '''Service Group Wizard Details''' ]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Click the '''Create Instance Tree''' button to create our service group instance.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you now completely expand the '''AMF Configuration''' branch of the tree in the left-hand pane you will see the following.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='AMS Configuration Instance Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_AMSConfigDetails.png|frame|center| '''AMF Configuration Instance Details''' ]]&lt;br /&gt;
&lt;br /&gt;
Notice that not only have the wizards created the node and service group instances for you, they have also filled out the entire instance tree. This was accomplished based on two key sets of information. The first of these is the association that was made between the service group type and the node instance in the '''Service Group Wizard'''. The second set of information is the component model that we created through the New Project Wizard and the Component Editor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]For more information regarding the specific properties of the generated instances see [[#Appendix B: AMF Configuration Instance Details|Appendix B: AMF Configuration Instance Details]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Thats it. We are done modelling the csa101 example!&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Click the OK button to commit our changes and close the dialog. &lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Now its time to generate the framework code.&lt;br /&gt;
&lt;br /&gt;
==Generating the csa101 Code==&lt;br /&gt;
In this step we generate the source code for our example. The code that will be created is the framework code that handles all of the low level functionality provided by OpenClovis.&lt;br /&gt;
&lt;br /&gt;
To generate the source code go to the '''Project''' menu and select '''Generate Source'''. Several progress dialogs will appear and after a few seconds code generation will be complete.&lt;br /&gt;
&lt;br /&gt;
The source code and configuration XML files are generated and placed in subdirectories of the '''Project Area Location''' that we specified in the '''New Project Wizard'''. You can review this location by using the '''Project &amp;gt; Properties''' menu to get to the '''Project Properties''' dialog and then selecting '''Clovis System Project''' in the left hand pane.&lt;br /&gt;
&lt;br /&gt;
You can review the generated code from within the OpenClovis IDE. To do this go to the '''Clovis Workspace''' pane and expand the '''SampleModel''' node. The node tree should look like the following.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Clovis Workspace Code Tree'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_CWCodeTree.png|frame|center| '''Clovis Workspace Code Tree''' ]]&lt;br /&gt;
&lt;br /&gt;
The code of particular interest to our example is in the SampleModel/src/app/csa101 branch of the tree. This is the code for our csa101 example. The csa101 example consists of two C modules (&amp;lt;code&amp;gt;clCompAppMain.c&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;clCompCfg.c&amp;lt;/code&amp;gt;) and two header files. There is also a make file that will be used for building the application. The &amp;lt;code&amp;gt;clCompAppMain.c&amp;lt;/code&amp;gt; file implements our 'Hello World!' application.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]If you run code generation a second time you will be presented with a dialog box asking if you would like to make a backup copy of the existing source code before proceeding. You can answer No to this dialog.&lt;br /&gt;
&lt;br /&gt;
==Customizing the csa101 Code==&lt;br /&gt;
While the code that was generated in the previous section can be built and run we want to make some changes to it so that we can easily see what our example is doing. For our example we will be changing one source file (&amp;lt;code&amp;gt;clCompAppMain.c&amp;lt;/code&amp;gt;) and two make files.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]In a real production situation this is the point where you would customize the code to perform the specific tasks of your product.&lt;br /&gt;
&lt;br /&gt;
You will notice in the C file that there are several places where you see the following comment block.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|clCompAppMain.c&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /*&lt;br /&gt;
   ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
 // ...&lt;br /&gt;
&lt;br /&gt;
 /*&lt;br /&gt;
   ---END_APPLICATION_CODE---&lt;br /&gt;
 */&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Makefiles have a similar convention but with a slightly different syntax.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|Makefile&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
&lt;br /&gt;
 # ---END_APPLICATION_CODE---&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These are sections of the file where it is safe to enter custom application code without having to worry about that code being overwritten if you were to again perform '''Generate Source''' for your model. This is important since the typical development cycle is an iterative process where you will return to the IDE to make modifications to your model.&lt;br /&gt;
&lt;br /&gt;
To simplify the process of building and running the csa101 example, OpenClovis has already made the necessary code customizations and shipped this code with the OpenClovis SDK. At this point you can simply replace the generated source files with these customized versions to avoid typing in the changes. We will go over each customization below and explain what was done.&lt;br /&gt;
&lt;br /&gt;
To replace the generated files with the customized versions shipped with the OpenClovis SDK follow these instructions.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]  The sample applications containing the csa101 example can be found under the installation directory at &amp;lt;code&amp;gt;&amp;lt;install_dir&amp;gt;/sdk-5.0/src/examples/eval&amp;lt;/code&amp;gt;. We will refer to this directory in the remaining of this section as &amp;lt;code&amp;gt;&amp;lt;eval_dir&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Exit the OpenClovis IDE using the '''File &amp;gt; Exit''' menu item. If you are prompted to save changes before exiting answer yes.&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate to the source code work area.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;# cd /home/clovis/projectarea1/ide_workspace/SampleModel/src/app&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Using your favorite editor open the file &amp;lt;code&amp;gt;Makefile&amp;lt;/code&amp;gt; that resides in this directory. This is the application make file.&lt;br /&gt;
&amp;lt;li&amp;gt;Add the following line to this file within the first &amp;lt;code&amp;gt;BEGIN_APPLICATION_CODE&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;END_APPLICATION_CODE&amp;lt;/code&amp;gt; comment block.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;SUBDIRS += ev&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
This will instruct the build process to build our custom output library.&lt;br /&gt;
&amp;lt;li&amp;gt;Save this file and exit the editor.&lt;br /&gt;
&amp;lt;li&amp;gt;Execute the following command to copy the output package to our working area.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;# cp -r &amp;lt;eval_dir&amp;gt;/src/app/ev .&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Navigate to the component code work area.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;# cd csa101&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Execute the following command to copy the csa101 source code.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;# cp &amp;lt;eval_dir&amp;gt;/src/app/csa101/clCompAppMain.c .&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Execute the following command to copy the component make file.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;# cp &amp;lt;eval_dir&amp;gt;/src/app/csa101/Makefile .&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Restart the OpenClovis IDE.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;# cl-ide&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Customizing clCompAppMain.c===&lt;br /&gt;
The &amp;lt;code&amp;gt;clCompAppMain.c&amp;lt;/code&amp;gt; file is the C module which will implement our 'Hello World!' behavior. We have to make changes in several parts of this file.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]If you copied the files as instructed in the section above then these changes have already been made to the files. Use this section to review and understand the changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the include section of this file we have added a new include for &amp;lt;code&amp;gt;ev.h&amp;lt;/code&amp;gt;. This refers to a special output library that we copied to our work area in the previous section. This output library is used to redirect output from the application to a component specific log. This is purely cosmetic but it will allow us to easily monitor what is happening when we run our example. (The following code begins at line 44 of the source file.)&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|clCompAppMain.c&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
 /*&lt;br /&gt;
   ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
 #include &amp;quot;clCompAppMain.h&amp;quot;&lt;br /&gt;
 #include &amp;quot;../ev/ev.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 /*&lt;br /&gt;
   ---END_APPLICATION_CODE---&lt;br /&gt;
 */&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Next we define a couple of static variables that will keep track of the state of our application and a function to aid in showing when the application is running. (The following code begins at line 79 of the source file.)&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|clCompAppMain.c&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
 /*&lt;br /&gt;
   ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
 static int running = 0;&lt;br /&gt;
 static int exiting = 0;&lt;br /&gt;
&lt;br /&gt;
 static char*&lt;br /&gt;
 show_progress(void)&lt;br /&gt;
 {&lt;br /&gt;
     static char bar[] = &amp;quot;          .&amp;quot;;&lt;br /&gt;
     static int progress = 0;&lt;br /&gt;
&lt;br /&gt;
     /* Show a little progress bar */&lt;br /&gt;
     return &amp;amp;bar[sizeof(bar)-2-(progress++)%(sizeof(bar)-2)];&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 /*&lt;br /&gt;
   ---END_APPLICATION_CODE---&lt;br /&gt;
 */&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;running&amp;lt;/code&amp;gt; flag will be used to indicate whether the current application is active or suspended while &amp;lt;code&amp;gt;exiting&amp;lt;/code&amp;gt; is a flag that indicates that the main() function returns, causing the exit of the application.&lt;br /&gt;
&lt;br /&gt;
The function &amp;lt;code&amp;gt;show_progress&amp;lt;/code&amp;gt; returns a pointer to a c string with a number of spaces followed by a '.' character. The number of spaces in the string cycles from zero to an upper bound. This is used later on to provide visual indication of the progress of the application's output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Next we have added a function &amp;lt;code&amp;gt;hello_func&amp;lt;/code&amp;gt; to print the output. (The following code begins at line 118 of the source file.)&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|clCompAppMain.c&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void *hello_func(void *unused)&lt;br /&gt;
{&lt;br /&gt;
    while (!exiting)&lt;br /&gt;
    {&lt;br /&gt;
        if (running)&lt;br /&gt;
        {&lt;br /&gt;
            clprintf(CL_LOG_SEV_INFO, &amp;quot;csa101: Hello World! %s\n&amp;quot;, show_progress());&lt;br /&gt;
        }&lt;br /&gt;
        sleep(1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return NULL;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notice the while loop condition. This function uses the &amp;lt;code&amp;gt;exiting&amp;lt;/code&amp;gt; variable that was initialized to 0.  The loop will keep running until &amp;lt;code&amp;gt;exiting&amp;lt;/code&amp;gt; is set to non-zero.  The if condition within the while loop checks the value of the &amp;lt;code&amp;gt;running&amp;lt;/code&amp;gt; variable.  The work of the application: printing &amp;quot;Hello World!&amp;quot; along with the progress indicator will only be done when the &amp;lt;code&amp;gt;running&amp;lt;/code&amp;gt; variable is set non-zero.  Next the command &amp;lt;code&amp;gt;sleep(1)&amp;lt;/code&amp;gt; simply sleeps for a second so as not to fill log files too quickly or completely swamp the CPU.&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;code&amp;gt;exiting&amp;lt;/code&amp;gt; becomes non-zero, we return from the function. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Next we have added a function to initialize the special output library mentioned earlier (which is at line 245 in the source file).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Next we create a thread and call the function &amp;lt;code&amp;gt;hello_func&amp;lt;/code&amp;gt; in the new thread context. (The following code begins at line 252 of the source file.)&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|clCompAppMain.c&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/*  &lt;br /&gt;
 * ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
 */&lt;br /&gt;
clprintf(CL_LOG_SEV_INFO, &amp;quot;csa101: Instantiated as component instance %s.\n&amp;quot;, appName.value);&lt;br /&gt;
&lt;br /&gt;
clprintf(CL_LOG_SEV_INFO, &amp;quot;%s: Waiting for CSI assignment...\n&amp;quot;, appName.value);&lt;br /&gt;
&lt;br /&gt;
rc = clOsalTaskCreateDetached(&amp;quot;hello_thread&amp;quot;, CL_OSAL_SCHED_OTHER, CL_OSAL_THREAD_PRI_NOT_APPLICABLE, 0, hello_func, NULL);&lt;br /&gt;
CL_ASSERT(rc == CL_OK);&lt;br /&gt;
&lt;br /&gt;
/*  &lt;br /&gt;
 * ---END_APPLICATION_CODE---&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Next we indicate to our app when we are exiting. (The following code begins at line 284 of the source file.)&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|clCompAppMain.c&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/*  &lt;br /&gt;
 * ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
 exiting = 1;&lt;br /&gt;
 clEvalAppLogStreamClose(gEvalLogStream);&lt;br /&gt;
&lt;br /&gt;
/*  &lt;br /&gt;
 * ---END_APPLICATION_CODE---&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
We set the &amp;lt;code&amp;gt;exiting&amp;lt;/code&amp;gt; variable to 1. This will cause the loop in our &amp;lt;code&amp;gt;hello_func&amp;lt;/code&amp;gt; function to exit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Next we will put in code to manage the state of our application. (The following code begins at line 453 of the source file.)&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|clCompAppMain.c&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
void clCompAppAMFCSISet(SaInvocationT       invocation,&lt;br /&gt;
                        const SaNameT       *compName,&lt;br /&gt;
                        SaAmfHAStateT       haState,&lt;br /&gt;
                        SaAmfCSIDescriptorT csiDescriptor)&lt;br /&gt;
{&lt;br /&gt;
    /*&lt;br /&gt;
     * ---BEGIN_APPLICATION_CODE--- &lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    // ...&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
     * ---END_APPLICATION_CODE---&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
     * Print information about the CSI Set&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    clprintf (CL_LOG_SEV_INFO, &amp;quot;Component [%.*s] : PID [%d]. CSI Set Received\n&amp;quot;,&lt;br /&gt;
              compName-&amp;gt;length, compName-&amp;gt;value, mypid);&lt;br /&gt;
&lt;br /&gt;
    clCompAppAMFPrintCSI(csiDescriptor, haState);&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
     * Take appropriate action based on state&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    switch ( haState )&lt;br /&gt;
    {&lt;br /&gt;
        case SA_AMF_HA_ACTIVE:&lt;br /&gt;
        {&lt;br /&gt;
            /*&lt;br /&gt;
             * AMF has requested application to take the active HA state &lt;br /&gt;
             * for the CSI.&lt;br /&gt;
             */&lt;br /&gt;
&lt;br /&gt;
            /*&lt;br /&gt;
             * ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
             */&lt;br /&gt;
&lt;br /&gt;
            clprintf(CL_LOG_SEV_INFO, &amp;quot;csa101: ACTIVE state requested; activating service\n&amp;quot;);&lt;br /&gt;
            running = 1;&lt;br /&gt;
&lt;br /&gt;
            /*&lt;br /&gt;
             * ---END_APPLICATION_CODE---&lt;br /&gt;
             */&lt;br /&gt;
&lt;br /&gt;
            saAmfResponse(amfHandle, invocation, SA_AIS_OK);&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|clCompAppMain.c&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        case SA_AMF_HA_STANDBY:&lt;br /&gt;
        {&lt;br /&gt;
            /*&lt;br /&gt;
             * AMF has requested application to take the standby HA state &lt;br /&gt;
             * for this CSI.&lt;br /&gt;
             */&lt;br /&gt;
&lt;br /&gt;
            /*&lt;br /&gt;
             * ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
             */&lt;br /&gt;
&lt;br /&gt;
            clprintf(CL_LOG_SEV_INFO, &amp;quot;csa101: New state is not the ACTIVE; deactivating service\n&amp;quot;);&lt;br /&gt;
            running = 0;&lt;br /&gt;
&lt;br /&gt;
            /*&lt;br /&gt;
             * ---END_APPLICATION_CODE---&lt;br /&gt;
             */&lt;br /&gt;
&lt;br /&gt;
            saAmfResponse(amfHandle, invocation, SA_AIS_OK);&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        case SA_AMF_HA_QUIESCED:&lt;br /&gt;
        {&lt;br /&gt;
            /*&lt;br /&gt;
             * AMF has requested application to quiesce the CSI currently&lt;br /&gt;
             * assigned the active or quiescing HA state. The application &lt;br /&gt;
             * must stop work associated with the CSI immediately.&lt;br /&gt;
             */&lt;br /&gt;
&lt;br /&gt;
            /*&lt;br /&gt;
             * ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
             */&lt;br /&gt;
            clprintf(CL_LOG_SEV_INFO, &amp;quot;csa101: Acknowledging new state\n&amp;quot;);&lt;br /&gt;
            running = 0;&lt;br /&gt;
&lt;br /&gt;
            /*&lt;br /&gt;
             * ---END_APPLICATION_CODE---&lt;br /&gt;
             */&lt;br /&gt;
&lt;br /&gt;
            saAmfResponse(amfHandle, invocation, SA_AIS_OK);&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|clCompAppMain.c&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
        case SA_AMF_HA_QUIESCING:&lt;br /&gt;
        {&lt;br /&gt;
            /*&lt;br /&gt;
             * AMF has requested application to quiesce the CSI currently&lt;br /&gt;
             * assigned the active HA state. The application must stop work&lt;br /&gt;
             * associated with the CSI gracefully and not accept any new&lt;br /&gt;
             * workloads while the work is being terminated.&lt;br /&gt;
             */&lt;br /&gt;
&lt;br /&gt;
            /*&lt;br /&gt;
             * ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
             */&lt;br /&gt;
            clprintf(CL_LOG_SEV_INFO, &amp;quot;csa101: Signaling completion of QUIESCING\n&amp;quot;);&lt;br /&gt;
            running = 0;&lt;br /&gt;
&lt;br /&gt;
            /*&lt;br /&gt;
             * ---END_APPLICATION_CODE---&lt;br /&gt;
             */&lt;br /&gt;
&lt;br /&gt;
            saAmfCSIQuiescingComplete(amfHandle, invocation, SA_AIS_OK);&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
We have modified the &amp;lt;code&amp;gt;clCompAppAMFCSISet&amp;lt;/code&amp;gt; callback function to let our application know what to do when the state changes. In the case where the state changes to &amp;lt;code&amp;gt;SA_AMF_HA_ACTIVE&amp;lt;/code&amp;gt; we set the &amp;lt;code&amp;gt;running&amp;lt;/code&amp;gt; variable to 1. This will cause our application to begin printing the 'Hello World!' message. For any other state change we set the &amp;lt;code&amp;gt;running&amp;lt;/code&amp;gt; variable to 0 which will cause the message to stop printing. For any state change we print out a message indicating the new state of the application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The last change that we make is to indicate to our application when the component is being disassociated with the workflow. (The following code begins at line 588 of the source file.)&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|clCompAppMain.c&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
void clCompAppAMFCSIRemove(SaInvocationT  invocation,&lt;br /&gt;
                           const SaNameT  *compName,&lt;br /&gt;
                           const SaNameT  *csiName,&lt;br /&gt;
                           SaAmfCSIFlagsT csiFlags)&lt;br /&gt;
{&lt;br /&gt;
    ....&lt;br /&gt;
&lt;br /&gt;
    /*  &lt;br /&gt;
     * Add application specific logic for removing the work for this CSI.&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    /*  &lt;br /&gt;
     * ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
     */&lt;br /&gt;
    running = 0;&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
     * ---END_APPLICATION_CODE---&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    saAmfResponse(amfHandle, invocation, SA_AIS_OK);&lt;br /&gt;
&lt;br /&gt;
    return;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the &amp;lt;code&amp;gt;clCompAppAMFCSIRemove&amp;lt;/code&amp;gt; callback function we indicate to our application that we are no longer running so that the while loop in the &amp;lt;code&amp;gt;hello_func&amp;lt;/code&amp;gt; function stops printing our 'Hello World!' message.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Customizing the Component MakeFile===&lt;br /&gt;
We have to make a small change to the component &amp;lt;code&amp;gt;MakeFile&amp;lt;/code&amp;gt; so that it knows about our special output library during the build. To do this we add the following lines. This file is located in &amp;lt;code&amp;gt;/home/clovis/projectarea1/ide_workspace/SampleModel/src/app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|Component MakeFile&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
    # ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
&lt;br /&gt;
    SUBDIRS += ev&lt;br /&gt;
&lt;br /&gt;
    # ---END_APPLICATION_CODE---&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Customizing the Application MakeFile===&lt;br /&gt;
We have to make sure that our special output library is built along with our application. To do this we change the line listing the sudirectories to make as follows. This file is located in the directory &amp;lt;code&amp;gt;/home/clovis/projectarea1/ide_workspace/SampleModel/src/app/csa101&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffccaa;&amp;quot; align=&amp;quot;center&amp;quot;|Application MakeFile&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
    # ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
    &lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
    # Library added for demo console handling for the evaluation kit&lt;br /&gt;
    ASP_LIBS   +=  libeval.a&lt;br /&gt;
&lt;br /&gt;
    # ---END_APPLICATION_CODE---&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We are finished customizing our application code!&lt;br /&gt;
&lt;br /&gt;
==Building the csa101 Code==&lt;br /&gt;
&lt;br /&gt;
Now that we have finished customizing the code it is time to build it. The build process is launched using the '''Project &amp;gt; Build Project''' menu item. Once selected the '''Build Configuration''' dialog appears.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Build Configuration Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_BuildConfigDetails.png|frame|center| '''Build Configuration Details''' ]]&lt;br /&gt;
&lt;br /&gt;
The '''Build Configuration''' dialog is used to gather specific information about the build we are about to perform. Using this dialog you can rebuild the same model using different cross builds, or including different chassis managers. We don't have to make any changes to this dialog since the default settings make sense for our sample application.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]If you have prebuilt the SAFplus Platform libraries then you can check the '''Use pre built SAFplus''' checkbox and include the location of the prebuilt libraries. For more information about pre-building SAFplus Platform libraries, see ''OpenClovis SDK User Guide''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]The '''Include SNMP for North Bound Access''' control is checked by default. This just means that Net SNMP will be started along with our system. If you want end-to-end connectivity you will need to supply an SNMP Sub Agent and a MIB. See the ''OpenClovis SDK User Guide'' for more details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]In the '''Project''' menu if the '''Build Project''' entry is not highlighted, then click in the right pane i.e. '''Clovis Workspace''' pane and click the '''Project''' menu again. This not highlighting of the '''Build Project''' is because the '''Clovis Workspace''' is not selected properly because of moving focus to some other pane.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Click the '''OK''' button to begin the build. If this is the first time that the project is being built, or if you have made changes to any setting on this screen, you will initially see a progress dialog indicating that the project is being configured. The configuration step is setting up the project for building. After the configuration has completed you will see a progress dialog indicating that the code is being built.&lt;br /&gt;
&lt;br /&gt;
==Creating the csa101 Images==&lt;br /&gt;
&lt;br /&gt;
Making the csa101 images will create software packages that can be deployed on target machines to run the example. The process of creating images is launched using the '''Project &amp;gt; Make Images''' menu item. Once selected the '''Make Images Configuration''' dialog appears.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Make Images Configuration Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_MakeImagesConfigDetails.png|frame|center| '''Make Images Configuration Details''' ]]&lt;br /&gt;
&lt;br /&gt;
The '''Make Images Configuration''' dialog is used to indicate information about the environment on which the images will be deployed. This information is used to tailor the images to run on that environment. Here we will make the following modificaiton.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enter a value for the '''Trap IP'''. This value specifies where the SNMP sub-agent will send traps at runtime. This field is optional but if specified must be a valid IP address. Enter a value of '127.0.0.1' in this field.&lt;br /&gt;
&amp;lt;li&amp;gt;Enter a value for the '''TIPC Net ID'''. This value represents a unique identifier used by TIPC to set up interprocess communication across the deployed OpenClovis SAFplus Platform cluster. This field is required and should default to '1340'.&lt;br /&gt;
&amp;lt;li&amp;gt;Check the '''Create Node Specific Images''' and '''Package Images into Tarballs''' check boxes. This will create tarballs of the images making them easy to deploy to various machines.&lt;br /&gt;
&amp;lt;li&amp;gt;The table on this dialog will hold a row for each node instance defined in the model. In our case this is only one...SCNodeI0. For each of these instances we can define the slot number in the chassis on which the node will run and the network interface that the node will use for communication. In our case enter '1' for the Slot Number and 'eth0' for the Network Interface.&lt;br /&gt;
&amp;lt;li&amp;gt;Click '''OK''' to begin the make image process. A dialog box will appear and after a few seconds the the make images process will be complete.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The images will be populated at &amp;lt;project_area&amp;gt;/target/SampleModel/images. Each node-specific image is provided as a directory containing the run-time files (binaries, libraries, prerequisites, and configuration files) as well as a tarball with the same content.  &amp;lt;i&amp;gt;e.g.&amp;lt;/i&amp;gt; For our model containing one node (&amp;lt;code&amp;gt;SCNodeI0&amp;lt;/code&amp;gt;) the following files and directories are generated for deployment on the run-time system.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;project_area&amp;gt;&lt;br /&gt;
   |+target&lt;br /&gt;
       |+&amp;lt;model&amp;gt;&lt;br /&gt;
           |+images&lt;br /&gt;
               |+SCNodeI0&lt;br /&gt;
               |   |+bin&lt;br /&gt;
               |   |+etc&lt;br /&gt;
               |   |+lib&lt;br /&gt;
               |   |+modules&lt;br /&gt;
               |   |+share&lt;br /&gt;
               |-SCNodeI0.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The rest of the steps in this example are all done from the command line so we can exit the IDE. To do this use the '''File &amp;gt; Exit''' menu item.&lt;br /&gt;
&lt;br /&gt;
==Deploying the csa101 Images==&lt;br /&gt;
Now that the image has been built we must deploy it so that we can run and observe our example. Since we are assuming that the example will be run on the same machine as the images were built this is a fairly trivial exercise. Use the following steps to deploy the runtime image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First we create a directory where we will install the image. In our case we will use &amp;lt;code&amp;gt;/root/asp&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /root&lt;br /&gt;
# mkdir asp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Next we navigate to that directory and untar the deployment package.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /root/asp&lt;br /&gt;
# tar xzvf /home/clovis/projectarea1/target/SampleModel/images/SCNodeI0.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The System Controller is now installed and ready to run.&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] If you were going to run the example on a machine other than the one where the images were built you would first copy the installation tarball to that machine before performing the above steps.&lt;br /&gt;
&lt;br /&gt;
==Running the csa101 Example==&lt;br /&gt;
There are two parts to running the csa101 example. First we must start SAFplus Platform, and then we interact with the system components.&lt;br /&gt;
&lt;br /&gt;
===Starting SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
To start SAFplus Platform on System Controller node.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open a shell.&lt;br /&gt;
&amp;lt;li&amp;gt;Run the following commands&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /root/asp&lt;br /&gt;
# etc/init.d/asp start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] This assumes that you are running the SAFplus Platform example on the same PC that you are executing these commands. If you are running SAFplus Platform on a different machine then you should first ssh to that machine before executing the commands.&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] If SAFplus Platform fails to start properly it could be due to the machine's firewall being enabled. SAFplus Platform will not run on a machine which has firewall enabled. See the ''Environment Related Observation'' section of the ''OpenClovis Release Notes'' for more information.&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] By default the network interface used by the Group Membership Service is set to eth0. During the make images phase of the tutorial we also set the ethernet interface for node SCNodeI0 to be eth0. During image generation these configuration parameters are written to two files in the deployment package.&lt;br /&gt;
*&amp;lt;code&amp;gt;/root/asp/etc/clGmsConfig.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;/root/asp/etc/asp.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There may be an occasion where you want to switch this interface for a machine on which you are deploying. If you would like to switch this interface on a machine without having to go through the process of rebuilding and redeploying, you can edit these two files and change the 'eth0' references to the interface you would like to use.&lt;br /&gt;
&lt;br /&gt;
===Interacting with the System Components===&lt;br /&gt;
Once SAFplus Platform is up and running the next step is to start csa101 by informing SAFplus Platform that it should start the application. The Evaluation System's model tells SAFplus Platform that csa101 is locked for instantiation. This means that the process will not be started when SAFplus Platform comes up. This method of starting csa's is used for the Evaluation System, allowing users to interact with csa's and clearly see their output/functionality. Usually this would not be the case with applications, where they would run when SAFplus Platform begins.&lt;br /&gt;
&lt;br /&gt;
At this point it would help to be familiar with the Service Availability Forum's notions of  Service Unit, Service Group, and administrative state.  The Service Availability Forum's Application Interface Specification (available from http://www.saforum.org/) is a good place to start.&lt;br /&gt;
&lt;br /&gt;
In brief, the sample applications in the Evaluation System are part of service units which in turn are part of service groups.  Service groups (and the service units that make up the service groups) can be in &amp;quot;administrative&amp;quot; states which include &amp;quot;LockInstantiation&amp;quot;, &amp;quot;LockAssignment&amp;quot;, and &amp;quot;Unlocked&amp;quot;.  There are other states, but these are the ones we care about for the purposes of this Evaluation System.  If the administrative state of a service unit is &amp;quot;LockInstantiation&amp;quot; then the application that is part of that service unit will not even be started.  If the administrative state is &amp;quot;LockAssignment&amp;quot; then the application will be started, but it will not be assigned any work.  If the administrative state is &amp;quot;Unlocked&amp;quot; then it will not only be started, but will have a workload assigned to it, which is to say that it will start doing work (or start providing service), rather than idly sit waiting for work.&lt;br /&gt;
&lt;br /&gt;
The administrative state of a service unit or service group can change from LockInstantiation to LockAssignment, from LockAssignment to Unlocked, or back to LockInstantiation, from Unlocked to LockAssignment.  A picture might help here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;PartialServiceGroupAdministrativeStateDiagram&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; [[File:eval_AdministrativeStateDiagram.png|frame|center| '''Partial Service Group Administrative State Diagram''' ]]&lt;br /&gt;
&lt;br /&gt;
As the figure shows, the administrative state of a service unit (or service group) can change from &amp;quot;LockInstantiation&amp;quot; to &amp;quot;LockAssignment&amp;quot; and from there to &amp;quot;Unlocked&amp;quot;, or back to &amp;quot;LockInstantiation&amp;quot;.  One way to change the administrative state of a service group is with the SAFplus Platform Console command line interface. &lt;br /&gt;
&lt;br /&gt;
To use the SAFplus Platform Console:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Open a terminal on the Development Machine. (Or ssh into System Controller node as root, if you are running SAFplus Platform on a machine other than the development machine.)&lt;br /&gt;
&amp;lt;li&amp;gt; Change to image bin directory: &amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;# cd /root/asp/bin&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Start the SAFplus Platform Console &amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;# ./asp_console&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; From within the SAFplus Platform Console: &amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cli[Test]-&amp;gt; setc 1&lt;br /&gt;
cli[Test:SCNodeI0]-&amp;gt; setc cpm&lt;br /&gt;
cli[Test:SCNodeI0:CPM]-&amp;gt; amsLockAssignment sg csa101SGI0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above changes the administrative state of the group csa101SGI0 from &amp;quot;locked-for-instantiation&amp;quot; to &amp;quot;locked-for-assignment&amp;quot;.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]For the command &amp;lt;code&amp;gt;cli[Test]-&amp;gt; setc 1&amp;lt;/code&amp;gt;, the 1 represents the physical slot number of the System Controller within the Chassis. Remember that we set our System Controller to be in slot 1 in the make images dialog.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Now lets tail the application log file so that we can see whats going on. In another window, as root, run:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# tail -f /root/asp/var/log/csa101I0Log.latest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see the following:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffffaa;&amp;quot; align=&amp;quot;center&amp;quot;| /root/asp/var/log/csa101I0Log.latest&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Tue Jul 15 21:32:06 2008   (SCNodeI0.10849 : csa101_EO.---.---.00034 :   INFO)&lt;br /&gt;
 Component [csa101I0] : PID [10849]. Initializing&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:32:06 2008   (SCNodeI0.10849 : csa101_EO.---.---.00035 :   INFO)&lt;br /&gt;
    IOC Address             : 0x1&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:32:06 2008   (SCNodeI0.10849 : csa101_EO.---.---.00036 :   INFO)&lt;br /&gt;
    IOC Port                : 0x80&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:32:06 2008   (SCNodeI0.10849 : csa101_EO.---.---.00037 :   INFO)&lt;br /&gt;
 csa101: Instantiated as component instance csa101I0.&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:32:06 2008   (SCNodeI0.10849 : csa101_EO.---.---.00038 :   INFO)&lt;br /&gt;
 csa101I0: Waiting for CSI assignment...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Next change the administrative state of the csa101SGI0 service group to  &amp;quot;unlocked&amp;quot; by running (in the SAFplus Platform Console) :&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# cli[Test:SCNodeI0:CPM]-&amp;gt; amsUnlock sg csa101SGI0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the window where you're running the &amp;quot;tail -f&amp;quot; you should see:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffffaa;&amp;quot; align=&amp;quot;center&amp;quot;| /root/asp/var/log/csa101I0Log.latest&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Tue Jul 15 21:36:17 2008   (SCNodeI0.10849 : csa101_EO.---.---.00049 :   INFO)&lt;br /&gt;
 csa101: ACTIVE state requested; activating service&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:36:18 2008   (SCNodeI0.10849 : csa101_EO.---.---.00050 :   INFO)&lt;br /&gt;
 csa101: Hello World! .&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:36:19 2008   (SCNodeI0.10849 : csa101_EO.---.---.00051 :   INFO)&lt;br /&gt;
 csa101: Hello World!  .&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:36:20 2008   (SCNodeI0.10849 : csa101_EO.---.---.00052 :   INFO)&lt;br /&gt;
 csa101: Hello World!   .&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:36:21 2008   (SCNodeI0.10849 : csa101_EO.---.---.00053 :   INFO)&lt;br /&gt;
 csa101: Hello World!    .&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:36:22 2008   (SCNodeI0.10849 : csa101_EO.---.---.00054 :   INFO)&lt;br /&gt;
 csa101: Hello World!     .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
As you can tell from the output log our component is up and running! It is continuously printing our 'Hello World!' output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Now change the state of the csa101SGI0 service group back to &amp;quot;locked-for-assignment&amp;quot; by running (in the SAFplus Platform Console): &lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# cli[Test:SCNodeI0:CPM]-&amp;gt; amsLockAssignment sg csa101SGI0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the tail -f output you should see:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding = &amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align = &amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
 ! style=&amp;quot;color:black;background-color:#ffffaa;&amp;quot; align=&amp;quot;center&amp;quot;| /root/asp/var/log/csa101I0Log.latest&lt;br /&gt;
 |-&lt;br /&gt;
 |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Tue Jul 15 21:39:29 2008   (SCNodeI0.10849 : csa101_EO.---.---.00241 :   INFO)&lt;br /&gt;
 csa101: Hello World!  .&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:39:30 2008   (SCNodeI0.10849 : csa101_EO.---.---.00242 :   INFO)&lt;br /&gt;
 Component [csa101I0] : PID [10849]. CSI Set Received&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:39:30 2008   (SCNodeI0.10849 : csa101_EO.---.---.00243 :   INFO)&lt;br /&gt;
    CSI Flags               : [Target One]&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:39:30 2008   (SCNodeI0.10849 : csa101_EO.---.---.00244 :   INFO)&lt;br /&gt;
    CSI Name                : [csa101CSII0]&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:39:30 2008   (SCNodeI0.10849 : csa101_EO.---.---.00245 :   INFO)&lt;br /&gt;
    HA State                : [Quiesced]&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:39:30 2008   (SCNodeI0.10849 : csa101_EO.---.---.00246 :   INFO)&lt;br /&gt;
 csa101: Acknowledging new state&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:39:30 2008   (SCNodeI0.10849 : csa101_EO.---.---.00249 :   INFO)&lt;br /&gt;
 Component [csa101I0] : PID [10849]. CSI Remove Received&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:39:30 2008   (SCNodeI0.10849 : csa101_EO.---.---.00250 :   INFO)&lt;br /&gt;
    CSI                     : csa101CSII0&lt;br /&gt;
&lt;br /&gt;
Tue Jul 15 21:39:30 2008   (SCNodeI0.10849 : csa101_EO.---.---.00251 :   INFO)&lt;br /&gt;
    CSI Flags               : 0x2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Our component has been put into Lock Assignment state so our 'Hello World!' output has stopped printing to the log.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;At this point you can either unlock the service group to change its state to &amp;quot;unlocked&amp;quot; or you can lock it for instantiation to change it to state  &amp;quot;locked-for-instantiation&amp;quot;.  The latter will cause the csa101 process to die.  From state &amp;quot;locked-for-assignment&amp;quot;, it is possible to change the state to &amp;quot;locked-for-instantiation&amp;quot; by running (in the SAFplus Platform Console):&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cli[Test:SCNodeI0:CPM]-&amp;gt; amsLockInstantiation sg csa101SGI0&lt;br /&gt;
cli[Test:SCNodeI0:CPM] -&amp;gt; end&lt;br /&gt;
cli[Test:SCNodeI0] -&amp;gt; end&lt;br /&gt;
cli[Test] -&amp;gt; bye&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stopping SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
To stop SAFplus Platform on the System Controller&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open a shell.&lt;br /&gt;
&amp;lt;li&amp;gt;ssh into the System Controller node as root.&lt;br /&gt;
&amp;lt;li&amp;gt;Once logged in, run the following command&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /root/asp&lt;br /&gt;
# etc/init.d/asp stop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Summary and Next Steps==&lt;br /&gt;
In the csa101 example we learned the following.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;How to create a system model using the '''OpenClovis IDE'''.&lt;br /&gt;
&amp;lt;li&amp;gt;How to generate the source code.&lt;br /&gt;
&amp;lt;li&amp;gt;How to customize this source code to fit a specific application.&lt;br /&gt;
&amp;lt;li&amp;gt;How to configure and build the customized source code.&lt;br /&gt;
&amp;lt;li&amp;gt;How to make runtime images and deploy them to target machines.&lt;br /&gt;
&amp;lt;li&amp;gt;How to start and stop '''SAFplus'''.&lt;br /&gt;
&amp;lt;li&amp;gt;How to interact with system components using the '''SAFplus Platform Console'''.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The next logical step would be to run through the '''OpenClovis Evaluation System User Guide'''. This guide goes over more complex system configurations and introduces new concepts.&lt;br /&gt;
&lt;br /&gt;
For more in depth information on the '''OpenClovis IDE''' see the '''OpenClovis IDE User Guide'''.&lt;br /&gt;
&lt;br /&gt;
For more in depth information on the '''OpenClovis SDK''' see the '''OpenClovis SDK User Guide'''.&lt;br /&gt;
&lt;br /&gt;
==Appendix A: target.conf Settings==&lt;br /&gt;
&lt;br /&gt;
Below is a description of the values in the settings in the &amp;lt;code&amp;gt;target.conf&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''TRAP_IP''' (Mandatory): Specifies where the SNMP SubAgent should send traps at runtime.  If you do not have an SNMP SubAgent in your model specify '''127.0.0.1''' as the value.  &amp;lt;i&amp;gt;e.g.&amp;lt;/i&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
TRAP_IP=127.0.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''CMM_IP''' (Mandatory if deployed on an ATCA chassis): Specifies the IP address of the target system's chassis management module or shelf manager. &amp;lt;i&amp;gt;ATCA chassis Example&amp;lt;/i&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
CMM_IP=169.254.1.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''CMM_USERNAME''' and '''CMM_PASSWORD''' (Mandatory if deployed on an ATCA chassis): Specifies the username and password required for the OpenClovis SAFplus Platform Chassis Manager to connect to the target system's chassis management module. &amp;lt;i&amp;gt;e.g.&amp;lt;/i&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
CMM_USERNAME=root&lt;br /&gt;
CMM_PASSWORD=password&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''INSTALL_PREREQUISITES=YES|NO''' (Mandatory): Specifies whether the target images will include 3rd party runtime prerequisites or not.  Say '''YES''' if the target nodes do not meet the target host requirements specified in the Installation section of this document.  &amp;lt;i&amp;gt;e.g.&amp;lt;/i&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
INSTALL_PREREQUISITES=YES&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''INSTANTIATE_IMAGES=YES|NO''' (Mandatory): Specifies whether &amp;lt;code&amp;gt;make images&amp;lt;/code&amp;gt; will generate node-instance specific images instead of only generating node-type specific images.  This option is a development optimization for advanced users of OpenClovis SDK.  If unsure, say '''YES'''. &amp;lt;i&amp;gt;e.g.&amp;lt;/i&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
INSTANTIATE_IMAGES=YES&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''CREATE_TARBALLS=YES|NO''' (Mandatory): Specifies whether the node-instance specific images created will be packaged into tarballs for deployment onto the target system.  If unsure, say '''YES'''.  &amp;lt;i&amp;gt;e.g.&amp;lt;/i&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE_TARBALLS=YES&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''TIPC_NETID''' (Mandatory): Specifies a unique identifier used by TIPC to set up interprocess communication across the deployed OpenClovis SAFplus Platform cluster.  This is an unsigned 32-bit integer, and &amp;lt;i&amp;gt;must&amp;lt;/i&amp;gt; be unique for every model that is deployed.  &amp;lt;i&amp;gt;e.g.&amp;lt;/i&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
TIPC_NETID=1337&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Node Instance Details''': These specify the node-instance specific parameters required for deploying the model. For each node in the model there is a corresponding entry in the file:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''SLOT_&amp;lt;node instance name&amp;gt;''' (Mandatory): Specifies which slot the node is located in.  The first slot is slot 1 -- DO NOT USE SLOT NUMBER 0, it is invalid.  When deployed to an ATCA chassis, the physical slot in which the blade is actually installed will override this value.  When deployed to regular (non-ATCA) systems, this is a logical slot and must be unique for every node in the cluster. &amp;lt;i&amp;gt;e.g.&amp;lt;/i&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
SLOT_SCNodeI0=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''LINK_&amp;lt;node instance name&amp;gt;''' (Optional): Specifies the ethernet interface used by the node for OpenClovis SAFplus Platform communication with the rest of the cluster.  If unspecified, this defaults to &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;.  &amp;lt;i&amp;gt;e.g.&amp;lt;/i&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
LINK_SCNodeI0=eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''ARCH_&amp;lt;node instance name&amp;gt;''' (Optional if '''ARCH''' is specified): Specifies the target architecture of the node as a combination of machine architecture (MACH) and linux kernel version.  This is only required on a per-node basis if the target cluster has heterogeneous architectures across the nodes.  If it is a homogeneous cluster, a single '''ARCH''' parameter (described below) will suffice.  &amp;lt;i&amp;gt;e.g.&amp;lt;/i&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
ARCH_SCNodeI0=i386/linux-2.6.14&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''ARCH''' (Optional if node-specific '''ARCH_''' parameters are specified): Specifies the target architecture of all nodes in a homogeneous cluster as a combination of machine architecture (MACH) and linux kernel version.  Note: The build process automatically populates this variable based on the last target the model is built for.&amp;lt;i&amp;gt;e.g.&amp;lt;/i&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
ARCH=i386/linux-2.6.14&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
For example, if we have a three-node cluster with the following details:&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;600&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Example Node Instance Detail'''&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Node Name&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Slot Number&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Link Interface&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Architecture&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|SCNodeI0&lt;br /&gt;
|1&lt;br /&gt;
|eth0&lt;br /&gt;
|i386/linux-2.6.14&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|PayloadNodeI0&lt;br /&gt;
|3&lt;br /&gt;
|eth0&lt;br /&gt;
|i386/linux-2.6.14&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|PayloadNodeI1&lt;br /&gt;
|4&lt;br /&gt;
|eth1&lt;br /&gt;
|ppc/linux-2.6.9&lt;br /&gt;
|}&lt;br /&gt;
we would specify the node instance details as:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
SLOT_SCNodeI0=1&lt;br /&gt;
SLOT_PayloadNodeI0=3&lt;br /&gt;
SLOT_PayloadNodeI1=4&lt;br /&gt;
&lt;br /&gt;
LINK_SCNodeI0=eth0&lt;br /&gt;
LINK_PayloadNodeI0=eth0&lt;br /&gt;
LINK_PayloadNodeI1=eth1&lt;br /&gt;
&lt;br /&gt;
ARCH_SCNodeI0=i386/linux-2.6.14&lt;br /&gt;
ARCH_PayloadNodeI0=i386/linux-2.6.14&lt;br /&gt;
ARCH_PayloadNodeI1=ppc/linux-2.6.9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Appendix B: AMF Configuration Details==&lt;br /&gt;
This appendix gives brief descriptions of configuration details for instances of different entities (like Node, Service Group, Service Unit etc) that are present in the '''Clovis''' -&amp;gt; '''AMF Configuration''' dialog box.&lt;br /&gt;
&lt;br /&gt;
===Node Instance===&lt;br /&gt;
This screen displays the node instance that was created by the Node Instance Wizard. This node instance was created because the node type '''SCNode''' was selected on the wizard screen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Node Instance Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_NodeInstanceDetails.png|frame|center| '''Node Instance Details''' ]]&lt;br /&gt;
&lt;br /&gt;
The information on this screen is described below.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Node Instance Name''': This field holds the name of the node instance. This name must be unique. The name that was generated combines the node type (SCNode), the letter I (for Instance), and the number 0 (since this is the first instance of this type).&lt;br /&gt;
&amp;lt;li&amp;gt;'''Node Type''': This field holds the node type that was selected on the wizard screen.&lt;br /&gt;
&amp;lt;li&amp;gt;'''MOID''': This is the unique identifier for the node instance. It was generated by the wizard. The format of this ID is a string representing the one and only instance of the chassis (\Chassis:0) defined in the Resource Editor followed by a string representing the first and only instance of the blade type (\SysBlade:0) that was selected in the Node Instance Wizard.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]'''MOID''' is an acronym for Managed Object Identifier. It must be unique and is used to identify which hardware chassis and blade type this instance will run on.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Service Unit Instance===&lt;br /&gt;
This screen displays the service unit instance that was created by the Service Group Instance Wizard. This service unit instance was created because the service unit type is associated with both the selected node type (SCNode) and the selected service group type (csa101SG) in our model.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='SU Instance Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_SUInstanceDetails.png|frame|center| '''SU Instance Details''' ]]&lt;br /&gt;
&lt;br /&gt;
The information on this screen is described below.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''SU Instance Name''': This field holds the name of the service unit instance. This name must be unique. The name that was generated combines the service unit type (csa101SU), the letter I (for Instance), and the number 0 (since this is the first instance of this type).&lt;br /&gt;
&amp;lt;li&amp;gt;'''Service Unit Type''': This field holds the type of the service unit instance.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Component Instance===&lt;br /&gt;
This screen displays the component instance that was created by the Service Group Instance Wizard. This component instance was created because the component type is associated with the created parent service unit type (csa101SU) in our model.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Component Instance Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_ComponentInstanceDetails.png|frame|center| '''Component Instance Details''' ]]&lt;br /&gt;
&lt;br /&gt;
The information on this screen is described below.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Component Instance Name''': This field holds the name of the component instance. This name must be unique. The name that was generated combines the component type (csa101), the letter I (for Instance), and the number 0 (since this is the first instance of this type).&lt;br /&gt;
&amp;lt;li&amp;gt;'''Component Type''': This field holds the type of the component instance.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Service Group Instance===&lt;br /&gt;
This screen displays the service group instance that was created by the Service Group Instance Wizard. This service group instance was created because the service group type '''csa101SG''' was selected on the wizard screen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Service Group Instance Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_SGInstanceDetails.png|frame|center| '''Service Group Instance Details''' ]]&lt;br /&gt;
&lt;br /&gt;
The information on this screen is described below.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''SG Instance Name''': This field holds the name of the service group instance. This name must be unique. The name that was generated combines the service group type (csa101SG), the letter I (for Instance), and the number 0 (since this is the first instance of this type).&lt;br /&gt;
&amp;lt;li&amp;gt;'''ServiceGroup Type''': This field holds the type of the service group instance.&lt;br /&gt;
&amp;lt;li&amp;gt;'''Associated Service Units''': This button is used to associate service unit instances with this service group instance. Creating this association indicates that the selected service unit(s) will run within this service group instance.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clicking the '''Associated Service Units''' Edit... button will display the following dialog.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Associated Service Units Dialog'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_SG_SI_Association.png|frame|center| '''Associated Service Units Dialog''' ]]&lt;br /&gt;
&lt;br /&gt;
This dialog lists the service unit instances that can be associated with this service group instance. The list contains only one item, the service unit instance that was created by the wizard. This item is checked indicating that the wizard automatically chose this service unit instance to run within the service group instance.&lt;br /&gt;
&lt;br /&gt;
===Service Instance Instance===&lt;br /&gt;
This screen displays the service instance that was created by the Service Group Instance Wizard. This service instance was created because the service instance type is associated with the parent service group type (csa101SG) in our model.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Service Instance Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_SIInstanceDetails.png|frame|center| '''Service Instance Details''' ]]&lt;br /&gt;
&lt;br /&gt;
The information on this screen is described below.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Service Instance Name''': This field holds the name of the service instance. This name must be unique. The name that was generated combines the service instance type (csa101SI), the letter I (for Instance), and the number 0 (since this is the first instance of this type).&lt;br /&gt;
&amp;lt;li&amp;gt;'''ServiceInstance Type''': This field holds the type of the service instance.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Component Service Instance Instance===&lt;br /&gt;
This screen displays the component service instance that was created by the Service Group Instance Wizard. This component service instance was created because the component service instance is associated with the parent service instance type (csa101SI) in our model.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Component Service Instance Details'&amp;gt;&amp;lt;/span&amp;gt;[[File:Tutorial_CSIInstanceDetails.png|frame|center| '''Component Service Instance Details''' ]]&lt;br /&gt;
&lt;br /&gt;
The information on this screen is described below.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Component Service Instance Name''': This field holds the name of the component service instance. This name must be unique. The name that was generated combines the component service instance type (csa101CSI), the letter I (for Instance), and the number 0 (since this is the first instance of this type).&lt;br /&gt;
&amp;lt;li&amp;gt;'''ComponentServiceInstance Type''': This field holds the type of the component service instance.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest</id>
		<title>Doc:latest</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest"/>
				<updated>2011-10-24T20:16:10Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: Redirected page to Doc:Latest/SAFplus Availability/Scalability Platform Documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Doc:Latest/SAFplus Availability/Scalability Platform Documentation]]&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/installguide</id>
		<title>Doc:latest/installguide</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/installguide"/>
				<updated>2011-10-24T20:14:04Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* OpenClovis SDK Packages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Preface'''==&lt;br /&gt;
&lt;br /&gt;
''SAFplus Platform Installation Guide''  guide provides the system requirements, installation procedure for SAFplus Platform software development kit (SDK) and the Evaluation System.&lt;br /&gt;
&lt;br /&gt;
===Audience===&lt;br /&gt;
&lt;br /&gt;
''SAFplus Platform Installation Guide''  is designed for system integrators, designers, and system architects. To use the product, you must be aware of the fundamentals of design, development, operation, management and configuration of telecommunication and networking systems. You must also be familiar with C programming, UML notations, and have the basic knowledge of Linux.&lt;br /&gt;
&lt;br /&gt;
===Documentation Conventions===&lt;br /&gt;
&lt;br /&gt;
This guide uses different fonts and symbols to differentiate between document elements and types of information. These conventions are summarized in the following table.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Notation &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Description&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|style=&amp;quot;color:black&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;Code&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
This font denotes the C code provided in various examples.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|Cross reference&lt;br /&gt;
|&lt;br /&gt;
This font denotes a hyperlink. You can click on the hyperlink text to access the reference location, which can be either a section within the User Guide or a URL link.A cross reference refers to a section name and accesses the first page of that section.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''Bold Text''' &lt;br /&gt;
|&lt;br /&gt;
Menu items and button names.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''''Italic Text''''' &lt;br /&gt;
|&lt;br /&gt;
Variables for which you enter values.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]This indicates the presence of notes or annotations, related to the context of the document.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Caution.png]]This indicates that certain precautionary measures must be taken before performing a particular task.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Info.png]]This indicates that additional information is provided to you.&lt;br /&gt;
&lt;br /&gt;
===Related Documents===&lt;br /&gt;
&lt;br /&gt;
For additional information about OpenClovis products, refer to the following guides:&lt;br /&gt;
* '''[[Doc:latest/relnotes | SAFplus Platform Release Notes]]''' provides information about the software and the hardware required to install OpenClovis Application Service Platform (SAFplus Platform) and Integrated Development Environment (IDE). It summarizes the additional features and enhancements of the product since the previous release. It also summarizes the issues and limitations of the product and provides workarounds wherever applicable.&lt;br /&gt;
* '''[[Doc:latest/safcompliance | SAFplus Platform SA-Forum Compliance]]''' describes the level of compliance of OpenClovis SAFplus Platform and its Application Programming Interface (API) with the relevant Service Availability Forum Specifications.&lt;br /&gt;
* '''[[Doc:latest/installguide | SAFplus Platform Installation Guide]]''' provides the system requirements, installation procedure for OpenClovis SAFplus Platform, IDE, and the Evaluation System.&lt;br /&gt;
* '''[[Doc:latest/tutorial | SAFplus Platform Sample Application Tutorial]]''' explains the steps to create and build a sample model using OpenClovis IDE and OpenClovis SAFplus Platform. It also provides troubleshooting information for this process. This provides the logical first step in understanding the SAFplus Platform offering.&lt;br /&gt;
* '''[[Doc:latest/evalguide | SAFplus Platform Evaluation System User Guide]]''' provides all the required information to configure and run the sample models packaged within the Evaluation System. This document also provides good understanding of OpenClovis SAFplus Platform's functionality. This is the natural follow on to the ''OpenClovis Sample Application Tutorial'' as it builds on the example created in that document. &lt;br /&gt;
* '''[[Doc:latest/sdkguide | SAFplus Platform SDK User Guide]]''' provides information about SAFplus Availability/Scalability Platform architecture, various SAFplus Platform components, and their interactions. This guide helps you to configure the OpenClovis SAFplus Platform components, compile, and execute the SAFplus Platform code to build your custom application.&lt;br /&gt;
* '''[[Doc:latest/ideguide | SAFplus Platform IDE User Guide]]''' describes the usage of Integrated Development Environment (IDE), a graphical development environment that complements the SAFplus Platform. This guide helps you to understand how to use the various features of the IDE to build the application.&lt;br /&gt;
* '''[[Doc:latest/logtoolguide | SAFplus Platform Log Tool User Guide]]''' provides information about the usage of OpenClovis Log Tool. OpenClovis Log Tool is an interactive utility that allows you to view binary log files in a readable format and hence monitor system errors, warnings, and other log information. Log Tool allows you to format the &amp;lt;code&amp;gt;.log&amp;lt;/code&amp;gt; files and filter them to view the required entries.&lt;br /&gt;
* '''SAFplus Platform API Reference Guide [http://www.openclovis.org/doc/latest/apirefs/index.html]''' is provided for each component. It describes the Application Programming Interface (API), Service Model, and Management Information Model of the various OpenClovis Application Service Platform (SAFplus Platform) services. It helps the developer to understand the capabilities of the SAFplus Platform services and the APIs provided by these services.&lt;br /&gt;
* '''[[SAFplus Platform Console Reference Guide]]''' provides details about managing applications built on SAFplus Platform using the SAFplus Platform runtime debug console commands. SAFplus Platform Console commands can be used to manage, monitor, and test your application.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Online Technical Support===&lt;br /&gt;
&lt;br /&gt;
OpenClovis customers and partners can register on our Web site and receive personalized services and information. If you need any support or assistance while working on OpenClovis products, you can access the following: URL: http://www.openclovis.com. Send your queries to: support@openclovis.com. Open source community support is available at: http://www.openclovis.org/forum.&lt;br /&gt;
&lt;br /&gt;
===Documentation Feedback===&lt;br /&gt;
&lt;br /&gt;
We are interested in hearing from our customers on the documentation provided with the product. Let us know your comments and suggestions on improving the documentation at OpenClovis Inc. Send your comments to: support@openclovis.com. Or even better, edit (or comment in) the page on our documentation wiki located at [http://help.openclovis.com http://help.openclovis.com].&lt;br /&gt;
&lt;br /&gt;
=='''Prerequisites to Install'''==&lt;br /&gt;
&lt;br /&gt;
This chapter provides an overview of the OpenClovis SDK solution comprising OpenClovis SAFplus Platform and IDE. It also provides the hardware and software requirements for running OpenClovis SDK and the Evaluation System.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
OpenClovis provides a modular and cost-effective software platform for creating next-generation communication systems. OpenClovis SDK is designed for solution integrators, network equipment manufacturers (NEPs), and telecommunication equipment manufacturers (TEMs) to facilitate the creation of a broad range of telecommunication devices, including routers, switches, media gateways and wireless infrastructure nodes.&lt;br /&gt;
&lt;br /&gt;
OpenClovis fits seamlessly with various distributions of Linux and hardware platforms such as AdvancedTCA, BladeCenter T, and other off-the-shelf proprietary hardware.&lt;br /&gt;
&lt;br /&gt;
The OpenClovis solution comprises OpenClovis SAFplus Platform and OpenClovis IDE.&lt;br /&gt;
&lt;br /&gt;
'''OpenClovis Application Service Platform (SAFplus Platform)'''  is middleware that offers a comprehensive set of modular, portable, reusable software components designed to provide system management and high availability functionality. OpenClovis SAFplus Platform is the run-time part of the OpenClovis offering. It provides run-time services for your value add applications, offering a layered, hardware-platform independent application environment.&lt;br /&gt;
&lt;br /&gt;
'''OpenClovis Integrated Development Environment (IDE)'''  is designed to simplify and accelerate the development of application service platforms for the telecommunication marketplace. Coupled with the OpenClovis SAFplus Platform, this intuitive software solution streamlines the process of specifying the information model, high availability (HA) aspects, and the communication infrastructure of a system. OpenClovis IDE stores all information describing a project in well defined XML files that can be modified by the user. Modeling of system resources and relationships are specified using a graphical UML editor.&lt;br /&gt;
&lt;br /&gt;
'''OpenClovis Evaluation System'''  is a evaluation sample system based on SAFplus Platform that provides the user with a better understanding of the scope of the product, usage patterns, its quality and usability.&lt;br /&gt;
&lt;br /&gt;
===Development Host Requirements===&lt;br /&gt;
&lt;br /&gt;
This section provides the hardware and software requirements for installing OpenClovis SAFplus Platform and IDE. It is not necessary to install OpenClovis IDE on the target host, as all the modeling activities are performed on the development host. The system requirements for the development host is summarized in Table [[#Table_SysReq_DevHost|System Requirements for a Development Host]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Table_SysReq_DevHost&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;600&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''System Requirements for a Development Host'''&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;150&amp;quot;| Requirement Type&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Requirements&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Hardware&lt;br /&gt;
|&lt;br /&gt;
* Intel Pentium II (or higher)&lt;br /&gt;
* Hard Disk - 10 GB (minimum suggested)&lt;br /&gt;
* RAM - 512 MB (minimum suggested)&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Linux Distributions&lt;br /&gt;
|&lt;br /&gt;
* Red Hat Enterprise Linux 4&lt;br /&gt;
* Ubuntu Linux&lt;br /&gt;
* CentOS 4.0 &lt;br /&gt;
* Gentoo Linux&lt;br /&gt;
* Fedora Linux&lt;br /&gt;
* Yellow Dog Linux 4&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;br&amp;gt;Third Party Packages &lt;br /&gt;
|&lt;br /&gt;
* glib-2.0 - 2.6.0&lt;br /&gt;
* glibc 2.3.2&lt;br /&gt;
* gcc 3.2.3&lt;br /&gt;
* beecrypt&lt;br /&gt;
* gdbm 1.8.0&lt;br /&gt;
* net-snmp 5.4&lt;br /&gt;
* openhpi 2.8.1&lt;br /&gt;
* openhpi-subagent 2.3.4&lt;br /&gt;
* Gtk&lt;br /&gt;
* Eclipse SDK 3.2.2&lt;br /&gt;
* EMF SDK 2.2.2&lt;br /&gt;
* GEF SDK 3.2.2&lt;br /&gt;
* JRE 1.5.0_03&lt;br /&gt;
* Python 2.4.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]The OpenClovis SDK installation process verifies the Third Party Packages, and installs any missing packages automatically, as a part of the SDK Installation.&lt;br /&gt;
&lt;br /&gt;
===Target Host Requirements===&lt;br /&gt;
&lt;br /&gt;
This section provides the hardware and software requirements for installing OpenClovis SAFplus Platform on the target host. These requirements are summarized in Table [[#Table_SysReq_TargetPlatform|System Requirements for the Target Platform]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Table_SysReq_TargetPlatform&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;600&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''System Requirements for the Target Platform''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;150&amp;quot;| Requirement Type&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Requirements&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Hardware&lt;br /&gt;
|&lt;br /&gt;
'''ATCA Chassis''' &lt;br /&gt;
* CPU Types: Intel Xeon, AMD64, Itanium2&lt;br /&gt;
* Blades: Intel MPCBL0001, Intel MPCBL0030, Intel MPCBL0040, Huawei Tel8000&lt;br /&gt;
* Shelf Management: Pigeon Point ShMM500, RadiSys&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;br&amp;gt;Linux Distributions&lt;br /&gt;
|&lt;br /&gt;
'''ATCA Chassis''' &lt;br /&gt;
* Wind-River PNE LE 1.2 (2.6.10 kernel)&lt;br /&gt;
* Wind-River PNE LE 1.3 (2.6.14 kernel)&lt;br /&gt;
* Wind-River PNE LE 1.4 (2.6.14 kernel)&lt;br /&gt;
* Red Hat Enterprise Linux 4.0, 5.0, etc. or Centos equivalent&lt;br /&gt;
* Ubuntu 9+ or similar Debian based Linux&lt;br /&gt;
* MontaVista Carrier Grade Linux 5.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]These are the Linux distributions on which SAFplus Platform is tested and certified.&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform SDK Packages===&lt;br /&gt;
&lt;br /&gt;
The SAFplus Platform SDK Installation packages listed in Table [[#Table_Required_Installation_Packages | Required Installation Packages]]. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Table_Required_Installation_Packages&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot;| '''Required Installation Packages'''&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| File Names&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Description&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
openclovis-sdk-3.0.tar.gz&lt;br /&gt;
|&lt;br /&gt;
This file is the core installation tarball, to install SAFplus Platform, IDE, and the evaluation system.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
openclovis-sdk-3.0.md5&lt;br /&gt;
|&lt;br /&gt;
This file is used to perform the data integrity check of the downloaded SDK tar file.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
3rdparty-base-1.8.tar&lt;br /&gt;
|&lt;br /&gt;
This file contains the third party packages for SAFplus Platform SDK. &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
3rdparty-base-1.8.md5&lt;br /&gt;
|&lt;br /&gt;
This file is used to perform the data integrity check of the downloaded third party tar file.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
crossbuild-i586-wrl-pnele1.3-2.6.14-1.6.tar.gz&lt;br /&gt;
|&lt;br /&gt;
This file is used to crossbuild SAFplus Platform for an i586 target with the PNELE 1.3 kernel.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
crossbuild-i586-wrl-pnele1.3-2.6.14-1.6.md5&lt;br /&gt;
|&lt;br /&gt;
This file is used to perform the data integrity check of the downloaded crossbuild tar file.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
crossbuild-i586-wrl-pnele1.4-2.6.14_mpcbl0001-1.0.tar.gz&lt;br /&gt;
|&lt;br /&gt;
This file is used to crossbuild SAFplus Platform for an i586 target with the PNELE 1.4 kernel.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
crossbuild-i586-wrl-pnele1.4-2.6.14_mpcbl0001-1.0.md5&lt;br /&gt;
|&lt;br /&gt;
This file is used to perform the data integrity check of the downloaded crossbuild tar file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]OpenClovis SDK is supplemented with a set of crossbuild packages for different CPU and Operating System combinations. The md5 and crossbuild packages are optional and maybe downloaded depending on your requirements.&lt;br /&gt;
&lt;br /&gt;
=='''OpenClovis SDK Installation'''==&lt;br /&gt;
&lt;br /&gt;
This chapter provides a step-by-step approach for installing OpenClovis SDK. Before proceeding with installation, ensure that all the required hardware and software are available on your system. You need not install the third-party packages, as the installation package installs the third-party packages along with OpenClovis SDK. &lt;br /&gt;
&lt;br /&gt;
===Installation Procedure - Get Started===&lt;br /&gt;
&lt;br /&gt;
To install Openclovis SDK on your local machine, go to the directory where you have downloaded the required installation files.&lt;br /&gt;
&lt;br /&gt;
Before you install, &lt;br /&gt;
* Ensure you have write permissions for the current directory (directory where the installation files are downloaded) and the target directory (directory where you will install the application.) &lt;br /&gt;
* At least 500MB of free disk space. &lt;br /&gt;
* You can install the SDK either as a root user or a non root user. Installing as root user is not required for a single user host. When using the SDK for larger projects it is advisable to install as root, since multiple users can share the same SDK.  Irrespective of the mode of installation, the SDK can be used to model and build code using non-root privileges. &lt;br /&gt;
&lt;br /&gt;
To extract the SDK package, execute the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# tar -xzmf openclovis-sdk-3.0.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] The &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; ensures that the timestamps on the files within the SDK package are consistent with the host system.  This is important, since discrepancies can adversely affect the build procedure.&lt;br /&gt;
&lt;br /&gt;
To ensure that your system has all the prerequisite software packages required by the installation process, the SDK package contains preinstallation scripts for a variety of Linux distributions.  Prerequisite packages are packages that are supplied by your distribution but may not have been installed on your system.  Essentially this is the GNU compiler toolchain and programming utilities such as pkg-config, flex, and bison.  These scripts enable the user to acquire and install the prerequisite software packages automatically.  Some distributions provide these packages on your installation CDROMs, so you may be asked to insert them.  Other distributions provide these packages via internet-based software repositories (notably Ubuntu).  If your system does not have internet access, please see ''Appendix A: Installing the Prerequisites without Internet Access''.  The following table covers the distributions supported by the preinstall scripts:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;600&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Distributions supported by preinstall scripts'''&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;150&amp;quot;| Preinstall script&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Distributions supported&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-centOS4.sh &lt;br /&gt;
|CentOS 4&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-debian.sh&lt;br /&gt;
|Debian Linux&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-fedora-core-6.sh&lt;br /&gt;
|Fedora Core 6&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-suse.sh&lt;br /&gt;
|SuSE Linux&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-ubuntu.sh&lt;br /&gt;
|Ubuntu Linux&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-rhel4.sh&lt;br /&gt;
|Red Hat Enterprise Linux 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] '''The preinstall scripts need to be run as root.'''&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] The preinstall script installs SQLite as database engine by default. If you would like to select GNU Database Manager or Berkeley Database, please visit section ''Database Abstraction Layer (DBAL)'' in ''OpenClovis SDK User Guide'' for more information. &lt;br /&gt;
&lt;br /&gt;
Please run the preinstall script corresponding with your Linux distribution by executing the following commands:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd openclovis-sdk-3.0&lt;br /&gt;
# ./preinstall-&amp;lt;os&amp;gt;.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] '''An installation of Red Hat EL4 with the default package set contains all the packages required for installing OpenClovis SDK.  In particular, the 'Development Tools' package subset must be installed to cover these requirements.'''&lt;br /&gt;
&lt;br /&gt;
Once the preinstall script completes, start the SDK installation by executing the following command:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# ./install.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After you execute the install command, the Welcome screen is displayed as illustrated in Figure [[#OpenClovis Installer Welcome Screen | OpenClovis Installer Welcome Screen]]. When prompted by the installer, the user can enter the name of the directory where the SDK should be installed or accept the default provided:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='OpenClovis Installer Welcome Screen'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_WelcomeScreen_wPreInstall.png|frame|center| '''OpenClovis Installer Welcome Screen''' ]]&lt;br /&gt;
&lt;br /&gt;
The default directory for installation is &amp;lt;code&amp;gt;/opt/clovis&amp;lt;/code&amp;gt; for root installation and  &amp;lt;code&amp;gt;$HOME/clovis&amp;lt;/code&amp;gt; for non root users as illustrated in Figure [[#OpenClovis Installer Welcome Screen | OpenClovis Installer Welcome Screen]]. The installation progress is illustrated in Figure [[#Installation Directory and Progress | Installation Directory and Progress]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Installation Directory and Progress'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_InstallationDirectories.png|frame|center| '''Installation Directory and Progress''' ]]&lt;br /&gt;
&lt;br /&gt;
===Third Party Packages===&lt;br /&gt;
&lt;br /&gt;
The required third party packages are installed in the following steps:&lt;br /&gt;
* Scans the system for existing third party packages. &lt;br /&gt;
* Displays the list of packages that are available, along with their version numbers. &lt;br /&gt;
* Displays the list of packages that are not available or that have a version mismatch. &lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] This display may vary at the time of your installation, depending on the packages that are available on your system. Figure [[#Third Party Packages - Availability Status | Third Party Packages - Availability Status]]  demonstrates a typical display.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Third Party Packages - Availability Status'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_ThirdPartyPackages.png|frame|center| '''Third Party Packages - Availability Status''']]&lt;br /&gt;
&lt;br /&gt;
To proceed with the installation, enter &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; for the message, &amp;lt;code&amp;gt;Proceed with the installation &amp;lt;y/n&amp;gt; [y]: &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Figure [[#Third Party Packages Installation Progress | Third Party Packages Installation Progress]]  illustrates the approximate installation time and the installation status for each package.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Third Party Packages Installation Progress'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_3rdPartyPackageInstallationProgress.png|frame|center| '''Third Party Packages Installation Progress''']]&lt;br /&gt;
&lt;br /&gt;
After installation of third party packages, the installer displays the message,  &amp;lt;code&amp;gt;All SDK dependencies are now in place.&amp;lt;/code&amp;gt; as illustrated in Figure [[#OpenClovis Packages Installation - Status | OpenClovis Packages Installation - Status]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='OpenClovis Packages Installation - Status'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_InstallationStatus.png|frame|center| '''OpenClovis Packages Installation - Status''']]&lt;br /&gt;
&lt;br /&gt;
After completion of the third party packages, the installer prompts the user for the installation of the crossbuild toolchains.&lt;br /&gt;
&lt;br /&gt;
===Crossbuild Toolchains===&lt;br /&gt;
&lt;br /&gt;
Crossbuild toolchains are required to install SAFplus Platform on a platform that is different from the development host platform. For instance if the development host is x86 Intel based and the target platform is PowerPC based the user will need a crossbuild toolchain for that particular PowerPC based architecture.&lt;br /&gt;
&lt;br /&gt;
For crossbuild toolchains, you will require the following:&lt;br /&gt;
* A cross compiler and related binary tools for the target CPU architecture.&lt;br /&gt;
* All the SAFplus Platform prerequisites that are pre-compiled for the target platform, so that all library files are available.&lt;br /&gt;
&lt;br /&gt;
OpenClovis SDK comes with a standard set of pre-built crossbuild toolchain packages. The names of these packages help you to identify the CPU and OS combinations for which they have been built. &lt;br /&gt;
&lt;br /&gt;
The SDK installer (&amp;lt;code&amp;gt;install.sh&amp;lt;/code&amp;gt;) assists you in installing one or more of these toolchains as illustrated in Figure [[#Crossbuild Toolchains | Crossbuild Toolchains]]. Enter the crossbuild toolchain that you require to be installed from the available list. After the toolchains are installed, you can select any of these cross-tools for your project build.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Crossbuild Toolchains'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_Crossbuildtoolchains.png|frame|center| '''Crossbuild Toolchains''' ]]&lt;br /&gt;
&lt;br /&gt;
If you would like to install more crossbuild toolchains at a later time, please download them and re-run &amp;lt;code&amp;gt;install.sh&amp;lt;/code&amp;gt;.  You may skip the remaining portions of the install process past the installation of crossbuild toolchains when you are prompted to do so.&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform, IDE and Utilities===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;After installation of the toolchain, the system proceeds with the installation of SAFplus Platform, IDE and Utilities as illustrated in Figure [[#Installing SAFplus Platform, IDE and Utilities | Installing SAFplus Platform, IDE and Utilities]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Installing SAFplus Platform, IDE, and Utilities'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_InstallingASP_IDE_Utilities.png|frame|center| '''Installing SAFplus Platform, IDE and Utilities''' ]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;The installer creates the required binaries and prompts you to create optional symbolic links, so that the SDK commands can be accessed on your system in a well known location, as illustrated in Figure [[#Creating Symbolic Links | Creating Symbolic Links]]. The main SDK commands of interest to the user are:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;cl-create-project-area&amp;lt;/code&amp;gt;: Command to create a new OpenClovis SDK project area. A project area is the workspace for the OpenClovis SDK. It contains the IDE models and the generated source code. The user makes modifications to the generated source within this workspace and builds runtime images here as well.  A typical project area has the following directory structure:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;project_area&amp;gt;&lt;br /&gt;
   |ide_workspace&lt;br /&gt;
   |+&amp;lt;model&amp;gt;&lt;br /&gt;
   |   |+build&lt;br /&gt;
   |   |   |+local&lt;br /&gt;
   |   |   |   |-Makefile&lt;br /&gt;
   |   |   |+&amp;lt;crossbuild&amp;gt;&lt;br /&gt;
   |   |   |   |-Makefile&lt;br /&gt;
   |   |+src&lt;br /&gt;
   |   |   |+app&lt;br /&gt;
   |   |   |+config&lt;br /&gt;
   |   |   |+doc&lt;br /&gt;
   |   |   |-target.conf&lt;br /&gt;
   |   |+target &lt;br /&gt;
   |   |-Makefile&lt;br /&gt;
   |-Makefile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;cl-ide&amp;lt;/code&amp;gt;: Command to start the OpenClovis IDE. Please note that you should have already created a project area using &amp;lt;code&amp;gt;cl-create-project-area&amp;lt;/code&amp;gt; before using &amp;lt;code&amp;gt;cl-ide&amp;lt;/code&amp;gt; to work within this project area.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Creating Symbolic Links'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_CreateSymbolicLinks.png|frame|center| '''Creating Symbolic Links''' ]]&lt;br /&gt;
&lt;br /&gt;
Enter &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt; to create the symbolic links. The installer then prompts the user for a location to place the links with a default option &amp;lt;code&amp;gt;/usr/local/bin&amp;lt;/code&amp;gt; if you are installing as root, or &amp;lt;code&amp;gt;$HOME/bin&amp;lt;/code&amp;gt; for non root user installation. &lt;br /&gt;
&lt;br /&gt;
If you choose not to create symbolic links and enter &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;, then you can either:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add the installation directory to the shell path.  For example with a bash shell:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=$PATH:&amp;lt;install_dir&amp;gt;/sdk-3.0/bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;or access the SDK commands from the &amp;lt;code&amp;gt;&amp;lt;install_dir&amp;gt;/sdk-3.0/bin/&amp;lt;/code&amp;gt; directory. For example to create a new project area at &amp;lt;code&amp;gt;&amp;lt;project-area_dir&amp;gt;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;install_dir&amp;gt;/sdk-3.0/bin/cl-create-project-area &amp;lt;project-area_dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After creating symbolic links, the installation of OpenClovis SDK is complete. All the required packages and crossbuild toolchains are installed and the directory where you have downloaded the installation packages can be discarded.&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]If your installation is not successful, or if you encounter any problems during the installation, refer to the Chapter [[#Troubleshooting | Troubleshooting]].&lt;br /&gt;
&lt;br /&gt;
===Next Steps===&lt;br /&gt;
&lt;br /&gt;
After completing the Installation, the OpenClovis SDK Documentation set listed in the [[#Related Documents| Related Documents]] section is available in the  &amp;lt;code&amp;gt;doc&amp;lt;/code&amp;gt;  folder located at  &amp;lt;code&amp;gt;&amp;lt;install_dir&amp;gt;/sdk-3.0&amp;lt;/code&amp;gt; directory. &lt;br /&gt;
&lt;br /&gt;
We recommend the following steps to get familiar with our product:&lt;br /&gt;
&lt;br /&gt;
*'''Read and follow the OpenClovis Sample Application Tutorial''' - The ''Sample Application Tutorial'' will step you through the process of creating a high available system. It takes you from model conception all the way through deployment and running of the sytem. After going through this guide you will understand the basics of the OpenClovis offering.&lt;br /&gt;
&lt;br /&gt;
*'''Read and follow the OpenClovis Evaluation System User Guide''' - ''Evaluation System User Guide'' will introduce you to more advanced modelling topics. These topics are introduced incrementally through a series of targeted tutorials. After completing this guide you will be ready to start building your own system.&lt;br /&gt;
&lt;br /&gt;
=='''Troubleshooting'''==&lt;br /&gt;
&lt;br /&gt;
This chapter describes some of the probable errors that you may encounter during the installation. This chapter also provides the solution to these errors.The errors that you may encounter are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''': Installation Failure, during third party installation.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''': You can manually fix this error by getting more information from the corresponding log file under the log directory. You can also send the  &amp;lt;code&amp;gt;log.tar.gz&amp;lt;/code&amp;gt; to support@openclovis.com for more help.&lt;br /&gt;
The installation can be resumed after the errors are fixed. The installer will detect any new updates and proceed with the missing prerequisites.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''':  &amp;lt;code&amp;gt;gcc (pkg-config, perl, md5sum) not found in your PATH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''': Ensure that the directory where the  &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; resides is in the &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; variable.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''':  Not enough space on the target installation directory.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''' : Change the target installation directory to the directory with at least 500MB free disk space.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''':  &amp;lt;code&amp;gt;&amp;lt;WORKING_DIRECTORY&amp;gt;&amp;lt;/code&amp;gt; is read-only.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''': You need to have write permission for the current working directory to extract the contents of the archive, configure, and build. Ensure that you turn ON write permission using  &amp;lt;code&amp;gt;chmod +w ...&amp;lt;/code&amp;gt;  command.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''': md5 checksums are used to check if the packages are correctly downloaded. If they are not downloaded correctly, the system displays the message:  &amp;lt;code&amp;gt;It is not safe to install these packages, please download them again.&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''':The installer checks the integrity of the downloaded packages. If the download is either incomplete or corrupt, download the packages again.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''':  SAFplus Platform fails to start, reporting the underlying SQLite database version used is not-supported.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''': Use SQLite version 3.3.13 or newer. The source code can be downloaded from http://www.sqlite.org/download.html. The user can install the latest version of SQLite if the specified version is &lt;br /&gt;
not present in this repository.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Appendix A: Installing the Prerequisites without Internet Access'''==&lt;br /&gt;
&lt;br /&gt;
Some customers do not want their evaluation system to have internet access for security purposes.  If this is your situation, please consider temporarily enabling internet access while running the &amp;quot;preinstall-&amp;lt;os&amp;gt;&amp;quot; script.  At this point the evaluation system should only have the base OS installed, so there is no proprietary data on the system.  Also note that the &amp;quot;preinstall&amp;quot; scripts are only about a page long so you can easily review them for security purposes.&lt;br /&gt;
&lt;br /&gt;
However, if you still do not want to enable internet access one strategy that can be used is to go to a system with internet access (it must use the same Linux distribution and the same version), download them there, use a USB flash drive to move them to the unconnected system, and then install them on that system.  If this approach is unacceptable (it does still use the internet), then perhaps the Linux distribution you chose is not appropriate -- instead use one that contains all packages on the installation CDROMs.&lt;br /&gt;
&lt;br /&gt;
===Example Using Ubuntu 7.04===&lt;br /&gt;
&lt;br /&gt;
Packages can be downloaded but not installed on Ubuntu by using the &amp;quot;-d&amp;quot; flag to the &amp;quot;apt-get&amp;quot; package manager.  The files are downloaded to &amp;quot;/var/cache/apt/archives&amp;quot;.  It is recommended to remove (or move) all files in this directory first (it is just a cache, and so it will contain any packages that you have previously installed), so that the directory contains just the packages needed for the OpenClovis SDK:&lt;br /&gt;
&lt;br /&gt;
 rm /var/cache/apt/archives/*&lt;br /&gt;
&lt;br /&gt;
Next edit the preinstall-ubuntu.sh script, search for all instances of &amp;quot;apt-get&amp;quot; and add the flags &amp;quot;-d --reinstall&amp;quot; just after the &amp;quot;apt-get&amp;quot; program.  For example:&lt;br /&gt;
&lt;br /&gt;
 apt-get -d --reinstall -y --force-yes install build-essential&lt;br /&gt;
&lt;br /&gt;
Next run this modified script on your internet-connected machine.  This script will download 6MB of files (this list will vary by Linux distribution or version):&lt;br /&gt;
&lt;br /&gt;
 bison_1%3a2.3.dfsg-4build1_i386.deb                           &lt;br /&gt;
 libgdbm-dev_1.8.3-3_i386.deb&lt;br /&gt;
 build-essential_11.3_i386.deb                                 &lt;br /&gt;
 libltdl3-dev_1.5.22-4_i386.deb&lt;br /&gt;
 e2fslibs-dev_1.39+1.40- WIP-2006.11.14+dfsg-2ubuntu1_i386.deb  &lt;br /&gt;
 libperl-dev_5.8.8-7build1_i386.deb&lt;br /&gt;
 e2fsprogs_1.39+1.40-WIP-2006.11.14+dfsg-2ubuntu1_i386.deb     &lt;br /&gt;
 linux-headers-2.6.20-16-generic_2.6.20-16.32_i386.deb&lt;br /&gt;
 flex_2.5.33-10build1_i386.deb                                 &lt;br /&gt;
 gawk_1%3a3.1.5.dfsg-4build1_i386.deb                          &lt;br /&gt;
 gettext_0.16.1-1ubuntu2_i386.deb                              &lt;br /&gt;
 pkg-config_0.21-1build1_i386.deb&lt;br /&gt;
 libdb4.5-dev_4.5.20-1ubuntu1_i386.deb                         &lt;br /&gt;
 uuid-dev_1.2- 1.39+1.40-WIP-2006.11.14+dfsg-2ubuntu1_i386.deb&lt;br /&gt;
&lt;br /&gt;
Now copy these files to a new directory in your unconnected machine:&lt;br /&gt;
&lt;br /&gt;
On the connected machine:&lt;br /&gt;
 root@desktop:/# cp /var/cache/apt/archives/*.deb &amp;lt;your flash media&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On the unconnected machine:&lt;br /&gt;
 root@desktop:/# mkdir /root/pkgs&lt;br /&gt;
 root@desktop:/# cp &amp;lt;your flash media&amp;gt; /root/pkgs/&lt;br /&gt;
&lt;br /&gt;
Finally, install them using the standard &amp;quot;dpkg&amp;quot; package installer:&lt;br /&gt;
&lt;br /&gt;
 root@desktop :/# cd /root/pkgs&lt;br /&gt;
 root@desktop:~/pkgs# dpkg -i *.deb&lt;br /&gt;
 (Reading database ... 113653 files and directories currently installed.)&lt;br /&gt;
 ...&lt;br /&gt;
 root@desktop:~/pkgs#&lt;br /&gt;
&lt;br /&gt;
At this point, you should be done installing the prerequisites!  You should now continue the installation procedure at the step after installing prequisites.&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/installguide</id>
		<title>Doc:latest/installguide</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/installguide"/>
				<updated>2011-10-24T20:13:05Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* Target Host Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Preface'''==&lt;br /&gt;
&lt;br /&gt;
''SAFplus Platform Installation Guide''  guide provides the system requirements, installation procedure for SAFplus Platform software development kit (SDK) and the Evaluation System.&lt;br /&gt;
&lt;br /&gt;
===Audience===&lt;br /&gt;
&lt;br /&gt;
''SAFplus Platform Installation Guide''  is designed for system integrators, designers, and system architects. To use the product, you must be aware of the fundamentals of design, development, operation, management and configuration of telecommunication and networking systems. You must also be familiar with C programming, UML notations, and have the basic knowledge of Linux.&lt;br /&gt;
&lt;br /&gt;
===Documentation Conventions===&lt;br /&gt;
&lt;br /&gt;
This guide uses different fonts and symbols to differentiate between document elements and types of information. These conventions are summarized in the following table.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Notation &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Description&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|style=&amp;quot;color:black&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;Code&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
This font denotes the C code provided in various examples.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|Cross reference&lt;br /&gt;
|&lt;br /&gt;
This font denotes a hyperlink. You can click on the hyperlink text to access the reference location, which can be either a section within the User Guide or a URL link.A cross reference refers to a section name and accesses the first page of that section.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''Bold Text''' &lt;br /&gt;
|&lt;br /&gt;
Menu items and button names.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''''Italic Text''''' &lt;br /&gt;
|&lt;br /&gt;
Variables for which you enter values.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]This indicates the presence of notes or annotations, related to the context of the document.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Caution.png]]This indicates that certain precautionary measures must be taken before performing a particular task.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Info.png]]This indicates that additional information is provided to you.&lt;br /&gt;
&lt;br /&gt;
===Related Documents===&lt;br /&gt;
&lt;br /&gt;
For additional information about OpenClovis products, refer to the following guides:&lt;br /&gt;
* '''[[Doc:latest/relnotes | SAFplus Platform Release Notes]]''' provides information about the software and the hardware required to install OpenClovis Application Service Platform (SAFplus Platform) and Integrated Development Environment (IDE). It summarizes the additional features and enhancements of the product since the previous release. It also summarizes the issues and limitations of the product and provides workarounds wherever applicable.&lt;br /&gt;
* '''[[Doc:latest/safcompliance | SAFplus Platform SA-Forum Compliance]]''' describes the level of compliance of OpenClovis SAFplus Platform and its Application Programming Interface (API) with the relevant Service Availability Forum Specifications.&lt;br /&gt;
* '''[[Doc:latest/installguide | SAFplus Platform Installation Guide]]''' provides the system requirements, installation procedure for OpenClovis SAFplus Platform, IDE, and the Evaluation System.&lt;br /&gt;
* '''[[Doc:latest/tutorial | SAFplus Platform Sample Application Tutorial]]''' explains the steps to create and build a sample model using OpenClovis IDE and OpenClovis SAFplus Platform. It also provides troubleshooting information for this process. This provides the logical first step in understanding the SAFplus Platform offering.&lt;br /&gt;
* '''[[Doc:latest/evalguide | SAFplus Platform Evaluation System User Guide]]''' provides all the required information to configure and run the sample models packaged within the Evaluation System. This document also provides good understanding of OpenClovis SAFplus Platform's functionality. This is the natural follow on to the ''OpenClovis Sample Application Tutorial'' as it builds on the example created in that document. &lt;br /&gt;
* '''[[Doc:latest/sdkguide | SAFplus Platform SDK User Guide]]''' provides information about SAFplus Availability/Scalability Platform architecture, various SAFplus Platform components, and their interactions. This guide helps you to configure the OpenClovis SAFplus Platform components, compile, and execute the SAFplus Platform code to build your custom application.&lt;br /&gt;
* '''[[Doc:latest/ideguide | SAFplus Platform IDE User Guide]]''' describes the usage of Integrated Development Environment (IDE), a graphical development environment that complements the SAFplus Platform. This guide helps you to understand how to use the various features of the IDE to build the application.&lt;br /&gt;
* '''[[Doc:latest/logtoolguide | SAFplus Platform Log Tool User Guide]]''' provides information about the usage of OpenClovis Log Tool. OpenClovis Log Tool is an interactive utility that allows you to view binary log files in a readable format and hence monitor system errors, warnings, and other log information. Log Tool allows you to format the &amp;lt;code&amp;gt;.log&amp;lt;/code&amp;gt; files and filter them to view the required entries.&lt;br /&gt;
* '''SAFplus Platform API Reference Guide [http://www.openclovis.org/doc/latest/apirefs/index.html]''' is provided for each component. It describes the Application Programming Interface (API), Service Model, and Management Information Model of the various OpenClovis Application Service Platform (SAFplus Platform) services. It helps the developer to understand the capabilities of the SAFplus Platform services and the APIs provided by these services.&lt;br /&gt;
* '''[[SAFplus Platform Console Reference Guide]]''' provides details about managing applications built on SAFplus Platform using the SAFplus Platform runtime debug console commands. SAFplus Platform Console commands can be used to manage, monitor, and test your application.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Online Technical Support===&lt;br /&gt;
&lt;br /&gt;
OpenClovis customers and partners can register on our Web site and receive personalized services and information. If you need any support or assistance while working on OpenClovis products, you can access the following: URL: http://www.openclovis.com. Send your queries to: support@openclovis.com. Open source community support is available at: http://www.openclovis.org/forum.&lt;br /&gt;
&lt;br /&gt;
===Documentation Feedback===&lt;br /&gt;
&lt;br /&gt;
We are interested in hearing from our customers on the documentation provided with the product. Let us know your comments and suggestions on improving the documentation at OpenClovis Inc. Send your comments to: support@openclovis.com. Or even better, edit (or comment in) the page on our documentation wiki located at [http://help.openclovis.com http://help.openclovis.com].&lt;br /&gt;
&lt;br /&gt;
=='''Prerequisites to Install'''==&lt;br /&gt;
&lt;br /&gt;
This chapter provides an overview of the OpenClovis SDK solution comprising OpenClovis SAFplus Platform and IDE. It also provides the hardware and software requirements for running OpenClovis SDK and the Evaluation System.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
OpenClovis provides a modular and cost-effective software platform for creating next-generation communication systems. OpenClovis SDK is designed for solution integrators, network equipment manufacturers (NEPs), and telecommunication equipment manufacturers (TEMs) to facilitate the creation of a broad range of telecommunication devices, including routers, switches, media gateways and wireless infrastructure nodes.&lt;br /&gt;
&lt;br /&gt;
OpenClovis fits seamlessly with various distributions of Linux and hardware platforms such as AdvancedTCA, BladeCenter T, and other off-the-shelf proprietary hardware.&lt;br /&gt;
&lt;br /&gt;
The OpenClovis solution comprises OpenClovis SAFplus Platform and OpenClovis IDE.&lt;br /&gt;
&lt;br /&gt;
'''OpenClovis Application Service Platform (SAFplus Platform)'''  is middleware that offers a comprehensive set of modular, portable, reusable software components designed to provide system management and high availability functionality. OpenClovis SAFplus Platform is the run-time part of the OpenClovis offering. It provides run-time services for your value add applications, offering a layered, hardware-platform independent application environment.&lt;br /&gt;
&lt;br /&gt;
'''OpenClovis Integrated Development Environment (IDE)'''  is designed to simplify and accelerate the development of application service platforms for the telecommunication marketplace. Coupled with the OpenClovis SAFplus Platform, this intuitive software solution streamlines the process of specifying the information model, high availability (HA) aspects, and the communication infrastructure of a system. OpenClovis IDE stores all information describing a project in well defined XML files that can be modified by the user. Modeling of system resources and relationships are specified using a graphical UML editor.&lt;br /&gt;
&lt;br /&gt;
'''OpenClovis Evaluation System'''  is a evaluation sample system based on SAFplus Platform that provides the user with a better understanding of the scope of the product, usage patterns, its quality and usability.&lt;br /&gt;
&lt;br /&gt;
===Development Host Requirements===&lt;br /&gt;
&lt;br /&gt;
This section provides the hardware and software requirements for installing OpenClovis SAFplus Platform and IDE. It is not necessary to install OpenClovis IDE on the target host, as all the modeling activities are performed on the development host. The system requirements for the development host is summarized in Table [[#Table_SysReq_DevHost|System Requirements for a Development Host]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Table_SysReq_DevHost&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;600&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''System Requirements for a Development Host'''&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;150&amp;quot;| Requirement Type&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Requirements&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Hardware&lt;br /&gt;
|&lt;br /&gt;
* Intel Pentium II (or higher)&lt;br /&gt;
* Hard Disk - 10 GB (minimum suggested)&lt;br /&gt;
* RAM - 512 MB (minimum suggested)&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Linux Distributions&lt;br /&gt;
|&lt;br /&gt;
* Red Hat Enterprise Linux 4&lt;br /&gt;
* Ubuntu Linux&lt;br /&gt;
* CentOS 4.0 &lt;br /&gt;
* Gentoo Linux&lt;br /&gt;
* Fedora Linux&lt;br /&gt;
* Yellow Dog Linux 4&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;br&amp;gt;Third Party Packages &lt;br /&gt;
|&lt;br /&gt;
* glib-2.0 - 2.6.0&lt;br /&gt;
* glibc 2.3.2&lt;br /&gt;
* gcc 3.2.3&lt;br /&gt;
* beecrypt&lt;br /&gt;
* gdbm 1.8.0&lt;br /&gt;
* net-snmp 5.4&lt;br /&gt;
* openhpi 2.8.1&lt;br /&gt;
* openhpi-subagent 2.3.4&lt;br /&gt;
* Gtk&lt;br /&gt;
* Eclipse SDK 3.2.2&lt;br /&gt;
* EMF SDK 2.2.2&lt;br /&gt;
* GEF SDK 3.2.2&lt;br /&gt;
* JRE 1.5.0_03&lt;br /&gt;
* Python 2.4.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]The OpenClovis SDK installation process verifies the Third Party Packages, and installs any missing packages automatically, as a part of the SDK Installation.&lt;br /&gt;
&lt;br /&gt;
===Target Host Requirements===&lt;br /&gt;
&lt;br /&gt;
This section provides the hardware and software requirements for installing OpenClovis SAFplus Platform on the target host. These requirements are summarized in Table [[#Table_SysReq_TargetPlatform|System Requirements for the Target Platform]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Table_SysReq_TargetPlatform&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;600&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''System Requirements for the Target Platform''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;150&amp;quot;| Requirement Type&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Requirements&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Hardware&lt;br /&gt;
|&lt;br /&gt;
'''ATCA Chassis''' &lt;br /&gt;
* CPU Types: Intel Xeon, AMD64, Itanium2&lt;br /&gt;
* Blades: Intel MPCBL0001, Intel MPCBL0030, Intel MPCBL0040, Huawei Tel8000&lt;br /&gt;
* Shelf Management: Pigeon Point ShMM500, RadiSys&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;br&amp;gt;Linux Distributions&lt;br /&gt;
|&lt;br /&gt;
'''ATCA Chassis''' &lt;br /&gt;
* Wind-River PNE LE 1.2 (2.6.10 kernel)&lt;br /&gt;
* Wind-River PNE LE 1.3 (2.6.14 kernel)&lt;br /&gt;
* Wind-River PNE LE 1.4 (2.6.14 kernel)&lt;br /&gt;
* Red Hat Enterprise Linux 4.0, 5.0, etc. or Centos equivalent&lt;br /&gt;
* Ubuntu 9+ or similar Debian based Linux&lt;br /&gt;
* MontaVista Carrier Grade Linux 5.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]These are the Linux distributions on which SAFplus Platform is tested and certified.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis SDK Packages===&lt;br /&gt;
&lt;br /&gt;
The OpenClovis SDK Installation packages listed in Table [[#Table_Required_Installation_Packages | Required Installation Packages]]. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Table_Required_Installation_Packages&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot;| '''Required Installation Packages'''&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| File Names&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Description&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
openclovis-sdk-3.0.tar.gz&lt;br /&gt;
|&lt;br /&gt;
This file is the core installation tarball, to install OpenClovis SAFplus Platform, IDE, and the Evaluation System.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
openclovis-sdk-3.0.md5&lt;br /&gt;
|&lt;br /&gt;
This file is used to perform the data integrity check of the downloaded SDK tar file.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
3rdparty-base-1.8.tar&lt;br /&gt;
|&lt;br /&gt;
This file contains the third party packages for OpenClovis SDK. &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
3rdparty-base-1.8.md5&lt;br /&gt;
|&lt;br /&gt;
This file is used to perform the data integrity check of the downloaded third party tar file.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
crossbuild-i586-wrl-pnele1.3-2.6.14-1.6.tar.gz&lt;br /&gt;
|&lt;br /&gt;
This file is used to crossbuild SAFplus Platform for an i586 target with the PNELE 1.3 kernel.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
crossbuild-i586-wrl-pnele1.3-2.6.14-1.6.md5&lt;br /&gt;
|&lt;br /&gt;
This file is used to perform the data integrity check of the downloaded crossbuild tar file.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
crossbuild-i586-wrl-pnele1.4-2.6.14_mpcbl0001-1.0.tar.gz&lt;br /&gt;
|&lt;br /&gt;
This file is used to crossbuild SAFplus Platform for an i586 target with the PNELE 1.4 kernel.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
crossbuild-i586-wrl-pnele1.4-2.6.14_mpcbl0001-1.0.md5&lt;br /&gt;
|&lt;br /&gt;
This file is used to perform the data integrity check of the downloaded crossbuild tar file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]OpenClovis SDK is supplemented with a set of crossbuild packages for different CPU and Operating System combinations. The md5 and crossbuild packages are optional and maybe downloaded depending on your requirements.&lt;br /&gt;
&lt;br /&gt;
=='''OpenClovis SDK Installation'''==&lt;br /&gt;
&lt;br /&gt;
This chapter provides a step-by-step approach for installing OpenClovis SDK. Before proceeding with installation, ensure that all the required hardware and software are available on your system. You need not install the third-party packages, as the installation package installs the third-party packages along with OpenClovis SDK. &lt;br /&gt;
&lt;br /&gt;
===Installation Procedure - Get Started===&lt;br /&gt;
&lt;br /&gt;
To install Openclovis SDK on your local machine, go to the directory where you have downloaded the required installation files.&lt;br /&gt;
&lt;br /&gt;
Before you install, &lt;br /&gt;
* Ensure you have write permissions for the current directory (directory where the installation files are downloaded) and the target directory (directory where you will install the application.) &lt;br /&gt;
* At least 500MB of free disk space. &lt;br /&gt;
* You can install the SDK either as a root user or a non root user. Installing as root user is not required for a single user host. When using the SDK for larger projects it is advisable to install as root, since multiple users can share the same SDK.  Irrespective of the mode of installation, the SDK can be used to model and build code using non-root privileges. &lt;br /&gt;
&lt;br /&gt;
To extract the SDK package, execute the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# tar -xzmf openclovis-sdk-3.0.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] The &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; ensures that the timestamps on the files within the SDK package are consistent with the host system.  This is important, since discrepancies can adversely affect the build procedure.&lt;br /&gt;
&lt;br /&gt;
To ensure that your system has all the prerequisite software packages required by the installation process, the SDK package contains preinstallation scripts for a variety of Linux distributions.  Prerequisite packages are packages that are supplied by your distribution but may not have been installed on your system.  Essentially this is the GNU compiler toolchain and programming utilities such as pkg-config, flex, and bison.  These scripts enable the user to acquire and install the prerequisite software packages automatically.  Some distributions provide these packages on your installation CDROMs, so you may be asked to insert them.  Other distributions provide these packages via internet-based software repositories (notably Ubuntu).  If your system does not have internet access, please see ''Appendix A: Installing the Prerequisites without Internet Access''.  The following table covers the distributions supported by the preinstall scripts:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;600&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Distributions supported by preinstall scripts'''&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;150&amp;quot;| Preinstall script&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Distributions supported&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-centOS4.sh &lt;br /&gt;
|CentOS 4&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-debian.sh&lt;br /&gt;
|Debian Linux&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-fedora-core-6.sh&lt;br /&gt;
|Fedora Core 6&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-suse.sh&lt;br /&gt;
|SuSE Linux&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-ubuntu.sh&lt;br /&gt;
|Ubuntu Linux&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-rhel4.sh&lt;br /&gt;
|Red Hat Enterprise Linux 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] '''The preinstall scripts need to be run as root.'''&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] The preinstall script installs SQLite as database engine by default. If you would like to select GNU Database Manager or Berkeley Database, please visit section ''Database Abstraction Layer (DBAL)'' in ''OpenClovis SDK User Guide'' for more information. &lt;br /&gt;
&lt;br /&gt;
Please run the preinstall script corresponding with your Linux distribution by executing the following commands:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd openclovis-sdk-3.0&lt;br /&gt;
# ./preinstall-&amp;lt;os&amp;gt;.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] '''An installation of Red Hat EL4 with the default package set contains all the packages required for installing OpenClovis SDK.  In particular, the 'Development Tools' package subset must be installed to cover these requirements.'''&lt;br /&gt;
&lt;br /&gt;
Once the preinstall script completes, start the SDK installation by executing the following command:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# ./install.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After you execute the install command, the Welcome screen is displayed as illustrated in Figure [[#OpenClovis Installer Welcome Screen | OpenClovis Installer Welcome Screen]]. When prompted by the installer, the user can enter the name of the directory where the SDK should be installed or accept the default provided:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='OpenClovis Installer Welcome Screen'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_WelcomeScreen_wPreInstall.png|frame|center| '''OpenClovis Installer Welcome Screen''' ]]&lt;br /&gt;
&lt;br /&gt;
The default directory for installation is &amp;lt;code&amp;gt;/opt/clovis&amp;lt;/code&amp;gt; for root installation and  &amp;lt;code&amp;gt;$HOME/clovis&amp;lt;/code&amp;gt; for non root users as illustrated in Figure [[#OpenClovis Installer Welcome Screen | OpenClovis Installer Welcome Screen]]. The installation progress is illustrated in Figure [[#Installation Directory and Progress | Installation Directory and Progress]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Installation Directory and Progress'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_InstallationDirectories.png|frame|center| '''Installation Directory and Progress''' ]]&lt;br /&gt;
&lt;br /&gt;
===Third Party Packages===&lt;br /&gt;
&lt;br /&gt;
The required third party packages are installed in the following steps:&lt;br /&gt;
* Scans the system for existing third party packages. &lt;br /&gt;
* Displays the list of packages that are available, along with their version numbers. &lt;br /&gt;
* Displays the list of packages that are not available or that have a version mismatch. &lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] This display may vary at the time of your installation, depending on the packages that are available on your system. Figure [[#Third Party Packages - Availability Status | Third Party Packages - Availability Status]]  demonstrates a typical display.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Third Party Packages - Availability Status'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_ThirdPartyPackages.png|frame|center| '''Third Party Packages - Availability Status''']]&lt;br /&gt;
&lt;br /&gt;
To proceed with the installation, enter &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; for the message, &amp;lt;code&amp;gt;Proceed with the installation &amp;lt;y/n&amp;gt; [y]: &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Figure [[#Third Party Packages Installation Progress | Third Party Packages Installation Progress]]  illustrates the approximate installation time and the installation status for each package.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Third Party Packages Installation Progress'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_3rdPartyPackageInstallationProgress.png|frame|center| '''Third Party Packages Installation Progress''']]&lt;br /&gt;
&lt;br /&gt;
After installation of third party packages, the installer displays the message,  &amp;lt;code&amp;gt;All SDK dependencies are now in place.&amp;lt;/code&amp;gt; as illustrated in Figure [[#OpenClovis Packages Installation - Status | OpenClovis Packages Installation - Status]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='OpenClovis Packages Installation - Status'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_InstallationStatus.png|frame|center| '''OpenClovis Packages Installation - Status''']]&lt;br /&gt;
&lt;br /&gt;
After completion of the third party packages, the installer prompts the user for the installation of the crossbuild toolchains.&lt;br /&gt;
&lt;br /&gt;
===Crossbuild Toolchains===&lt;br /&gt;
&lt;br /&gt;
Crossbuild toolchains are required to install SAFplus Platform on a platform that is different from the development host platform. For instance if the development host is x86 Intel based and the target platform is PowerPC based the user will need a crossbuild toolchain for that particular PowerPC based architecture.&lt;br /&gt;
&lt;br /&gt;
For crossbuild toolchains, you will require the following:&lt;br /&gt;
* A cross compiler and related binary tools for the target CPU architecture.&lt;br /&gt;
* All the SAFplus Platform prerequisites that are pre-compiled for the target platform, so that all library files are available.&lt;br /&gt;
&lt;br /&gt;
OpenClovis SDK comes with a standard set of pre-built crossbuild toolchain packages. The names of these packages help you to identify the CPU and OS combinations for which they have been built. &lt;br /&gt;
&lt;br /&gt;
The SDK installer (&amp;lt;code&amp;gt;install.sh&amp;lt;/code&amp;gt;) assists you in installing one or more of these toolchains as illustrated in Figure [[#Crossbuild Toolchains | Crossbuild Toolchains]]. Enter the crossbuild toolchain that you require to be installed from the available list. After the toolchains are installed, you can select any of these cross-tools for your project build.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Crossbuild Toolchains'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_Crossbuildtoolchains.png|frame|center| '''Crossbuild Toolchains''' ]]&lt;br /&gt;
&lt;br /&gt;
If you would like to install more crossbuild toolchains at a later time, please download them and re-run &amp;lt;code&amp;gt;install.sh&amp;lt;/code&amp;gt;.  You may skip the remaining portions of the install process past the installation of crossbuild toolchains when you are prompted to do so.&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform, IDE and Utilities===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;After installation of the toolchain, the system proceeds with the installation of SAFplus Platform, IDE and Utilities as illustrated in Figure [[#Installing SAFplus Platform, IDE and Utilities | Installing SAFplus Platform, IDE and Utilities]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Installing SAFplus Platform, IDE, and Utilities'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_InstallingASP_IDE_Utilities.png|frame|center| '''Installing SAFplus Platform, IDE and Utilities''' ]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;The installer creates the required binaries and prompts you to create optional symbolic links, so that the SDK commands can be accessed on your system in a well known location, as illustrated in Figure [[#Creating Symbolic Links | Creating Symbolic Links]]. The main SDK commands of interest to the user are:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;cl-create-project-area&amp;lt;/code&amp;gt;: Command to create a new OpenClovis SDK project area. A project area is the workspace for the OpenClovis SDK. It contains the IDE models and the generated source code. The user makes modifications to the generated source within this workspace and builds runtime images here as well.  A typical project area has the following directory structure:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;project_area&amp;gt;&lt;br /&gt;
   |ide_workspace&lt;br /&gt;
   |+&amp;lt;model&amp;gt;&lt;br /&gt;
   |   |+build&lt;br /&gt;
   |   |   |+local&lt;br /&gt;
   |   |   |   |-Makefile&lt;br /&gt;
   |   |   |+&amp;lt;crossbuild&amp;gt;&lt;br /&gt;
   |   |   |   |-Makefile&lt;br /&gt;
   |   |+src&lt;br /&gt;
   |   |   |+app&lt;br /&gt;
   |   |   |+config&lt;br /&gt;
   |   |   |+doc&lt;br /&gt;
   |   |   |-target.conf&lt;br /&gt;
   |   |+target &lt;br /&gt;
   |   |-Makefile&lt;br /&gt;
   |-Makefile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;cl-ide&amp;lt;/code&amp;gt;: Command to start the OpenClovis IDE. Please note that you should have already created a project area using &amp;lt;code&amp;gt;cl-create-project-area&amp;lt;/code&amp;gt; before using &amp;lt;code&amp;gt;cl-ide&amp;lt;/code&amp;gt; to work within this project area.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Creating Symbolic Links'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_CreateSymbolicLinks.png|frame|center| '''Creating Symbolic Links''' ]]&lt;br /&gt;
&lt;br /&gt;
Enter &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt; to create the symbolic links. The installer then prompts the user for a location to place the links with a default option &amp;lt;code&amp;gt;/usr/local/bin&amp;lt;/code&amp;gt; if you are installing as root, or &amp;lt;code&amp;gt;$HOME/bin&amp;lt;/code&amp;gt; for non root user installation. &lt;br /&gt;
&lt;br /&gt;
If you choose not to create symbolic links and enter &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;, then you can either:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add the installation directory to the shell path.  For example with a bash shell:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=$PATH:&amp;lt;install_dir&amp;gt;/sdk-3.0/bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;or access the SDK commands from the &amp;lt;code&amp;gt;&amp;lt;install_dir&amp;gt;/sdk-3.0/bin/&amp;lt;/code&amp;gt; directory. For example to create a new project area at &amp;lt;code&amp;gt;&amp;lt;project-area_dir&amp;gt;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;install_dir&amp;gt;/sdk-3.0/bin/cl-create-project-area &amp;lt;project-area_dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After creating symbolic links, the installation of OpenClovis SDK is complete. All the required packages and crossbuild toolchains are installed and the directory where you have downloaded the installation packages can be discarded.&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]If your installation is not successful, or if you encounter any problems during the installation, refer to the Chapter [[#Troubleshooting | Troubleshooting]].&lt;br /&gt;
&lt;br /&gt;
===Next Steps===&lt;br /&gt;
&lt;br /&gt;
After completing the Installation, the OpenClovis SDK Documentation set listed in the [[#Related Documents| Related Documents]] section is available in the  &amp;lt;code&amp;gt;doc&amp;lt;/code&amp;gt;  folder located at  &amp;lt;code&amp;gt;&amp;lt;install_dir&amp;gt;/sdk-3.0&amp;lt;/code&amp;gt; directory. &lt;br /&gt;
&lt;br /&gt;
We recommend the following steps to get familiar with our product:&lt;br /&gt;
&lt;br /&gt;
*'''Read and follow the OpenClovis Sample Application Tutorial''' - The ''Sample Application Tutorial'' will step you through the process of creating a high available system. It takes you from model conception all the way through deployment and running of the sytem. After going through this guide you will understand the basics of the OpenClovis offering.&lt;br /&gt;
&lt;br /&gt;
*'''Read and follow the OpenClovis Evaluation System User Guide''' - ''Evaluation System User Guide'' will introduce you to more advanced modelling topics. These topics are introduced incrementally through a series of targeted tutorials. After completing this guide you will be ready to start building your own system.&lt;br /&gt;
&lt;br /&gt;
=='''Troubleshooting'''==&lt;br /&gt;
&lt;br /&gt;
This chapter describes some of the probable errors that you may encounter during the installation. This chapter also provides the solution to these errors.The errors that you may encounter are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''': Installation Failure, during third party installation.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''': You can manually fix this error by getting more information from the corresponding log file under the log directory. You can also send the  &amp;lt;code&amp;gt;log.tar.gz&amp;lt;/code&amp;gt; to support@openclovis.com for more help.&lt;br /&gt;
The installation can be resumed after the errors are fixed. The installer will detect any new updates and proceed with the missing prerequisites.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''':  &amp;lt;code&amp;gt;gcc (pkg-config, perl, md5sum) not found in your PATH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''': Ensure that the directory where the  &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; resides is in the &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; variable.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''':  Not enough space on the target installation directory.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''' : Change the target installation directory to the directory with at least 500MB free disk space.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''':  &amp;lt;code&amp;gt;&amp;lt;WORKING_DIRECTORY&amp;gt;&amp;lt;/code&amp;gt; is read-only.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''': You need to have write permission for the current working directory to extract the contents of the archive, configure, and build. Ensure that you turn ON write permission using  &amp;lt;code&amp;gt;chmod +w ...&amp;lt;/code&amp;gt;  command.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''': md5 checksums are used to check if the packages are correctly downloaded. If they are not downloaded correctly, the system displays the message:  &amp;lt;code&amp;gt;It is not safe to install these packages, please download them again.&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''':The installer checks the integrity of the downloaded packages. If the download is either incomplete or corrupt, download the packages again.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''':  SAFplus Platform fails to start, reporting the underlying SQLite database version used is not-supported.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''': Use SQLite version 3.3.13 or newer. The source code can be downloaded from http://www.sqlite.org/download.html. The user can install the latest version of SQLite if the specified version is &lt;br /&gt;
not present in this repository.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Appendix A: Installing the Prerequisites without Internet Access'''==&lt;br /&gt;
&lt;br /&gt;
Some customers do not want their evaluation system to have internet access for security purposes.  If this is your situation, please consider temporarily enabling internet access while running the &amp;quot;preinstall-&amp;lt;os&amp;gt;&amp;quot; script.  At this point the evaluation system should only have the base OS installed, so there is no proprietary data on the system.  Also note that the &amp;quot;preinstall&amp;quot; scripts are only about a page long so you can easily review them for security purposes.&lt;br /&gt;
&lt;br /&gt;
However, if you still do not want to enable internet access one strategy that can be used is to go to a system with internet access (it must use the same Linux distribution and the same version), download them there, use a USB flash drive to move them to the unconnected system, and then install them on that system.  If this approach is unacceptable (it does still use the internet), then perhaps the Linux distribution you chose is not appropriate -- instead use one that contains all packages on the installation CDROMs.&lt;br /&gt;
&lt;br /&gt;
===Example Using Ubuntu 7.04===&lt;br /&gt;
&lt;br /&gt;
Packages can be downloaded but not installed on Ubuntu by using the &amp;quot;-d&amp;quot; flag to the &amp;quot;apt-get&amp;quot; package manager.  The files are downloaded to &amp;quot;/var/cache/apt/archives&amp;quot;.  It is recommended to remove (or move) all files in this directory first (it is just a cache, and so it will contain any packages that you have previously installed), so that the directory contains just the packages needed for the OpenClovis SDK:&lt;br /&gt;
&lt;br /&gt;
 rm /var/cache/apt/archives/*&lt;br /&gt;
&lt;br /&gt;
Next edit the preinstall-ubuntu.sh script, search for all instances of &amp;quot;apt-get&amp;quot; and add the flags &amp;quot;-d --reinstall&amp;quot; just after the &amp;quot;apt-get&amp;quot; program.  For example:&lt;br /&gt;
&lt;br /&gt;
 apt-get -d --reinstall -y --force-yes install build-essential&lt;br /&gt;
&lt;br /&gt;
Next run this modified script on your internet-connected machine.  This script will download 6MB of files (this list will vary by Linux distribution or version):&lt;br /&gt;
&lt;br /&gt;
 bison_1%3a2.3.dfsg-4build1_i386.deb                           &lt;br /&gt;
 libgdbm-dev_1.8.3-3_i386.deb&lt;br /&gt;
 build-essential_11.3_i386.deb                                 &lt;br /&gt;
 libltdl3-dev_1.5.22-4_i386.deb&lt;br /&gt;
 e2fslibs-dev_1.39+1.40- WIP-2006.11.14+dfsg-2ubuntu1_i386.deb  &lt;br /&gt;
 libperl-dev_5.8.8-7build1_i386.deb&lt;br /&gt;
 e2fsprogs_1.39+1.40-WIP-2006.11.14+dfsg-2ubuntu1_i386.deb     &lt;br /&gt;
 linux-headers-2.6.20-16-generic_2.6.20-16.32_i386.deb&lt;br /&gt;
 flex_2.5.33-10build1_i386.deb                                 &lt;br /&gt;
 gawk_1%3a3.1.5.dfsg-4build1_i386.deb                          &lt;br /&gt;
 gettext_0.16.1-1ubuntu2_i386.deb                              &lt;br /&gt;
 pkg-config_0.21-1build1_i386.deb&lt;br /&gt;
 libdb4.5-dev_4.5.20-1ubuntu1_i386.deb                         &lt;br /&gt;
 uuid-dev_1.2- 1.39+1.40-WIP-2006.11.14+dfsg-2ubuntu1_i386.deb&lt;br /&gt;
&lt;br /&gt;
Now copy these files to a new directory in your unconnected machine:&lt;br /&gt;
&lt;br /&gt;
On the connected machine:&lt;br /&gt;
 root@desktop:/# cp /var/cache/apt/archives/*.deb &amp;lt;your flash media&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On the unconnected machine:&lt;br /&gt;
 root@desktop:/# mkdir /root/pkgs&lt;br /&gt;
 root@desktop:/# cp &amp;lt;your flash media&amp;gt; /root/pkgs/&lt;br /&gt;
&lt;br /&gt;
Finally, install them using the standard &amp;quot;dpkg&amp;quot; package installer:&lt;br /&gt;
&lt;br /&gt;
 root@desktop :/# cd /root/pkgs&lt;br /&gt;
 root@desktop:~/pkgs# dpkg -i *.deb&lt;br /&gt;
 (Reading database ... 113653 files and directories currently installed.)&lt;br /&gt;
 ...&lt;br /&gt;
 root@desktop:~/pkgs#&lt;br /&gt;
&lt;br /&gt;
At this point, you should be done installing the prerequisites!  You should now continue the installation procedure at the step after installing prequisites.&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/installguide</id>
		<title>Doc:latest/installguide</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/installguide"/>
				<updated>2011-10-24T20:11:22Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* Documentation Feedback */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Preface'''==&lt;br /&gt;
&lt;br /&gt;
''SAFplus Platform Installation Guide''  guide provides the system requirements, installation procedure for SAFplus Platform software development kit (SDK) and the Evaluation System.&lt;br /&gt;
&lt;br /&gt;
===Audience===&lt;br /&gt;
&lt;br /&gt;
''SAFplus Platform Installation Guide''  is designed for system integrators, designers, and system architects. To use the product, you must be aware of the fundamentals of design, development, operation, management and configuration of telecommunication and networking systems. You must also be familiar with C programming, UML notations, and have the basic knowledge of Linux.&lt;br /&gt;
&lt;br /&gt;
===Documentation Conventions===&lt;br /&gt;
&lt;br /&gt;
This guide uses different fonts and symbols to differentiate between document elements and types of information. These conventions are summarized in the following table.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Notation &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Description&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|style=&amp;quot;color:black&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;Code&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
This font denotes the C code provided in various examples.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|Cross reference&lt;br /&gt;
|&lt;br /&gt;
This font denotes a hyperlink. You can click on the hyperlink text to access the reference location, which can be either a section within the User Guide or a URL link.A cross reference refers to a section name and accesses the first page of that section.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''Bold Text''' &lt;br /&gt;
|&lt;br /&gt;
Menu items and button names.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''''Italic Text''''' &lt;br /&gt;
|&lt;br /&gt;
Variables for which you enter values.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]This indicates the presence of notes or annotations, related to the context of the document.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Caution.png]]This indicates that certain precautionary measures must be taken before performing a particular task.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Info.png]]This indicates that additional information is provided to you.&lt;br /&gt;
&lt;br /&gt;
===Related Documents===&lt;br /&gt;
&lt;br /&gt;
For additional information about OpenClovis products, refer to the following guides:&lt;br /&gt;
* '''[[Doc:latest/relnotes | SAFplus Platform Release Notes]]''' provides information about the software and the hardware required to install OpenClovis Application Service Platform (SAFplus Platform) and Integrated Development Environment (IDE). It summarizes the additional features and enhancements of the product since the previous release. It also summarizes the issues and limitations of the product and provides workarounds wherever applicable.&lt;br /&gt;
* '''[[Doc:latest/safcompliance | SAFplus Platform SA-Forum Compliance]]''' describes the level of compliance of OpenClovis SAFplus Platform and its Application Programming Interface (API) with the relevant Service Availability Forum Specifications.&lt;br /&gt;
* '''[[Doc:latest/installguide | SAFplus Platform Installation Guide]]''' provides the system requirements, installation procedure for OpenClovis SAFplus Platform, IDE, and the Evaluation System.&lt;br /&gt;
* '''[[Doc:latest/tutorial | SAFplus Platform Sample Application Tutorial]]''' explains the steps to create and build a sample model using OpenClovis IDE and OpenClovis SAFplus Platform. It also provides troubleshooting information for this process. This provides the logical first step in understanding the SAFplus Platform offering.&lt;br /&gt;
* '''[[Doc:latest/evalguide | SAFplus Platform Evaluation System User Guide]]''' provides all the required information to configure and run the sample models packaged within the Evaluation System. This document also provides good understanding of OpenClovis SAFplus Platform's functionality. This is the natural follow on to the ''OpenClovis Sample Application Tutorial'' as it builds on the example created in that document. &lt;br /&gt;
* '''[[Doc:latest/sdkguide | SAFplus Platform SDK User Guide]]''' provides information about SAFplus Availability/Scalability Platform architecture, various SAFplus Platform components, and their interactions. This guide helps you to configure the OpenClovis SAFplus Platform components, compile, and execute the SAFplus Platform code to build your custom application.&lt;br /&gt;
* '''[[Doc:latest/ideguide | SAFplus Platform IDE User Guide]]''' describes the usage of Integrated Development Environment (IDE), a graphical development environment that complements the SAFplus Platform. This guide helps you to understand how to use the various features of the IDE to build the application.&lt;br /&gt;
* '''[[Doc:latest/logtoolguide | SAFplus Platform Log Tool User Guide]]''' provides information about the usage of OpenClovis Log Tool. OpenClovis Log Tool is an interactive utility that allows you to view binary log files in a readable format and hence monitor system errors, warnings, and other log information. Log Tool allows you to format the &amp;lt;code&amp;gt;.log&amp;lt;/code&amp;gt; files and filter them to view the required entries.&lt;br /&gt;
* '''SAFplus Platform API Reference Guide [http://www.openclovis.org/doc/latest/apirefs/index.html]''' is provided for each component. It describes the Application Programming Interface (API), Service Model, and Management Information Model of the various OpenClovis Application Service Platform (SAFplus Platform) services. It helps the developer to understand the capabilities of the SAFplus Platform services and the APIs provided by these services.&lt;br /&gt;
* '''[[SAFplus Platform Console Reference Guide]]''' provides details about managing applications built on SAFplus Platform using the SAFplus Platform runtime debug console commands. SAFplus Platform Console commands can be used to manage, monitor, and test your application.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Online Technical Support===&lt;br /&gt;
&lt;br /&gt;
OpenClovis customers and partners can register on our Web site and receive personalized services and information. If you need any support or assistance while working on OpenClovis products, you can access the following: URL: http://www.openclovis.com. Send your queries to: support@openclovis.com. Open source community support is available at: http://www.openclovis.org/forum.&lt;br /&gt;
&lt;br /&gt;
===Documentation Feedback===&lt;br /&gt;
&lt;br /&gt;
We are interested in hearing from our customers on the documentation provided with the product. Let us know your comments and suggestions on improving the documentation at OpenClovis Inc. Send your comments to: support@openclovis.com. Or even better, edit (or comment in) the page on our documentation wiki located at [http://help.openclovis.com http://help.openclovis.com].&lt;br /&gt;
&lt;br /&gt;
=='''Prerequisites to Install'''==&lt;br /&gt;
&lt;br /&gt;
This chapter provides an overview of the OpenClovis SDK solution comprising OpenClovis SAFplus Platform and IDE. It also provides the hardware and software requirements for running OpenClovis SDK and the Evaluation System.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
OpenClovis provides a modular and cost-effective software platform for creating next-generation communication systems. OpenClovis SDK is designed for solution integrators, network equipment manufacturers (NEPs), and telecommunication equipment manufacturers (TEMs) to facilitate the creation of a broad range of telecommunication devices, including routers, switches, media gateways and wireless infrastructure nodes.&lt;br /&gt;
&lt;br /&gt;
OpenClovis fits seamlessly with various distributions of Linux and hardware platforms such as AdvancedTCA, BladeCenter T, and other off-the-shelf proprietary hardware.&lt;br /&gt;
&lt;br /&gt;
The OpenClovis solution comprises OpenClovis SAFplus Platform and OpenClovis IDE.&lt;br /&gt;
&lt;br /&gt;
'''OpenClovis Application Service Platform (SAFplus Platform)'''  is middleware that offers a comprehensive set of modular, portable, reusable software components designed to provide system management and high availability functionality. OpenClovis SAFplus Platform is the run-time part of the OpenClovis offering. It provides run-time services for your value add applications, offering a layered, hardware-platform independent application environment.&lt;br /&gt;
&lt;br /&gt;
'''OpenClovis Integrated Development Environment (IDE)'''  is designed to simplify and accelerate the development of application service platforms for the telecommunication marketplace. Coupled with the OpenClovis SAFplus Platform, this intuitive software solution streamlines the process of specifying the information model, high availability (HA) aspects, and the communication infrastructure of a system. OpenClovis IDE stores all information describing a project in well defined XML files that can be modified by the user. Modeling of system resources and relationships are specified using a graphical UML editor.&lt;br /&gt;
&lt;br /&gt;
'''OpenClovis Evaluation System'''  is a evaluation sample system based on SAFplus Platform that provides the user with a better understanding of the scope of the product, usage patterns, its quality and usability.&lt;br /&gt;
&lt;br /&gt;
===Development Host Requirements===&lt;br /&gt;
&lt;br /&gt;
This section provides the hardware and software requirements for installing OpenClovis SAFplus Platform and IDE. It is not necessary to install OpenClovis IDE on the target host, as all the modeling activities are performed on the development host. The system requirements for the development host is summarized in Table [[#Table_SysReq_DevHost|System Requirements for a Development Host]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Table_SysReq_DevHost&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;600&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''System Requirements for a Development Host'''&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;150&amp;quot;| Requirement Type&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Requirements&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Hardware&lt;br /&gt;
|&lt;br /&gt;
* Intel Pentium II (or higher)&lt;br /&gt;
* Hard Disk - 10 GB (minimum suggested)&lt;br /&gt;
* RAM - 512 MB (minimum suggested)&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Linux Distributions&lt;br /&gt;
|&lt;br /&gt;
* Red Hat Enterprise Linux 4&lt;br /&gt;
* Ubuntu Linux&lt;br /&gt;
* CentOS 4.0 &lt;br /&gt;
* Gentoo Linux&lt;br /&gt;
* Fedora Linux&lt;br /&gt;
* Yellow Dog Linux 4&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;br&amp;gt;Third Party Packages &lt;br /&gt;
|&lt;br /&gt;
* glib-2.0 - 2.6.0&lt;br /&gt;
* glibc 2.3.2&lt;br /&gt;
* gcc 3.2.3&lt;br /&gt;
* beecrypt&lt;br /&gt;
* gdbm 1.8.0&lt;br /&gt;
* net-snmp 5.4&lt;br /&gt;
* openhpi 2.8.1&lt;br /&gt;
* openhpi-subagent 2.3.4&lt;br /&gt;
* Gtk&lt;br /&gt;
* Eclipse SDK 3.2.2&lt;br /&gt;
* EMF SDK 2.2.2&lt;br /&gt;
* GEF SDK 3.2.2&lt;br /&gt;
* JRE 1.5.0_03&lt;br /&gt;
* Python 2.4.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]The OpenClovis SDK installation process verifies the Third Party Packages, and installs any missing packages automatically, as a part of the SDK Installation.&lt;br /&gt;
&lt;br /&gt;
===Target Host Requirements===&lt;br /&gt;
&lt;br /&gt;
This section provides the hardware and software requirements for installing OpenClovis SAFplus Platform on the target host. These requirements are summarized in Table [[#Table_SysReq_TargetPlatform|System Requirements for the Target Platform]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Table_SysReq_TargetPlatform&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;600&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''System Requirements for the Target Platform''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;150&amp;quot;| Requirement Type&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Requirements&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Hardware&lt;br /&gt;
|&lt;br /&gt;
'''ATCA Chassis''' &lt;br /&gt;
* CPU Types: Intel Xeon, AMD64, Itanium2&lt;br /&gt;
* Blades: Intel MPCBL0001, Intel MPCBL0030, Intel MPCBL0040, Huawei Tel8000&lt;br /&gt;
* Shelf Management: Pigeon Point ShMM500, RadiSys&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;br&amp;gt;Linux Distributions&lt;br /&gt;
|&lt;br /&gt;
'''ATCA Chassis''' &lt;br /&gt;
* Wind-River PNE LE 1.2 (2.6.10 kernel)&lt;br /&gt;
* Wind-River PNE LE 1.3 (2.6.14 kernel)&lt;br /&gt;
* Wind-River PNE LE 1.4 (2.6.14 kernel)&lt;br /&gt;
* Red Hat Enterprise Linux 4.0 (2.6.9.5 kernel)&lt;br /&gt;
* MontaVista Carrier Grade Linux 5.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]These are the Linux distributions on which SAFplus Platform is tested and certified.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis SDK Packages===&lt;br /&gt;
&lt;br /&gt;
The OpenClovis SDK Installation packages listed in Table [[#Table_Required_Installation_Packages | Required Installation Packages]]. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Table_Required_Installation_Packages&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot;| '''Required Installation Packages'''&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| File Names&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Description&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
openclovis-sdk-3.0.tar.gz&lt;br /&gt;
|&lt;br /&gt;
This file is the core installation tarball, to install OpenClovis SAFplus Platform, IDE, and the Evaluation System.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
openclovis-sdk-3.0.md5&lt;br /&gt;
|&lt;br /&gt;
This file is used to perform the data integrity check of the downloaded SDK tar file.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
3rdparty-base-1.8.tar&lt;br /&gt;
|&lt;br /&gt;
This file contains the third party packages for OpenClovis SDK. &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
3rdparty-base-1.8.md5&lt;br /&gt;
|&lt;br /&gt;
This file is used to perform the data integrity check of the downloaded third party tar file.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
crossbuild-i586-wrl-pnele1.3-2.6.14-1.6.tar.gz&lt;br /&gt;
|&lt;br /&gt;
This file is used to crossbuild SAFplus Platform for an i586 target with the PNELE 1.3 kernel.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
crossbuild-i586-wrl-pnele1.3-2.6.14-1.6.md5&lt;br /&gt;
|&lt;br /&gt;
This file is used to perform the data integrity check of the downloaded crossbuild tar file.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
crossbuild-i586-wrl-pnele1.4-2.6.14_mpcbl0001-1.0.tar.gz&lt;br /&gt;
|&lt;br /&gt;
This file is used to crossbuild SAFplus Platform for an i586 target with the PNELE 1.4 kernel.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
crossbuild-i586-wrl-pnele1.4-2.6.14_mpcbl0001-1.0.md5&lt;br /&gt;
|&lt;br /&gt;
This file is used to perform the data integrity check of the downloaded crossbuild tar file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]OpenClovis SDK is supplemented with a set of crossbuild packages for different CPU and Operating System combinations. The md5 and crossbuild packages are optional and maybe downloaded depending on your requirements.&lt;br /&gt;
&lt;br /&gt;
=='''OpenClovis SDK Installation'''==&lt;br /&gt;
&lt;br /&gt;
This chapter provides a step-by-step approach for installing OpenClovis SDK. Before proceeding with installation, ensure that all the required hardware and software are available on your system. You need not install the third-party packages, as the installation package installs the third-party packages along with OpenClovis SDK. &lt;br /&gt;
&lt;br /&gt;
===Installation Procedure - Get Started===&lt;br /&gt;
&lt;br /&gt;
To install Openclovis SDK on your local machine, go to the directory where you have downloaded the required installation files.&lt;br /&gt;
&lt;br /&gt;
Before you install, &lt;br /&gt;
* Ensure you have write permissions for the current directory (directory where the installation files are downloaded) and the target directory (directory where you will install the application.) &lt;br /&gt;
* At least 500MB of free disk space. &lt;br /&gt;
* You can install the SDK either as a root user or a non root user. Installing as root user is not required for a single user host. When using the SDK for larger projects it is advisable to install as root, since multiple users can share the same SDK.  Irrespective of the mode of installation, the SDK can be used to model and build code using non-root privileges. &lt;br /&gt;
&lt;br /&gt;
To extract the SDK package, execute the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# tar -xzmf openclovis-sdk-3.0.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] The &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; ensures that the timestamps on the files within the SDK package are consistent with the host system.  This is important, since discrepancies can adversely affect the build procedure.&lt;br /&gt;
&lt;br /&gt;
To ensure that your system has all the prerequisite software packages required by the installation process, the SDK package contains preinstallation scripts for a variety of Linux distributions.  Prerequisite packages are packages that are supplied by your distribution but may not have been installed on your system.  Essentially this is the GNU compiler toolchain and programming utilities such as pkg-config, flex, and bison.  These scripts enable the user to acquire and install the prerequisite software packages automatically.  Some distributions provide these packages on your installation CDROMs, so you may be asked to insert them.  Other distributions provide these packages via internet-based software repositories (notably Ubuntu).  If your system does not have internet access, please see ''Appendix A: Installing the Prerequisites without Internet Access''.  The following table covers the distributions supported by the preinstall scripts:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;600&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Distributions supported by preinstall scripts'''&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;150&amp;quot;| Preinstall script&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Distributions supported&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-centOS4.sh &lt;br /&gt;
|CentOS 4&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-debian.sh&lt;br /&gt;
|Debian Linux&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-fedora-core-6.sh&lt;br /&gt;
|Fedora Core 6&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-suse.sh&lt;br /&gt;
|SuSE Linux&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-ubuntu.sh&lt;br /&gt;
|Ubuntu Linux&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-rhel4.sh&lt;br /&gt;
|Red Hat Enterprise Linux 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] '''The preinstall scripts need to be run as root.'''&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] The preinstall script installs SQLite as database engine by default. If you would like to select GNU Database Manager or Berkeley Database, please visit section ''Database Abstraction Layer (DBAL)'' in ''OpenClovis SDK User Guide'' for more information. &lt;br /&gt;
&lt;br /&gt;
Please run the preinstall script corresponding with your Linux distribution by executing the following commands:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd openclovis-sdk-3.0&lt;br /&gt;
# ./preinstall-&amp;lt;os&amp;gt;.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] '''An installation of Red Hat EL4 with the default package set contains all the packages required for installing OpenClovis SDK.  In particular, the 'Development Tools' package subset must be installed to cover these requirements.'''&lt;br /&gt;
&lt;br /&gt;
Once the preinstall script completes, start the SDK installation by executing the following command:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# ./install.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After you execute the install command, the Welcome screen is displayed as illustrated in Figure [[#OpenClovis Installer Welcome Screen | OpenClovis Installer Welcome Screen]]. When prompted by the installer, the user can enter the name of the directory where the SDK should be installed or accept the default provided:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='OpenClovis Installer Welcome Screen'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_WelcomeScreen_wPreInstall.png|frame|center| '''OpenClovis Installer Welcome Screen''' ]]&lt;br /&gt;
&lt;br /&gt;
The default directory for installation is &amp;lt;code&amp;gt;/opt/clovis&amp;lt;/code&amp;gt; for root installation and  &amp;lt;code&amp;gt;$HOME/clovis&amp;lt;/code&amp;gt; for non root users as illustrated in Figure [[#OpenClovis Installer Welcome Screen | OpenClovis Installer Welcome Screen]]. The installation progress is illustrated in Figure [[#Installation Directory and Progress | Installation Directory and Progress]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Installation Directory and Progress'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_InstallationDirectories.png|frame|center| '''Installation Directory and Progress''' ]]&lt;br /&gt;
&lt;br /&gt;
===Third Party Packages===&lt;br /&gt;
&lt;br /&gt;
The required third party packages are installed in the following steps:&lt;br /&gt;
* Scans the system for existing third party packages. &lt;br /&gt;
* Displays the list of packages that are available, along with their version numbers. &lt;br /&gt;
* Displays the list of packages that are not available or that have a version mismatch. &lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] This display may vary at the time of your installation, depending on the packages that are available on your system. Figure [[#Third Party Packages - Availability Status | Third Party Packages - Availability Status]]  demonstrates a typical display.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Third Party Packages - Availability Status'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_ThirdPartyPackages.png|frame|center| '''Third Party Packages - Availability Status''']]&lt;br /&gt;
&lt;br /&gt;
To proceed with the installation, enter &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; for the message, &amp;lt;code&amp;gt;Proceed with the installation &amp;lt;y/n&amp;gt; [y]: &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Figure [[#Third Party Packages Installation Progress | Third Party Packages Installation Progress]]  illustrates the approximate installation time and the installation status for each package.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Third Party Packages Installation Progress'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_3rdPartyPackageInstallationProgress.png|frame|center| '''Third Party Packages Installation Progress''']]&lt;br /&gt;
&lt;br /&gt;
After installation of third party packages, the installer displays the message,  &amp;lt;code&amp;gt;All SDK dependencies are now in place.&amp;lt;/code&amp;gt; as illustrated in Figure [[#OpenClovis Packages Installation - Status | OpenClovis Packages Installation - Status]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='OpenClovis Packages Installation - Status'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_InstallationStatus.png|frame|center| '''OpenClovis Packages Installation - Status''']]&lt;br /&gt;
&lt;br /&gt;
After completion of the third party packages, the installer prompts the user for the installation of the crossbuild toolchains.&lt;br /&gt;
&lt;br /&gt;
===Crossbuild Toolchains===&lt;br /&gt;
&lt;br /&gt;
Crossbuild toolchains are required to install SAFplus Platform on a platform that is different from the development host platform. For instance if the development host is x86 Intel based and the target platform is PowerPC based the user will need a crossbuild toolchain for that particular PowerPC based architecture.&lt;br /&gt;
&lt;br /&gt;
For crossbuild toolchains, you will require the following:&lt;br /&gt;
* A cross compiler and related binary tools for the target CPU architecture.&lt;br /&gt;
* All the SAFplus Platform prerequisites that are pre-compiled for the target platform, so that all library files are available.&lt;br /&gt;
&lt;br /&gt;
OpenClovis SDK comes with a standard set of pre-built crossbuild toolchain packages. The names of these packages help you to identify the CPU and OS combinations for which they have been built. &lt;br /&gt;
&lt;br /&gt;
The SDK installer (&amp;lt;code&amp;gt;install.sh&amp;lt;/code&amp;gt;) assists you in installing one or more of these toolchains as illustrated in Figure [[#Crossbuild Toolchains | Crossbuild Toolchains]]. Enter the crossbuild toolchain that you require to be installed from the available list. After the toolchains are installed, you can select any of these cross-tools for your project build.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Crossbuild Toolchains'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_Crossbuildtoolchains.png|frame|center| '''Crossbuild Toolchains''' ]]&lt;br /&gt;
&lt;br /&gt;
If you would like to install more crossbuild toolchains at a later time, please download them and re-run &amp;lt;code&amp;gt;install.sh&amp;lt;/code&amp;gt;.  You may skip the remaining portions of the install process past the installation of crossbuild toolchains when you are prompted to do so.&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform, IDE and Utilities===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;After installation of the toolchain, the system proceeds with the installation of SAFplus Platform, IDE and Utilities as illustrated in Figure [[#Installing SAFplus Platform, IDE and Utilities | Installing SAFplus Platform, IDE and Utilities]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Installing SAFplus Platform, IDE, and Utilities'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_InstallingASP_IDE_Utilities.png|frame|center| '''Installing SAFplus Platform, IDE and Utilities''' ]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;The installer creates the required binaries and prompts you to create optional symbolic links, so that the SDK commands can be accessed on your system in a well known location, as illustrated in Figure [[#Creating Symbolic Links | Creating Symbolic Links]]. The main SDK commands of interest to the user are:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;cl-create-project-area&amp;lt;/code&amp;gt;: Command to create a new OpenClovis SDK project area. A project area is the workspace for the OpenClovis SDK. It contains the IDE models and the generated source code. The user makes modifications to the generated source within this workspace and builds runtime images here as well.  A typical project area has the following directory structure:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;project_area&amp;gt;&lt;br /&gt;
   |ide_workspace&lt;br /&gt;
   |+&amp;lt;model&amp;gt;&lt;br /&gt;
   |   |+build&lt;br /&gt;
   |   |   |+local&lt;br /&gt;
   |   |   |   |-Makefile&lt;br /&gt;
   |   |   |+&amp;lt;crossbuild&amp;gt;&lt;br /&gt;
   |   |   |   |-Makefile&lt;br /&gt;
   |   |+src&lt;br /&gt;
   |   |   |+app&lt;br /&gt;
   |   |   |+config&lt;br /&gt;
   |   |   |+doc&lt;br /&gt;
   |   |   |-target.conf&lt;br /&gt;
   |   |+target &lt;br /&gt;
   |   |-Makefile&lt;br /&gt;
   |-Makefile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;cl-ide&amp;lt;/code&amp;gt;: Command to start the OpenClovis IDE. Please note that you should have already created a project area using &amp;lt;code&amp;gt;cl-create-project-area&amp;lt;/code&amp;gt; before using &amp;lt;code&amp;gt;cl-ide&amp;lt;/code&amp;gt; to work within this project area.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Creating Symbolic Links'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_CreateSymbolicLinks.png|frame|center| '''Creating Symbolic Links''' ]]&lt;br /&gt;
&lt;br /&gt;
Enter &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt; to create the symbolic links. The installer then prompts the user for a location to place the links with a default option &amp;lt;code&amp;gt;/usr/local/bin&amp;lt;/code&amp;gt; if you are installing as root, or &amp;lt;code&amp;gt;$HOME/bin&amp;lt;/code&amp;gt; for non root user installation. &lt;br /&gt;
&lt;br /&gt;
If you choose not to create symbolic links and enter &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;, then you can either:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add the installation directory to the shell path.  For example with a bash shell:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=$PATH:&amp;lt;install_dir&amp;gt;/sdk-3.0/bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;or access the SDK commands from the &amp;lt;code&amp;gt;&amp;lt;install_dir&amp;gt;/sdk-3.0/bin/&amp;lt;/code&amp;gt; directory. For example to create a new project area at &amp;lt;code&amp;gt;&amp;lt;project-area_dir&amp;gt;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;install_dir&amp;gt;/sdk-3.0/bin/cl-create-project-area &amp;lt;project-area_dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After creating symbolic links, the installation of OpenClovis SDK is complete. All the required packages and crossbuild toolchains are installed and the directory where you have downloaded the installation packages can be discarded.&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]If your installation is not successful, or if you encounter any problems during the installation, refer to the Chapter [[#Troubleshooting | Troubleshooting]].&lt;br /&gt;
&lt;br /&gt;
===Next Steps===&lt;br /&gt;
&lt;br /&gt;
After completing the Installation, the OpenClovis SDK Documentation set listed in the [[#Related Documents| Related Documents]] section is available in the  &amp;lt;code&amp;gt;doc&amp;lt;/code&amp;gt;  folder located at  &amp;lt;code&amp;gt;&amp;lt;install_dir&amp;gt;/sdk-3.0&amp;lt;/code&amp;gt; directory. &lt;br /&gt;
&lt;br /&gt;
We recommend the following steps to get familiar with our product:&lt;br /&gt;
&lt;br /&gt;
*'''Read and follow the OpenClovis Sample Application Tutorial''' - The ''Sample Application Tutorial'' will step you through the process of creating a high available system. It takes you from model conception all the way through deployment and running of the sytem. After going through this guide you will understand the basics of the OpenClovis offering.&lt;br /&gt;
&lt;br /&gt;
*'''Read and follow the OpenClovis Evaluation System User Guide''' - ''Evaluation System User Guide'' will introduce you to more advanced modelling topics. These topics are introduced incrementally through a series of targeted tutorials. After completing this guide you will be ready to start building your own system.&lt;br /&gt;
&lt;br /&gt;
=='''Troubleshooting'''==&lt;br /&gt;
&lt;br /&gt;
This chapter describes some of the probable errors that you may encounter during the installation. This chapter also provides the solution to these errors.The errors that you may encounter are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''': Installation Failure, during third party installation.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''': You can manually fix this error by getting more information from the corresponding log file under the log directory. You can also send the  &amp;lt;code&amp;gt;log.tar.gz&amp;lt;/code&amp;gt; to support@openclovis.com for more help.&lt;br /&gt;
The installation can be resumed after the errors are fixed. The installer will detect any new updates and proceed with the missing prerequisites.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''':  &amp;lt;code&amp;gt;gcc (pkg-config, perl, md5sum) not found in your PATH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''': Ensure that the directory where the  &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; resides is in the &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; variable.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''':  Not enough space on the target installation directory.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''' : Change the target installation directory to the directory with at least 500MB free disk space.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''':  &amp;lt;code&amp;gt;&amp;lt;WORKING_DIRECTORY&amp;gt;&amp;lt;/code&amp;gt; is read-only.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''': You need to have write permission for the current working directory to extract the contents of the archive, configure, and build. Ensure that you turn ON write permission using  &amp;lt;code&amp;gt;chmod +w ...&amp;lt;/code&amp;gt;  command.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''': md5 checksums are used to check if the packages are correctly downloaded. If they are not downloaded correctly, the system displays the message:  &amp;lt;code&amp;gt;It is not safe to install these packages, please download them again.&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''':The installer checks the integrity of the downloaded packages. If the download is either incomplete or corrupt, download the packages again.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''':  SAFplus Platform fails to start, reporting the underlying SQLite database version used is not-supported.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''': Use SQLite version 3.3.13 or newer. The source code can be downloaded from http://www.sqlite.org/download.html. The user can install the latest version of SQLite if the specified version is &lt;br /&gt;
not present in this repository.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Appendix A: Installing the Prerequisites without Internet Access'''==&lt;br /&gt;
&lt;br /&gt;
Some customers do not want their evaluation system to have internet access for security purposes.  If this is your situation, please consider temporarily enabling internet access while running the &amp;quot;preinstall-&amp;lt;os&amp;gt;&amp;quot; script.  At this point the evaluation system should only have the base OS installed, so there is no proprietary data on the system.  Also note that the &amp;quot;preinstall&amp;quot; scripts are only about a page long so you can easily review them for security purposes.&lt;br /&gt;
&lt;br /&gt;
However, if you still do not want to enable internet access one strategy that can be used is to go to a system with internet access (it must use the same Linux distribution and the same version), download them there, use a USB flash drive to move them to the unconnected system, and then install them on that system.  If this approach is unacceptable (it does still use the internet), then perhaps the Linux distribution you chose is not appropriate -- instead use one that contains all packages on the installation CDROMs.&lt;br /&gt;
&lt;br /&gt;
===Example Using Ubuntu 7.04===&lt;br /&gt;
&lt;br /&gt;
Packages can be downloaded but not installed on Ubuntu by using the &amp;quot;-d&amp;quot; flag to the &amp;quot;apt-get&amp;quot; package manager.  The files are downloaded to &amp;quot;/var/cache/apt/archives&amp;quot;.  It is recommended to remove (or move) all files in this directory first (it is just a cache, and so it will contain any packages that you have previously installed), so that the directory contains just the packages needed for the OpenClovis SDK:&lt;br /&gt;
&lt;br /&gt;
 rm /var/cache/apt/archives/*&lt;br /&gt;
&lt;br /&gt;
Next edit the preinstall-ubuntu.sh script, search for all instances of &amp;quot;apt-get&amp;quot; and add the flags &amp;quot;-d --reinstall&amp;quot; just after the &amp;quot;apt-get&amp;quot; program.  For example:&lt;br /&gt;
&lt;br /&gt;
 apt-get -d --reinstall -y --force-yes install build-essential&lt;br /&gt;
&lt;br /&gt;
Next run this modified script on your internet-connected machine.  This script will download 6MB of files (this list will vary by Linux distribution or version):&lt;br /&gt;
&lt;br /&gt;
 bison_1%3a2.3.dfsg-4build1_i386.deb                           &lt;br /&gt;
 libgdbm-dev_1.8.3-3_i386.deb&lt;br /&gt;
 build-essential_11.3_i386.deb                                 &lt;br /&gt;
 libltdl3-dev_1.5.22-4_i386.deb&lt;br /&gt;
 e2fslibs-dev_1.39+1.40- WIP-2006.11.14+dfsg-2ubuntu1_i386.deb  &lt;br /&gt;
 libperl-dev_5.8.8-7build1_i386.deb&lt;br /&gt;
 e2fsprogs_1.39+1.40-WIP-2006.11.14+dfsg-2ubuntu1_i386.deb     &lt;br /&gt;
 linux-headers-2.6.20-16-generic_2.6.20-16.32_i386.deb&lt;br /&gt;
 flex_2.5.33-10build1_i386.deb                                 &lt;br /&gt;
 gawk_1%3a3.1.5.dfsg-4build1_i386.deb                          &lt;br /&gt;
 gettext_0.16.1-1ubuntu2_i386.deb                              &lt;br /&gt;
 pkg-config_0.21-1build1_i386.deb&lt;br /&gt;
 libdb4.5-dev_4.5.20-1ubuntu1_i386.deb                         &lt;br /&gt;
 uuid-dev_1.2- 1.39+1.40-WIP-2006.11.14+dfsg-2ubuntu1_i386.deb&lt;br /&gt;
&lt;br /&gt;
Now copy these files to a new directory in your unconnected machine:&lt;br /&gt;
&lt;br /&gt;
On the connected machine:&lt;br /&gt;
 root@desktop:/# cp /var/cache/apt/archives/*.deb &amp;lt;your flash media&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On the unconnected machine:&lt;br /&gt;
 root@desktop:/# mkdir /root/pkgs&lt;br /&gt;
 root@desktop:/# cp &amp;lt;your flash media&amp;gt; /root/pkgs/&lt;br /&gt;
&lt;br /&gt;
Finally, install them using the standard &amp;quot;dpkg&amp;quot; package installer:&lt;br /&gt;
&lt;br /&gt;
 root@desktop :/# cd /root/pkgs&lt;br /&gt;
 root@desktop:~/pkgs# dpkg -i *.deb&lt;br /&gt;
 (Reading database ... 113653 files and directories currently installed.)&lt;br /&gt;
 ...&lt;br /&gt;
 root@desktop:~/pkgs#&lt;br /&gt;
&lt;br /&gt;
At this point, you should be done installing the prerequisites!  You should now continue the installation procedure at the step after installing prequisites.&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/relnotes</id>
		<title>Doc:latest/relnotes</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/relnotes"/>
				<updated>2011-10-24T20:10:58Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* Documentation Feedback */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Preface'''==&lt;br /&gt;
&lt;br /&gt;
Welcome to ''OpenClovis Release Notes''. This document provides information about the details of the platforms on which OpenClovis SAFplus Availability/Scalability Platform (the SAFplus Platform for short) and Integrated Development Environment (IDE) have been tested and validated for SDK Release 6.0. It contains the additional features and enhancements of the product since the previous release. It also summarizes the known issues and limitations of the product and provides workaround wherever applicable.&lt;br /&gt;
&lt;br /&gt;
===Key Topics===&lt;br /&gt;
&lt;br /&gt;
''OpenClovis Release Notes'' covers the following topics in details:&lt;br /&gt;
*Tested Platforms&lt;br /&gt;
*What Is New&lt;br /&gt;
*Migration To Latest Version&lt;br /&gt;
*Known Issues&lt;br /&gt;
*Environment Related Observation&lt;br /&gt;
*Documentation Issues&lt;br /&gt;
&lt;br /&gt;
===Audience===&lt;br /&gt;
&lt;br /&gt;
''OpenClovis Release Notes'' addresses system integrators, designers, and system architects. To use SAFplus Platform, you must be aware of the fundamentals of operation, management, and configuration of telecom and networking domains. You must also be familiar with C programming, UML notations, and have basic knowledge of Linux.&lt;br /&gt;
&lt;br /&gt;
===Documentation Conventions===&lt;br /&gt;
&lt;br /&gt;
This guide uses different fonts and symbols to differentiate between document elements and types of information. These conventions are summarized in the following table.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;  width=&amp;quot;680&amp;quot;&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Notation &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Description&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|style=&amp;quot;color:black&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;Code&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
This font denotes the C code provided in various examples.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|Cross reference&lt;br /&gt;
|&lt;br /&gt;
This font denotes a hyperlink. You can click on the hyperlink text to access the reference location, which can be either a section within the User Guide or a URL link. A cross reference refers to a section name and accesses the first page of that section.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''Bold Text''' &lt;br /&gt;
|&lt;br /&gt;
Menu items and button names.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''''Italic Text''''' &lt;br /&gt;
|&lt;br /&gt;
Variables for which you enter values.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]This indicates the presence of notes or annotations, related to the context of the document.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Caution.png]]This indicates that certain precautionary measures must be taken before performing a particular task.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Info.png]]This indicates that additional information is provided to you.&lt;br /&gt;
&lt;br /&gt;
===Related Documents===&lt;br /&gt;
&lt;br /&gt;
For additional information about OpenClovis products, refer to the following guides:&lt;br /&gt;
* '''SAFplus Platform SA Forum Compliance''' describes the level of compliance of OpenClovis SAFplus Platform and its Application Programming Interface (API) with the relevant Service Availability Forum Specifications.&lt;br /&gt;
* '''SAFplus Platform Installation Guide''' provides the system requirements, installation procedure for OpenClovis SAFplus Platform, IDE, and the Evaluation System.&lt;br /&gt;
* '''SAFplus Platform Sample Application Tutorial''' explains the steps to create and build a sample model using OpenClovis IDE and OpenClovis SAFplus Platform. It also provides troubleshooting information for this process. This provides the logical first step in understanding the SAFplus Platform offering.&lt;br /&gt;
* '''SAFplus Platform Evaluation System User Guide''' provides all the required information to configure and run the sample models packaged within the Evaluation System. This document also provides good understanding of OpenClovis SAFplus Platform's functionality. This is the natural follow on to the ''OpenClovis Sample Application Tutorial'' as it builds on the example created in that document. &lt;br /&gt;
* '''SAFplus Platform SDK User Guide''' provides information about SAFplus Availability/Scalability Platform architecture, various SAFplus Platform components, and their interactions. This guide helps you to configure the OpenClovis SAFplus Platform components, compile, and execute the SAFplus Platform code to build your custom application.&lt;br /&gt;
* '''SAFplus Platform IDE User Guide''' describes the usage of Integrated Development Environment (IDE), a graphical development environment that complements the SAFplus Platform. This guide helps you to understand how to use the various features of the IDE to build the application.&lt;br /&gt;
* '''SAFplus Platform Log Tool User Guide''' provides information about the usage of OpenClovis Log Tool. OpenClovis Log Tool is an interactive utility that allows you to view binary log files in a readable format and hence monitor system errors, warnings, and other log information. Log Tool allows you to format the &amp;lt;code&amp;gt;.log&amp;lt;/code&amp;gt; files and filter them to view the required entries.&lt;br /&gt;
* '''SAFplus Platform API Reference Guide''' is provided for each component. It describes the Application Programming Interface (API), Service Model, and Management Information Model of the various OpenClovis Application Service Platform (SAFplus Platform) services. It helps the developer to understand the capabilities of the SAFplus Platform services and the APIs provided by these services.&lt;br /&gt;
* '''SAFplus Platform Console Reference Guide''' provides details about managing applications built on SAFplus Platform using the SAFplus Platform runtime debug console commands. SAFplus Platform Console commands can be used to manage, monitor, and test your application.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Online Technical Support===&lt;br /&gt;
&lt;br /&gt;
OpenClovis customers and partners can register on our Web site and receive personalized services and information. If you need any support or assistance while working on OpenClovis products, you can access the following: URL: http://www.openclovis.com. Send your queries to: support@openclovis.com. Open source community support is available at: http://www.openclovis.org/forum.&lt;br /&gt;
&lt;br /&gt;
===Documentation Feedback===&lt;br /&gt;
&lt;br /&gt;
We are interested in hearing from our customers on the documentation provided with the product. Let us know your comments and suggestions on improving the documentation at OpenClovis Inc. Send your comments to: support@openclovis.com. Or even better, edit (or comment in) the page on our documentation wiki located at [http://help.openclovis.com http://help.openclovis.com].&lt;br /&gt;
&lt;br /&gt;
=='''Tested Platforms'''==&lt;br /&gt;
&lt;br /&gt;
This chapter provides the details of the platforms on which OpenClovis SAFplus Platform have been tested and validated.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Tested Platform Configurations''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;150&amp;quot;| Platform&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Configuration&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Hardware&lt;br /&gt;
|&lt;br /&gt;
* ATCA 5U Chassis - Schroff, ASIS&lt;br /&gt;
* ATCA 12U Chassis - Schroff, Sanmina, HP, Sun Netra, Radisys, Huawei Tecal Server&lt;br /&gt;
* Pigeon Point Systems ShMM300 and ShMM500 based Shelf Controllers&lt;br /&gt;
* Radisys Promentum 60x0 and its 2100 Switch/Shelf Controller blades&lt;br /&gt;
* CPU Blades:&lt;br /&gt;
** Intel Xeon based server cards&lt;br /&gt;
** Intel Pentium and Xeon based desktops and rack mount servers (RMS)&lt;br /&gt;
** Intel Itanium based RMS&lt;br /&gt;
** AMD Opteron based ATCA cards&lt;br /&gt;
** AMD Opteron and Athlon based desktops&lt;br /&gt;
** PowerPC based AMCs&lt;br /&gt;
** PowerPC based desktops&lt;br /&gt;
** Huawei Tecal BH23&lt;br /&gt;
** Sun 3020 and 3090&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Software&lt;br /&gt;
|&lt;br /&gt;
* Wind River PNE-LE 1.2 (2.6.10 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 1.3 (2.6.14 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 1.4 (2.6.14 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 2.0 (2.6.21 kernel) on CPU blades&lt;br /&gt;
* MontaVista Linux Carrier Grade Edition 5.0 (2.6.21 kernel)on CPU Blades&lt;br /&gt;
* QNX Neutrino RTOS 6.3.2&lt;br /&gt;
* Pigeon Point Systems Shelf Manager version 2.2.1 on ShMM300, ShMM500&lt;br /&gt;
* SCM software version 1.7 on ATCA 2100 Shelf Manager&lt;br /&gt;
* OpenHPI 2.8.1 and 2.10.2&lt;br /&gt;
* Radisys HPI Client Library (HCL) version 1.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For more details on the hardware and software requirements and the steps to install OpenClovis SAFplus Platform and IDE, refer to ''OpenClovis Installation Guide''.&lt;br /&gt;
&lt;br /&gt;
=='''What Is New'''==&lt;br /&gt;
&lt;br /&gt;
This chapter outlines the new features and enhancements provided by OpenClovis SAFplus Platform and IDE for Release 5.0.&lt;br /&gt;
&lt;br /&gt;
===Features of OpenClovis SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
====General Features====&lt;br /&gt;
&lt;br /&gt;
* '''Support for Wind River PNELE 2.0''': OpenClovis SDK can seamlessly build SAFplus Platform and binaries for Wind River Platform for Network Equipment Linux Edition 2.0 on all supported SDK platforms, either using the build tool-chain of OpenClovis or of the development environment of Wind River.&lt;br /&gt;
&lt;br /&gt;
====High Availability (HA)====&lt;br /&gt;
&lt;br /&gt;
*'''ISSU - In Service Software Upgrade'''&lt;br /&gt;
Supports middleware upgrade in a rolling (in-service) or single-step mode.&lt;br /&gt;
&lt;br /&gt;
'''Single-Step'''&lt;br /&gt;
For deployment of non-backwards compatible software, or rapid deployment of software.  This method stops the relevant services on all nodes (causing an outage) and then upgrades that software and restarts.  Note that services are stopped at various granularity levels depending on what is being upgraded.  In other words, application A can be taken out-of-service and upgraded across the cluster without affecting application B running on the same nodes.&lt;br /&gt;
&lt;br /&gt;
'''Inservice Rolling'''&lt;br /&gt;
This is the most commonly known telecom quality upgrade method.  For deployment of backwards-compatible software across the cluster, this method stops service in one &amp;quot;upgrade unit&amp;quot; at a time, upgrades the software and restarts before stopping the next &amp;quot;upgrade unit&amp;quot;.  This process continues iteratively until the entire cluster is upgraded.  Since the available redundant capacity takes over for the unit being upgraded service will be unaffected.&lt;br /&gt;
&lt;br /&gt;
====Infrastructure and Communications====&lt;br /&gt;
&lt;br /&gt;
====Group Membership Service (GMS) over TIPC====&lt;br /&gt;
&lt;br /&gt;
By default GMS/openais is now compiled to run over TIPC.&lt;br /&gt;
&lt;br /&gt;
====SAF Message Service====&lt;br /&gt;
&lt;br /&gt;
SAF messaging data types and APIs supported by OpenClovis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''classes/types:'''&lt;br /&gt;
&lt;br /&gt;
*SaMsgMessageT&lt;br /&gt;
*SaMsgHandleT&lt;br /&gt;
*SaMsgQueueStatusT&lt;br /&gt;
*SaMsgQueueHandleT&lt;br /&gt;
*SaMsgSenderIdT&lt;br /&gt;
*SaMsgQueueCreationAttributesT&lt;br /&gt;
*SaMsgQueueOpenFlagsT&lt;br /&gt;
*SaMsgQueueGroupPolicyT&lt;br /&gt;
*SaMsgQueueGroupNotificationBufferT&lt;br /&gt;
*SaMsgQueueGroupNotificationT&lt;br /&gt;
*SaMsgQueueUsageT&lt;br /&gt;
*SaMsgCallbacksT&lt;br /&gt;
*SaMsgMessageReceivedCallbackT&lt;br /&gt;
&lt;br /&gt;
*'''APIs:'''&lt;br /&gt;
&lt;br /&gt;
*saMsgMessageSend&lt;br /&gt;
*saMsgMessageSendAsync&lt;br /&gt;
*saMsgQueueOpen&lt;br /&gt;
*saMsgQueueClose&lt;br /&gt;
*saMsgQueueStatusGet&lt;br /&gt;
*saMsgMessageGet&lt;br /&gt;
*saMsgMessageDataFree&lt;br /&gt;
*saMsgQueueGroupCreate&lt;br /&gt;
*saMsgQueueGroupInsert&lt;br /&gt;
*saMsgQueueGroupTrack&lt;br /&gt;
*saMsgQueueGroupNotificationFree&lt;br /&gt;
*saMsgInitialize&lt;br /&gt;
*saMsgFinalize&lt;br /&gt;
*saMsgDispatch&lt;br /&gt;
&lt;br /&gt;
====SAF Component cleanup script support====&lt;br /&gt;
&lt;br /&gt;
5.0 introduces support to configure cleanup commands for SA-AWARE components using the Openclovis IDE. The cleanup command is invoked by AMF on component cleanup or abrupt terminations.&lt;br /&gt;
&lt;br /&gt;
===System Management===&lt;br /&gt;
&lt;br /&gt;
*Support of net-snmp 5.4.2.&lt;br /&gt;
*SNMP Traps in 64 Bit architectures.&lt;br /&gt;
&lt;br /&gt;
===Platform Management===&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform provides pre-integrated support for commonly used ATCA platforms. All service affecting events reported by the shelf manager via HPI are intercepted and service on affected hardware is migrated to standby equipment, ensuring continuity of service. &lt;br /&gt;
&lt;br /&gt;
This support is provided with the '''Platform Support Package (PSP)''' for Piegon Point Shelf manager 500ShMM via openHPI. &lt;br /&gt;
&lt;br /&gt;
PSP is available as a separate product, please contact OpenClovis Sales for further information.&lt;br /&gt;
&lt;br /&gt;
===Features of OpenClovis IDE===&lt;br /&gt;
&lt;br /&gt;
* '''Running SAFplus Platform without manageability components''': IDE is having the support for enable/disable SAFplus Platform components. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
* '''AMF Clean-up script''': IDE is having support to specify the cleanup command in SAF Component. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
* '''Versioning the Configuration Files''': IDE is having support for versioning the configuration files.&lt;br /&gt;
* '''SAF Messaging''': IDE is having support to enable the SAF messaging. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform Run-Time Director===&lt;br /&gt;
&lt;br /&gt;
A new product, the SAFplus Platform Run-Time Director(ARD), provides cluster management of the SAFplus Platform via a web interface.  This new product is available separately, please contact OpenClovis for demonstration and evaluation.  The ARD has the following features:&lt;br /&gt;
&lt;br /&gt;
* Software Distribution:  Allows individual applications to be packaged in a &amp;quot;bundle&amp;quot; and be deployed to any set of nodes in the cluster.&lt;br /&gt;
* Inservice Software Upgrade: Supports application upgrade in a rolling (in-service) or single-step mode. &lt;br /&gt;
* WYSIWYG: Provides intuitive cluster management via an HTTP (web) interface.&lt;br /&gt;
* AJAX: Displays all SAF AMF entities and their current status -- uses asynchronous Javascript requests to dynamically update browser when changes occur.&lt;br /&gt;
* Dynamic AMF:  Allows modification of AMF entity state and supports creation/deletion of AMF entities.&lt;br /&gt;
* High Availability:  The ARD runs in unprotected or 2N redundancy mode.&lt;br /&gt;
* Python AMF API:  Provides an easy-to-use CLI/programmatic API for cluster management&lt;br /&gt;
* Easy installation:  The ARD can install itself into a running SAFplus Platform model, and therefore requires no changes to your existing model.&lt;br /&gt;
* Extensible: The ARD is built on top of TurboGears, a popular open source web mega-framework.  Thus it provides a basis and example for your custom SaaS or EMS project.&lt;br /&gt;
* Integration of Platform Support Package (PSP), provides chassis configuration through OpenHPI.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Documentation===&lt;br /&gt;
&lt;br /&gt;
* OpenClovis Documentation is provided in two formats now, PDF and HTML. They both contain the same information.&lt;br /&gt;
* A new ''OpenClovis SA Forum Compliance'' document has been added&lt;br /&gt;
* As a courtesy, all relevant SA Forum specifications are supplied as part of our OpenClovis documentation package (only in PDF format).&lt;br /&gt;
* A new ''OpenClovis Sample Application Tutorial'' has been added, replacing the former Modeling Tutorial. The new document provides explanation for the various steps involved in creating and running a new application.&lt;br /&gt;
* The ''OpenClovis SDK User Guide'' has been extended to cover many additional topics, including:&lt;br /&gt;
** Communication infrastructure&lt;br /&gt;
** Hardware platform support&lt;br /&gt;
** How to debug SAFplus Platform based applications&lt;br /&gt;
** Build and deployment&lt;br /&gt;
* The ''OpenClovis API Reference Guide'' has been significantly revised:&lt;br /&gt;
** Numerous coding examples&lt;br /&gt;
** New reference pages for API error codes for easy lookup&lt;br /&gt;
** HTML version of API Refernce Guide is heavily cross-referenced, allowing easy navigation between the various programming construcs&lt;br /&gt;
* New, complete ''OpenClovis SAFplus Platform Console Reference Guide'' as a separate document&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]From this release, the ''Debug CLI'' has been renamed to ''SAFplus Platform Console''.&lt;br /&gt;
&lt;br /&gt;
=='''Migration To Latest Version'''==&lt;br /&gt;
&lt;br /&gt;
Migration of a project or model from an earlier version of the OpenClovis IDE to the most recent version is performed automatically when the model it opened for the first time in the newer vesion. The IDE auto-detects the project's version and changes the internal files so that the information is in valid format and can be read by the current version. It also provides an option to create a backup of the project while performing the migration. For more information, refer to ''OpenClovis IDE User Guide'', Section ''Migrating Project''. IDE supports migration from R2.3 and above.&lt;br /&gt;
&lt;br /&gt;
Any issues regarding migration from a previous version of the IDE are documented below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Change in Log File Locations===&lt;br /&gt;
&lt;br /&gt;
As of release 3.0 all SAFplus Platform runtime log files are created in the &amp;lt;code&amp;gt;var/log&amp;lt;/code&amp;gt; subdirectory of the SAFplus Platform install directory. It is recommended that you update existing models to also use this directory. To update an existing model edit the clLog.xml file in the model's src/config directory. Change all references of '''.:log''' in the &amp;lt;code&amp;gt;&amp;lt;fileLocation&amp;gt;&amp;lt;/code&amp;gt; elements&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;fileLocation&amp;gt;.:log&amp;lt;/fileLocation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to '''.:var/log'''&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;fileLocation&amp;gt;.:var/log&amp;lt;/fileLocation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the model is rebuilt and deployed these new settings will take effect.&lt;br /&gt;
&lt;br /&gt;
===gmsConfig.xml file===&lt;br /&gt;
&lt;br /&gt;
Models of R2.3 may not contain the gmsConfig.xml file if GMS configuration is not done. If you migrate this project you will get error message saying that Migration was unable to create this file. But this is not going to affect further use of model. Model will be OK and user can make changes to it from IDE, generate source, build it, etc without any problem.&lt;br /&gt;
&lt;br /&gt;
Although this error is not going to affect the functionality of the model, there is a work around for this. Before migrating your model, just open up the model in your old IDE setup. Launch &amp;quot;SAFplus Platform Component Configuration&amp;quot; dialog from the Clovis menu. Press OK. Now just migrate the model with new IDE setup, you will not get this error. Bug has been raised for this and it will be fixed in next release.&lt;br /&gt;
&lt;br /&gt;
=='''Known Issues'''==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the known issues in the current release and provides the associated workarounds. These issues arise due to deviation from the normal functioning of the system or as a result of an unexpected behavior of a component or a service.&lt;br /&gt;
&lt;br /&gt;
===Known Issues of OpenClovis SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
Following are the known issues for OpenClovis SAFplus Platform:&lt;br /&gt;
&lt;br /&gt;
*'''Infrastructure and Communications'''&lt;br /&gt;
** '''TIPC address:''' TIPC with 1.5.12 versions was found to give problems (link unstable) when you have 2 different TIPC netids configured for the same TIPC address. This issue is not seen with the 1.7.x TIPC releases, but in general we recommend you to keep the TIPC addresses unique and not collide with the same addresses on nodes configured with different TIPC netids. One of the symptoms  of this is that the TIPC link between 2 machine starts going UP and DOWN continuously when there is another machine in the network, whose TIPC address is conflicting with address of one of those 2 machines. The behavior can be observed through continuous execution of command &amp;quot;tipc-config -l&amp;quot; or through &amp;quot;dmesg&amp;quot;.&lt;br /&gt;
** In general, TIPC 1.5.XX has been found to be unstable, especially under high multicast load, and should not be used in production environments.&lt;br /&gt;
&lt;br /&gt;
** '''Bug ID #7269'''  A cluster having a mixture of 32bit little endian, 32bit big endian and 64 bit little endian machines/nodes may find that the GMS service in inadvertently terminates.&lt;br /&gt;
*** '''Workaround''' - None&lt;br /&gt;
** '''aspinfo known issues:''' (1) On some systems, especially systems with Python version 2.3, aspinfo can be slow to respond. (2) Some corner cases may not be properly handled and aspinfo may prematurely exit, dumping its Python stack.&lt;br /&gt;
&lt;br /&gt;
* '''System Management'''&lt;br /&gt;
** '''Bug ID #7313''' If an Alarm Server is restarted after it published an alarm, it won't allow to clear/publish that alarm again.&lt;br /&gt;
*** '''Workaround''' - Currently there is no workaround.&lt;br /&gt;
&lt;br /&gt;
* '''SAF Compliance'''&lt;br /&gt;
** '''Deviation from SAF in Event Service:''' Event Service does not yet support Event Retention as specified in SAF specification. The retention time specified in the clEventPublish() API would have no effect.&lt;br /&gt;
** '''Bug in SAF specificaion B11:''' The clEventDataGet() API of Event Service is in compliance with the SAF specification B11. This allows the user to either allocate memory for the event payload or obtain it from the API by passing a pointer. The latter is not possible with this API as the argument needs to be a pointer to a pointer which is not the case. As per the new specification and the recommended way the user is always required to allocate and free the memory.&lt;br /&gt;
&lt;br /&gt;
===Known Issues of OpenClovis IDE===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Bug ID # 6543: X Error in Ubuntu Installation.''' Starting the IDE in '''Ubuntu''' installation may result some X errors in the console. This is not an IDE issue, this will not affect any of the IDE functionalities.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Workaround''' - See the ''Limitations'' section of the ''OpenClovis IDE User Guide''.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''SNMP MIB Enumerated Integer Construct Limitations''': During SNMP code generation all enumerated integer labels are converted to &amp;lt;code&amp;gt;#define&amp;lt;/code&amp;gt; statements. The constant names used in these statements are the enumerated integer labels converted to upper case. Because of this the all labels used within an enumerated integer construct must be unique regardless of case.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;'''SNMP MIB V1 TRAP-TYPE Construct Not Supported''': Due to an issue in the Net-SNMP mib2c compiler code generation for MIBs using the V1 TRAP-TYPE construct does not work properly.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Workaround''' - To generate trap code from an SNMP MIB use the SNMP V2 NOTIFICATION-TYPE construct.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Known Issues of Install Package===&lt;br /&gt;
&lt;br /&gt;
* '''Bug ID # 6749: Potential conflict with net-snmp package on local system''': In certain rare instances, building OpenHPI from the included third-party packages during SDK installation fails owing to a conflict with an already-installed version of NetSNMP on the system.  In these instances, it is recommended that NetSNMP be removed from the local system before installing OpenClovis SDK, and that it be reinstalled after completing the SDK installation.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Red Hat Enterprise 4''': On a Red Hat Enterprise Linux 4 system, the 'Development Tools' subset of packages must be installed to cover the requirements for installing OpenClovis SDK.  In general, an installation with the default package set contains all requirements for installation.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Fedora Core 6''': On a Fedora Core 6 system, installation of OpenClovis SAFplus Platform automatically builds and installs the TIPC opensource package.  To build TIPC, the kernel headers must be present and so these are automatically installed (by our ./preinstall-fedora-core.sh script) using the &amp;quot;yum install kernel-devel&amp;quot; command.  On rare configurations, this command does not work correctly.  It is supposed to install headers so that the symbolic link located at &amp;quot;/lib/modules/`uname -r`/build&amp;quot; points to a valid directory of Linux header files.  However, on some systems this symbolic link points to &amp;quot;/usr/src/kernels/2.6.22.14-72.fc6-i586&amp;quot; but the headers are actually installed in &amp;quot;/usr/src/kernels/2.6.22.14-72.fc6-i686&amp;quot;  (note 'i586' vs 'i686').  To resolve this problem, change the symbolic link to point to the correct directory name, and then restart the OpenClovis SAFplus Platform installation.&lt;br /&gt;
&lt;br /&gt;
* '''Configuring TIPC and assigning the SAFplus Platform node address''' to an OpenClovis SAFplus Platform is done by SAFplus Platform start up script. But if manual configuration of TIPC is allowed.  Misconfiguration (such as assigning 2 nodes the same TIPC address) will result in an unstable system. When this happens the whole system (all the SAFplus Platform nodes including the ones which are already up and running properly) have to be brought down, the TIPC kernel driver unloaded (to remove its configuration) and the system restarted.&lt;br /&gt;
&lt;br /&gt;
* '''Installation of SQLite using Preinstall script''': The Preinstall script installs SQLite by default as database engine. It locates SQLite - if it is already installed - without verifying version number. If its version is older than 3.3.13, then SAFplus Platform will fail to start.&lt;br /&gt;
** '''Workaround''' - Use SQLite 3.3.13 or newer. The source code can be downloaded from http://www.sqlite.org/download.html. The user can install the latest version of SQLite if its not present in the repository.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Solaris 10/SPARC (beta)''': Installation of OpenClovis SAFplus Platform requires the following third party packages installed via either installation media or using pkgadd with packages obtained from http://www.sunfreeware.com/.  Missing third-party packages may cause unpredictable behavior during installation and SDK use.&lt;br /&gt;
** db-4.2.52&lt;br /&gt;
** fileutils&lt;br /&gt;
** flex&lt;br /&gt;
** gcc-3.4.2&lt;br /&gt;
** gdbm-1.8.3&lt;br /&gt;
** glib-2.14.1&lt;br /&gt;
** gmake&lt;br /&gt;
** gtar&lt;br /&gt;
** libintl&lt;br /&gt;
** libiconv&lt;br /&gt;
** ncurses&lt;br /&gt;
** openssl&lt;br /&gt;
** pkgconfig&lt;br /&gt;
** python-2.5.1&lt;br /&gt;
** readline&lt;br /&gt;
** snprintf&lt;br /&gt;
** tipc-solaris-1.7.5 or SUNWtipc&lt;br /&gt;
** SUNWbtool&lt;br /&gt;
** SUNWsprot&lt;br /&gt;
** SUNWhea&lt;br /&gt;
** wget&lt;br /&gt;
&lt;br /&gt;
=='''Environment Related Observation'''==&lt;br /&gt;
&lt;br /&gt;
* '''Bug ID #7549''' When SAFplus Platform is running in non simulation mode, if SAFplus Platform is started from one sandbox, then it can be stopped/zapped from another sandbox.&lt;br /&gt;
&lt;br /&gt;
===Enabled Firewall Can Cause SAFplus Platform to Shutdown===&lt;br /&gt;
The enablement of a firewall on a system running a deployed SAFplus Platform image can cause the software to shutdown. An indication that you may be running into this problem is if you see an entry similar to the following in your log file (in the log file it is one line):&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Wed Sep 26 15:06:54 2007   (SCNodeI0.10499 : GMS.---.---.00036 :  ERROR)&lt;br /&gt;
   [clGmsEngine.c:448] No nodes in the cluster view to run leader &lt;br /&gt;
   electionLeader Election Aborted&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
To resolve this problem disable all filtering in the Netfilter framework by issuing the following command.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -F&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reusing A Project Area With New Version of OpenClovis SDK===&lt;br /&gt;
Every Project Area is associated with an installation of OpenClovis SDK at a given location.  If one elects to reinstall the SDK at a different location or install a newer version at a different location, the project area will stay associated with the original SDK location.  This allows one to work with multiple versions of the SDK simultaneously.&lt;br /&gt;
In order to use an existing project area with a different or moved installation of OpenClovis SDK, remove the &amp;lt;code&amp;gt;.config&amp;lt;/code&amp;gt; file from your project area directory and re-run &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt; as you normally would to work with a model.&lt;br /&gt;
&lt;br /&gt;
===Running Multiple SAFplus Platform Clusters in the same Subnet===&lt;br /&gt;
If you are running multiple SAFplus Platform clusters within the same subnet, please ensure that the &amp;lt;code&amp;gt;TIPC network ID&amp;lt;/code&amp;gt; selected for each cluster is unique.&lt;br /&gt;
&lt;br /&gt;
=='''Documentation Issues'''==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the known issues with the OpenClovis Documentation shipped along with the product.&lt;br /&gt;
&lt;br /&gt;
* Formatting issues&lt;br /&gt;
** Following cross-references pointing to a heading, the PDF viewer will jump to the end of the previous page if the heading is on the top of a page.&lt;br /&gt;
** Firefox web browsers sometimes do not correctly jump to intra-page anchors when the user clicks on a reference. This is a known issue with Firefox. The workaround is to click on Back button and then on the reference again. The browser jumps to the correct position for the 2nd time.&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/installguide</id>
		<title>Doc:latest/installguide</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/installguide"/>
				<updated>2011-10-24T20:07:49Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* Preface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Preface'''==&lt;br /&gt;
&lt;br /&gt;
''SAFplus Platform Installation Guide''  guide provides the system requirements, installation procedure for SAFplus Platform software development kit (SDK) and the Evaluation System.&lt;br /&gt;
&lt;br /&gt;
===Audience===&lt;br /&gt;
&lt;br /&gt;
''SAFplus Platform Installation Guide''  is designed for system integrators, designers, and system architects. To use the product, you must be aware of the fundamentals of design, development, operation, management and configuration of telecommunication and networking systems. You must also be familiar with C programming, UML notations, and have the basic knowledge of Linux.&lt;br /&gt;
&lt;br /&gt;
===Documentation Conventions===&lt;br /&gt;
&lt;br /&gt;
This guide uses different fonts and symbols to differentiate between document elements and types of information. These conventions are summarized in the following table.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Notation &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Description&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|style=&amp;quot;color:black&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;Code&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
This font denotes the C code provided in various examples.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|Cross reference&lt;br /&gt;
|&lt;br /&gt;
This font denotes a hyperlink. You can click on the hyperlink text to access the reference location, which can be either a section within the User Guide or a URL link.A cross reference refers to a section name and accesses the first page of that section.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''Bold Text''' &lt;br /&gt;
|&lt;br /&gt;
Menu items and button names.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''''Italic Text''''' &lt;br /&gt;
|&lt;br /&gt;
Variables for which you enter values.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]This indicates the presence of notes or annotations, related to the context of the document.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Caution.png]]This indicates that certain precautionary measures must be taken before performing a particular task.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Info.png]]This indicates that additional information is provided to you.&lt;br /&gt;
&lt;br /&gt;
===Related Documents===&lt;br /&gt;
&lt;br /&gt;
For additional information about OpenClovis products, refer to the following guides:&lt;br /&gt;
* '''[[Doc:latest/relnotes | SAFplus Platform Release Notes]]''' provides information about the software and the hardware required to install OpenClovis Application Service Platform (SAFplus Platform) and Integrated Development Environment (IDE). It summarizes the additional features and enhancements of the product since the previous release. It also summarizes the issues and limitations of the product and provides workarounds wherever applicable.&lt;br /&gt;
* '''[[Doc:latest/safcompliance | SAFplus Platform SA-Forum Compliance]]''' describes the level of compliance of OpenClovis SAFplus Platform and its Application Programming Interface (API) with the relevant Service Availability Forum Specifications.&lt;br /&gt;
* '''[[Doc:latest/installguide | SAFplus Platform Installation Guide]]''' provides the system requirements, installation procedure for OpenClovis SAFplus Platform, IDE, and the Evaluation System.&lt;br /&gt;
* '''[[Doc:latest/tutorial | SAFplus Platform Sample Application Tutorial]]''' explains the steps to create and build a sample model using OpenClovis IDE and OpenClovis SAFplus Platform. It also provides troubleshooting information for this process. This provides the logical first step in understanding the SAFplus Platform offering.&lt;br /&gt;
* '''[[Doc:latest/evalguide | SAFplus Platform Evaluation System User Guide]]''' provides all the required information to configure and run the sample models packaged within the Evaluation System. This document also provides good understanding of OpenClovis SAFplus Platform's functionality. This is the natural follow on to the ''OpenClovis Sample Application Tutorial'' as it builds on the example created in that document. &lt;br /&gt;
* '''[[Doc:latest/sdkguide | SAFplus Platform SDK User Guide]]''' provides information about SAFplus Availability/Scalability Platform architecture, various SAFplus Platform components, and their interactions. This guide helps you to configure the OpenClovis SAFplus Platform components, compile, and execute the SAFplus Platform code to build your custom application.&lt;br /&gt;
* '''[[Doc:latest/ideguide | SAFplus Platform IDE User Guide]]''' describes the usage of Integrated Development Environment (IDE), a graphical development environment that complements the SAFplus Platform. This guide helps you to understand how to use the various features of the IDE to build the application.&lt;br /&gt;
* '''[[Doc:latest/logtoolguide | SAFplus Platform Log Tool User Guide]]''' provides information about the usage of OpenClovis Log Tool. OpenClovis Log Tool is an interactive utility that allows you to view binary log files in a readable format and hence monitor system errors, warnings, and other log information. Log Tool allows you to format the &amp;lt;code&amp;gt;.log&amp;lt;/code&amp;gt; files and filter them to view the required entries.&lt;br /&gt;
* '''SAFplus Platform API Reference Guide [http://www.openclovis.org/doc/latest/apirefs/index.html]''' is provided for each component. It describes the Application Programming Interface (API), Service Model, and Management Information Model of the various OpenClovis Application Service Platform (SAFplus Platform) services. It helps the developer to understand the capabilities of the SAFplus Platform services and the APIs provided by these services.&lt;br /&gt;
* '''[[SAFplus Platform Console Reference Guide]]''' provides details about managing applications built on SAFplus Platform using the SAFplus Platform runtime debug console commands. SAFplus Platform Console commands can be used to manage, monitor, and test your application.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Online Technical Support===&lt;br /&gt;
&lt;br /&gt;
OpenClovis customers and partners can register on our Web site and receive personalized services and information. If you need any support or assistance while working on OpenClovis products, you can access the following: URL: http://www.openclovis.com. Send your queries to: support@openclovis.com. Open source community support is available at: http://www.openclovis.org/forum.&lt;br /&gt;
&lt;br /&gt;
===Documentation Feedback===&lt;br /&gt;
&lt;br /&gt;
We are interested in hearing from our customers on the documentation provided with the product. Let us know your comments and suggestions on improving the documentation at OpenClovis Inc. Send your comments to: support@openclovis.com. Post your feedback on documentation at: http://www.openclovis.org/forum.&lt;br /&gt;
&lt;br /&gt;
=='''Prerequisites to Install'''==&lt;br /&gt;
&lt;br /&gt;
This chapter provides an overview of the OpenClovis SDK solution comprising OpenClovis SAFplus Platform and IDE. It also provides the hardware and software requirements for running OpenClovis SDK and the Evaluation System.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
&lt;br /&gt;
OpenClovis provides a modular and cost-effective software platform for creating next-generation communication systems. OpenClovis SDK is designed for solution integrators, network equipment manufacturers (NEPs), and telecommunication equipment manufacturers (TEMs) to facilitate the creation of a broad range of telecommunication devices, including routers, switches, media gateways and wireless infrastructure nodes.&lt;br /&gt;
&lt;br /&gt;
OpenClovis fits seamlessly with various distributions of Linux and hardware platforms such as AdvancedTCA, BladeCenter T, and other off-the-shelf proprietary hardware.&lt;br /&gt;
&lt;br /&gt;
The OpenClovis solution comprises OpenClovis SAFplus Platform and OpenClovis IDE.&lt;br /&gt;
&lt;br /&gt;
'''OpenClovis Application Service Platform (SAFplus Platform)'''  is middleware that offers a comprehensive set of modular, portable, reusable software components designed to provide system management and high availability functionality. OpenClovis SAFplus Platform is the run-time part of the OpenClovis offering. It provides run-time services for your value add applications, offering a layered, hardware-platform independent application environment.&lt;br /&gt;
&lt;br /&gt;
'''OpenClovis Integrated Development Environment (IDE)'''  is designed to simplify and accelerate the development of application service platforms for the telecommunication marketplace. Coupled with the OpenClovis SAFplus Platform, this intuitive software solution streamlines the process of specifying the information model, high availability (HA) aspects, and the communication infrastructure of a system. OpenClovis IDE stores all information describing a project in well defined XML files that can be modified by the user. Modeling of system resources and relationships are specified using a graphical UML editor.&lt;br /&gt;
&lt;br /&gt;
'''OpenClovis Evaluation System'''  is a evaluation sample system based on SAFplus Platform that provides the user with a better understanding of the scope of the product, usage patterns, its quality and usability.&lt;br /&gt;
&lt;br /&gt;
===Development Host Requirements===&lt;br /&gt;
&lt;br /&gt;
This section provides the hardware and software requirements for installing OpenClovis SAFplus Platform and IDE. It is not necessary to install OpenClovis IDE on the target host, as all the modeling activities are performed on the development host. The system requirements for the development host is summarized in Table [[#Table_SysReq_DevHost|System Requirements for a Development Host]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Table_SysReq_DevHost&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;600&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''System Requirements for a Development Host'''&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;150&amp;quot;| Requirement Type&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Requirements&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Hardware&lt;br /&gt;
|&lt;br /&gt;
* Intel Pentium II (or higher)&lt;br /&gt;
* Hard Disk - 10 GB (minimum suggested)&lt;br /&gt;
* RAM - 512 MB (minimum suggested)&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Linux Distributions&lt;br /&gt;
|&lt;br /&gt;
* Red Hat Enterprise Linux 4&lt;br /&gt;
* Ubuntu Linux&lt;br /&gt;
* CentOS 4.0 &lt;br /&gt;
* Gentoo Linux&lt;br /&gt;
* Fedora Linux&lt;br /&gt;
* Yellow Dog Linux 4&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;br&amp;gt;Third Party Packages &lt;br /&gt;
|&lt;br /&gt;
* glib-2.0 - 2.6.0&lt;br /&gt;
* glibc 2.3.2&lt;br /&gt;
* gcc 3.2.3&lt;br /&gt;
* beecrypt&lt;br /&gt;
* gdbm 1.8.0&lt;br /&gt;
* net-snmp 5.4&lt;br /&gt;
* openhpi 2.8.1&lt;br /&gt;
* openhpi-subagent 2.3.4&lt;br /&gt;
* Gtk&lt;br /&gt;
* Eclipse SDK 3.2.2&lt;br /&gt;
* EMF SDK 2.2.2&lt;br /&gt;
* GEF SDK 3.2.2&lt;br /&gt;
* JRE 1.5.0_03&lt;br /&gt;
* Python 2.4.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]The OpenClovis SDK installation process verifies the Third Party Packages, and installs any missing packages automatically, as a part of the SDK Installation.&lt;br /&gt;
&lt;br /&gt;
===Target Host Requirements===&lt;br /&gt;
&lt;br /&gt;
This section provides the hardware and software requirements for installing OpenClovis SAFplus Platform on the target host. These requirements are summarized in Table [[#Table_SysReq_TargetPlatform|System Requirements for the Target Platform]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Table_SysReq_TargetPlatform&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;600&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''System Requirements for the Target Platform''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;150&amp;quot;| Requirement Type&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Requirements&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Hardware&lt;br /&gt;
|&lt;br /&gt;
'''ATCA Chassis''' &lt;br /&gt;
* CPU Types: Intel Xeon, AMD64, Itanium2&lt;br /&gt;
* Blades: Intel MPCBL0001, Intel MPCBL0030, Intel MPCBL0040, Huawei Tel8000&lt;br /&gt;
* Shelf Management: Pigeon Point ShMM500, RadiSys&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;br&amp;gt;Linux Distributions&lt;br /&gt;
|&lt;br /&gt;
'''ATCA Chassis''' &lt;br /&gt;
* Wind-River PNE LE 1.2 (2.6.10 kernel)&lt;br /&gt;
* Wind-River PNE LE 1.3 (2.6.14 kernel)&lt;br /&gt;
* Wind-River PNE LE 1.4 (2.6.14 kernel)&lt;br /&gt;
* Red Hat Enterprise Linux 4.0 (2.6.9.5 kernel)&lt;br /&gt;
* MontaVista Carrier Grade Linux 5.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]These are the Linux distributions on which SAFplus Platform is tested and certified.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis SDK Packages===&lt;br /&gt;
&lt;br /&gt;
The OpenClovis SDK Installation packages listed in Table [[#Table_Required_Installation_Packages | Required Installation Packages]]. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Table_Required_Installation_Packages&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot;| '''Required Installation Packages'''&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| File Names&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Description&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
openclovis-sdk-3.0.tar.gz&lt;br /&gt;
|&lt;br /&gt;
This file is the core installation tarball, to install OpenClovis SAFplus Platform, IDE, and the Evaluation System.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
openclovis-sdk-3.0.md5&lt;br /&gt;
|&lt;br /&gt;
This file is used to perform the data integrity check of the downloaded SDK tar file.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
3rdparty-base-1.8.tar&lt;br /&gt;
|&lt;br /&gt;
This file contains the third party packages for OpenClovis SDK. &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
3rdparty-base-1.8.md5&lt;br /&gt;
|&lt;br /&gt;
This file is used to perform the data integrity check of the downloaded third party tar file.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
crossbuild-i586-wrl-pnele1.3-2.6.14-1.6.tar.gz&lt;br /&gt;
|&lt;br /&gt;
This file is used to crossbuild SAFplus Platform for an i586 target with the PNELE 1.3 kernel.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
crossbuild-i586-wrl-pnele1.3-2.6.14-1.6.md5&lt;br /&gt;
|&lt;br /&gt;
This file is used to perform the data integrity check of the downloaded crossbuild tar file.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
crossbuild-i586-wrl-pnele1.4-2.6.14_mpcbl0001-1.0.tar.gz&lt;br /&gt;
|&lt;br /&gt;
This file is used to crossbuild SAFplus Platform for an i586 target with the PNELE 1.4 kernel.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
crossbuild-i586-wrl-pnele1.4-2.6.14_mpcbl0001-1.0.md5&lt;br /&gt;
|&lt;br /&gt;
This file is used to perform the data integrity check of the downloaded crossbuild tar file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]OpenClovis SDK is supplemented with a set of crossbuild packages for different CPU and Operating System combinations. The md5 and crossbuild packages are optional and maybe downloaded depending on your requirements.&lt;br /&gt;
&lt;br /&gt;
=='''OpenClovis SDK Installation'''==&lt;br /&gt;
&lt;br /&gt;
This chapter provides a step-by-step approach for installing OpenClovis SDK. Before proceeding with installation, ensure that all the required hardware and software are available on your system. You need not install the third-party packages, as the installation package installs the third-party packages along with OpenClovis SDK. &lt;br /&gt;
&lt;br /&gt;
===Installation Procedure - Get Started===&lt;br /&gt;
&lt;br /&gt;
To install Openclovis SDK on your local machine, go to the directory where you have downloaded the required installation files.&lt;br /&gt;
&lt;br /&gt;
Before you install, &lt;br /&gt;
* Ensure you have write permissions for the current directory (directory where the installation files are downloaded) and the target directory (directory where you will install the application.) &lt;br /&gt;
* At least 500MB of free disk space. &lt;br /&gt;
* You can install the SDK either as a root user or a non root user. Installing as root user is not required for a single user host. When using the SDK for larger projects it is advisable to install as root, since multiple users can share the same SDK.  Irrespective of the mode of installation, the SDK can be used to model and build code using non-root privileges. &lt;br /&gt;
&lt;br /&gt;
To extract the SDK package, execute the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# tar -xzmf openclovis-sdk-3.0.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] The &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; ensures that the timestamps on the files within the SDK package are consistent with the host system.  This is important, since discrepancies can adversely affect the build procedure.&lt;br /&gt;
&lt;br /&gt;
To ensure that your system has all the prerequisite software packages required by the installation process, the SDK package contains preinstallation scripts for a variety of Linux distributions.  Prerequisite packages are packages that are supplied by your distribution but may not have been installed on your system.  Essentially this is the GNU compiler toolchain and programming utilities such as pkg-config, flex, and bison.  These scripts enable the user to acquire and install the prerequisite software packages automatically.  Some distributions provide these packages on your installation CDROMs, so you may be asked to insert them.  Other distributions provide these packages via internet-based software repositories (notably Ubuntu).  If your system does not have internet access, please see ''Appendix A: Installing the Prerequisites without Internet Access''.  The following table covers the distributions supported by the preinstall scripts:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;600&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Distributions supported by preinstall scripts'''&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;150&amp;quot;| Preinstall script&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Distributions supported&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-centOS4.sh &lt;br /&gt;
|CentOS 4&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-debian.sh&lt;br /&gt;
|Debian Linux&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-fedora-core-6.sh&lt;br /&gt;
|Fedora Core 6&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-suse.sh&lt;br /&gt;
|SuSE Linux&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-ubuntu.sh&lt;br /&gt;
|Ubuntu Linux&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|preinstall-rhel4.sh&lt;br /&gt;
|Red Hat Enterprise Linux 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] '''The preinstall scripts need to be run as root.'''&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] The preinstall script installs SQLite as database engine by default. If you would like to select GNU Database Manager or Berkeley Database, please visit section ''Database Abstraction Layer (DBAL)'' in ''OpenClovis SDK User Guide'' for more information. &lt;br /&gt;
&lt;br /&gt;
Please run the preinstall script corresponding with your Linux distribution by executing the following commands:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd openclovis-sdk-3.0&lt;br /&gt;
# ./preinstall-&amp;lt;os&amp;gt;.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] '''An installation of Red Hat EL4 with the default package set contains all the packages required for installing OpenClovis SDK.  In particular, the 'Development Tools' package subset must be installed to cover these requirements.'''&lt;br /&gt;
&lt;br /&gt;
Once the preinstall script completes, start the SDK installation by executing the following command:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# ./install.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After you execute the install command, the Welcome screen is displayed as illustrated in Figure [[#OpenClovis Installer Welcome Screen | OpenClovis Installer Welcome Screen]]. When prompted by the installer, the user can enter the name of the directory where the SDK should be installed or accept the default provided:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='OpenClovis Installer Welcome Screen'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_WelcomeScreen_wPreInstall.png|frame|center| '''OpenClovis Installer Welcome Screen''' ]]&lt;br /&gt;
&lt;br /&gt;
The default directory for installation is &amp;lt;code&amp;gt;/opt/clovis&amp;lt;/code&amp;gt; for root installation and  &amp;lt;code&amp;gt;$HOME/clovis&amp;lt;/code&amp;gt; for non root users as illustrated in Figure [[#OpenClovis Installer Welcome Screen | OpenClovis Installer Welcome Screen]]. The installation progress is illustrated in Figure [[#Installation Directory and Progress | Installation Directory and Progress]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Installation Directory and Progress'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_InstallationDirectories.png|frame|center| '''Installation Directory and Progress''' ]]&lt;br /&gt;
&lt;br /&gt;
===Third Party Packages===&lt;br /&gt;
&lt;br /&gt;
The required third party packages are installed in the following steps:&lt;br /&gt;
* Scans the system for existing third party packages. &lt;br /&gt;
* Displays the list of packages that are available, along with their version numbers. &lt;br /&gt;
* Displays the list of packages that are not available or that have a version mismatch. &lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]] This display may vary at the time of your installation, depending on the packages that are available on your system. Figure [[#Third Party Packages - Availability Status | Third Party Packages - Availability Status]]  demonstrates a typical display.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Third Party Packages - Availability Status'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_ThirdPartyPackages.png|frame|center| '''Third Party Packages - Availability Status''']]&lt;br /&gt;
&lt;br /&gt;
To proceed with the installation, enter &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; for the message, &amp;lt;code&amp;gt;Proceed with the installation &amp;lt;y/n&amp;gt; [y]: &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Figure [[#Third Party Packages Installation Progress | Third Party Packages Installation Progress]]  illustrates the approximate installation time and the installation status for each package.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Third Party Packages Installation Progress'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_3rdPartyPackageInstallationProgress.png|frame|center| '''Third Party Packages Installation Progress''']]&lt;br /&gt;
&lt;br /&gt;
After installation of third party packages, the installer displays the message,  &amp;lt;code&amp;gt;All SDK dependencies are now in place.&amp;lt;/code&amp;gt; as illustrated in Figure [[#OpenClovis Packages Installation - Status | OpenClovis Packages Installation - Status]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='OpenClovis Packages Installation - Status'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_InstallationStatus.png|frame|center| '''OpenClovis Packages Installation - Status''']]&lt;br /&gt;
&lt;br /&gt;
After completion of the third party packages, the installer prompts the user for the installation of the crossbuild toolchains.&lt;br /&gt;
&lt;br /&gt;
===Crossbuild Toolchains===&lt;br /&gt;
&lt;br /&gt;
Crossbuild toolchains are required to install SAFplus Platform on a platform that is different from the development host platform. For instance if the development host is x86 Intel based and the target platform is PowerPC based the user will need a crossbuild toolchain for that particular PowerPC based architecture.&lt;br /&gt;
&lt;br /&gt;
For crossbuild toolchains, you will require the following:&lt;br /&gt;
* A cross compiler and related binary tools for the target CPU architecture.&lt;br /&gt;
* All the SAFplus Platform prerequisites that are pre-compiled for the target platform, so that all library files are available.&lt;br /&gt;
&lt;br /&gt;
OpenClovis SDK comes with a standard set of pre-built crossbuild toolchain packages. The names of these packages help you to identify the CPU and OS combinations for which they have been built. &lt;br /&gt;
&lt;br /&gt;
The SDK installer (&amp;lt;code&amp;gt;install.sh&amp;lt;/code&amp;gt;) assists you in installing one or more of these toolchains as illustrated in Figure [[#Crossbuild Toolchains | Crossbuild Toolchains]]. Enter the crossbuild toolchain that you require to be installed from the available list. After the toolchains are installed, you can select any of these cross-tools for your project build.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Crossbuild Toolchains'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_Crossbuildtoolchains.png|frame|center| '''Crossbuild Toolchains''' ]]&lt;br /&gt;
&lt;br /&gt;
If you would like to install more crossbuild toolchains at a later time, please download them and re-run &amp;lt;code&amp;gt;install.sh&amp;lt;/code&amp;gt;.  You may skip the remaining portions of the install process past the installation of crossbuild toolchains when you are prompted to do so.&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform, IDE and Utilities===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;After installation of the toolchain, the system proceeds with the installation of SAFplus Platform, IDE and Utilities as illustrated in Figure [[#Installing SAFplus Platform, IDE and Utilities | Installing SAFplus Platform, IDE and Utilities]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Installing SAFplus Platform, IDE, and Utilities'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_InstallingASP_IDE_Utilities.png|frame|center| '''Installing SAFplus Platform, IDE and Utilities''' ]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;The installer creates the required binaries and prompts you to create optional symbolic links, so that the SDK commands can be accessed on your system in a well known location, as illustrated in Figure [[#Creating Symbolic Links | Creating Symbolic Links]]. The main SDK commands of interest to the user are:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;cl-create-project-area&amp;lt;/code&amp;gt;: Command to create a new OpenClovis SDK project area. A project area is the workspace for the OpenClovis SDK. It contains the IDE models and the generated source code. The user makes modifications to the generated source within this workspace and builds runtime images here as well.  A typical project area has the following directory structure:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;project_area&amp;gt;&lt;br /&gt;
   |ide_workspace&lt;br /&gt;
   |+&amp;lt;model&amp;gt;&lt;br /&gt;
   |   |+build&lt;br /&gt;
   |   |   |+local&lt;br /&gt;
   |   |   |   |-Makefile&lt;br /&gt;
   |   |   |+&amp;lt;crossbuild&amp;gt;&lt;br /&gt;
   |   |   |   |-Makefile&lt;br /&gt;
   |   |+src&lt;br /&gt;
   |   |   |+app&lt;br /&gt;
   |   |   |+config&lt;br /&gt;
   |   |   |+doc&lt;br /&gt;
   |   |   |-target.conf&lt;br /&gt;
   |   |+target &lt;br /&gt;
   |   |-Makefile&lt;br /&gt;
   |-Makefile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;cl-ide&amp;lt;/code&amp;gt;: Command to start the OpenClovis IDE. Please note that you should have already created a project area using &amp;lt;code&amp;gt;cl-create-project-area&amp;lt;/code&amp;gt; before using &amp;lt;code&amp;gt;cl-ide&amp;lt;/code&amp;gt; to work within this project area.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id='Creating Symbolic Links'&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
[[File:OpenClovisSDKInstallation_CreateSymbolicLinks.png|frame|center| '''Creating Symbolic Links''' ]]&lt;br /&gt;
&lt;br /&gt;
Enter &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt; to create the symbolic links. The installer then prompts the user for a location to place the links with a default option &amp;lt;code&amp;gt;/usr/local/bin&amp;lt;/code&amp;gt; if you are installing as root, or &amp;lt;code&amp;gt;$HOME/bin&amp;lt;/code&amp;gt; for non root user installation. &lt;br /&gt;
&lt;br /&gt;
If you choose not to create symbolic links and enter &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;, then you can either:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add the installation directory to the shell path.  For example with a bash shell:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=$PATH:&amp;lt;install_dir&amp;gt;/sdk-3.0/bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;or access the SDK commands from the &amp;lt;code&amp;gt;&amp;lt;install_dir&amp;gt;/sdk-3.0/bin/&amp;lt;/code&amp;gt; directory. For example to create a new project area at &amp;lt;code&amp;gt;&amp;lt;project-area_dir&amp;gt;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;install_dir&amp;gt;/sdk-3.0/bin/cl-create-project-area &amp;lt;project-area_dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After creating symbolic links, the installation of OpenClovis SDK is complete. All the required packages and crossbuild toolchains are installed and the directory where you have downloaded the installation packages can be discarded.&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]If your installation is not successful, or if you encounter any problems during the installation, refer to the Chapter [[#Troubleshooting | Troubleshooting]].&lt;br /&gt;
&lt;br /&gt;
===Next Steps===&lt;br /&gt;
&lt;br /&gt;
After completing the Installation, the OpenClovis SDK Documentation set listed in the [[#Related Documents| Related Documents]] section is available in the  &amp;lt;code&amp;gt;doc&amp;lt;/code&amp;gt;  folder located at  &amp;lt;code&amp;gt;&amp;lt;install_dir&amp;gt;/sdk-3.0&amp;lt;/code&amp;gt; directory. &lt;br /&gt;
&lt;br /&gt;
We recommend the following steps to get familiar with our product:&lt;br /&gt;
&lt;br /&gt;
*'''Read and follow the OpenClovis Sample Application Tutorial''' - The ''Sample Application Tutorial'' will step you through the process of creating a high available system. It takes you from model conception all the way through deployment and running of the sytem. After going through this guide you will understand the basics of the OpenClovis offering.&lt;br /&gt;
&lt;br /&gt;
*'''Read and follow the OpenClovis Evaluation System User Guide''' - ''Evaluation System User Guide'' will introduce you to more advanced modelling topics. These topics are introduced incrementally through a series of targeted tutorials. After completing this guide you will be ready to start building your own system.&lt;br /&gt;
&lt;br /&gt;
=='''Troubleshooting'''==&lt;br /&gt;
&lt;br /&gt;
This chapter describes some of the probable errors that you may encounter during the installation. This chapter also provides the solution to these errors.The errors that you may encounter are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''': Installation Failure, during third party installation.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''': You can manually fix this error by getting more information from the corresponding log file under the log directory. You can also send the  &amp;lt;code&amp;gt;log.tar.gz&amp;lt;/code&amp;gt; to support@openclovis.com for more help.&lt;br /&gt;
The installation can be resumed after the errors are fixed. The installer will detect any new updates and proceed with the missing prerequisites.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''':  &amp;lt;code&amp;gt;gcc (pkg-config, perl, md5sum) not found in your PATH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''': Ensure that the directory where the  &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; resides is in the &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; variable.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''':  Not enough space on the target installation directory.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''' : Change the target installation directory to the directory with at least 500MB free disk space.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''':  &amp;lt;code&amp;gt;&amp;lt;WORKING_DIRECTORY&amp;gt;&amp;lt;/code&amp;gt; is read-only.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''': You need to have write permission for the current working directory to extract the contents of the archive, configure, and build. Ensure that you turn ON write permission using  &amp;lt;code&amp;gt;chmod +w ...&amp;lt;/code&amp;gt;  command.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''': md5 checksums are used to check if the packages are correctly downloaded. If they are not downloaded correctly, the system displays the message:  &amp;lt;code&amp;gt;It is not safe to install these packages, please download them again.&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''':The installer checks the integrity of the downloaded packages. If the download is either incomplete or corrupt, download the packages again.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
'''Error''':  SAFplus Platform fails to start, reporting the underlying SQLite database version used is not-supported.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Solution''': Use SQLite version 3.3.13 or newer. The source code can be downloaded from http://www.sqlite.org/download.html. The user can install the latest version of SQLite if the specified version is &lt;br /&gt;
not present in this repository.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=='''Appendix A: Installing the Prerequisites without Internet Access'''==&lt;br /&gt;
&lt;br /&gt;
Some customers do not want their evaluation system to have internet access for security purposes.  If this is your situation, please consider temporarily enabling internet access while running the &amp;quot;preinstall-&amp;lt;os&amp;gt;&amp;quot; script.  At this point the evaluation system should only have the base OS installed, so there is no proprietary data on the system.  Also note that the &amp;quot;preinstall&amp;quot; scripts are only about a page long so you can easily review them for security purposes.&lt;br /&gt;
&lt;br /&gt;
However, if you still do not want to enable internet access one strategy that can be used is to go to a system with internet access (it must use the same Linux distribution and the same version), download them there, use a USB flash drive to move them to the unconnected system, and then install them on that system.  If this approach is unacceptable (it does still use the internet), then perhaps the Linux distribution you chose is not appropriate -- instead use one that contains all packages on the installation CDROMs.&lt;br /&gt;
&lt;br /&gt;
===Example Using Ubuntu 7.04===&lt;br /&gt;
&lt;br /&gt;
Packages can be downloaded but not installed on Ubuntu by using the &amp;quot;-d&amp;quot; flag to the &amp;quot;apt-get&amp;quot; package manager.  The files are downloaded to &amp;quot;/var/cache/apt/archives&amp;quot;.  It is recommended to remove (or move) all files in this directory first (it is just a cache, and so it will contain any packages that you have previously installed), so that the directory contains just the packages needed for the OpenClovis SDK:&lt;br /&gt;
&lt;br /&gt;
 rm /var/cache/apt/archives/*&lt;br /&gt;
&lt;br /&gt;
Next edit the preinstall-ubuntu.sh script, search for all instances of &amp;quot;apt-get&amp;quot; and add the flags &amp;quot;-d --reinstall&amp;quot; just after the &amp;quot;apt-get&amp;quot; program.  For example:&lt;br /&gt;
&lt;br /&gt;
 apt-get -d --reinstall -y --force-yes install build-essential&lt;br /&gt;
&lt;br /&gt;
Next run this modified script on your internet-connected machine.  This script will download 6MB of files (this list will vary by Linux distribution or version):&lt;br /&gt;
&lt;br /&gt;
 bison_1%3a2.3.dfsg-4build1_i386.deb                           &lt;br /&gt;
 libgdbm-dev_1.8.3-3_i386.deb&lt;br /&gt;
 build-essential_11.3_i386.deb                                 &lt;br /&gt;
 libltdl3-dev_1.5.22-4_i386.deb&lt;br /&gt;
 e2fslibs-dev_1.39+1.40- WIP-2006.11.14+dfsg-2ubuntu1_i386.deb  &lt;br /&gt;
 libperl-dev_5.8.8-7build1_i386.deb&lt;br /&gt;
 e2fsprogs_1.39+1.40-WIP-2006.11.14+dfsg-2ubuntu1_i386.deb     &lt;br /&gt;
 linux-headers-2.6.20-16-generic_2.6.20-16.32_i386.deb&lt;br /&gt;
 flex_2.5.33-10build1_i386.deb                                 &lt;br /&gt;
 gawk_1%3a3.1.5.dfsg-4build1_i386.deb                          &lt;br /&gt;
 gettext_0.16.1-1ubuntu2_i386.deb                              &lt;br /&gt;
 pkg-config_0.21-1build1_i386.deb&lt;br /&gt;
 libdb4.5-dev_4.5.20-1ubuntu1_i386.deb                         &lt;br /&gt;
 uuid-dev_1.2- 1.39+1.40-WIP-2006.11.14+dfsg-2ubuntu1_i386.deb&lt;br /&gt;
&lt;br /&gt;
Now copy these files to a new directory in your unconnected machine:&lt;br /&gt;
&lt;br /&gt;
On the connected machine:&lt;br /&gt;
 root@desktop:/# cp /var/cache/apt/archives/*.deb &amp;lt;your flash media&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On the unconnected machine:&lt;br /&gt;
 root@desktop:/# mkdir /root/pkgs&lt;br /&gt;
 root@desktop:/# cp &amp;lt;your flash media&amp;gt; /root/pkgs/&lt;br /&gt;
&lt;br /&gt;
Finally, install them using the standard &amp;quot;dpkg&amp;quot; package installer:&lt;br /&gt;
&lt;br /&gt;
 root@desktop :/# cd /root/pkgs&lt;br /&gt;
 root@desktop:~/pkgs# dpkg -i *.deb&lt;br /&gt;
 (Reading database ... 113653 files and directories currently installed.)&lt;br /&gt;
 ...&lt;br /&gt;
 root@desktop:~/pkgs#&lt;br /&gt;
&lt;br /&gt;
At this point, you should be done installing the prerequisites!  You should now continue the installation procedure at the step after installing prequisites.&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:Latest/SAFplus_Availability/Scalability_Platform_Documentation</id>
		<title>Doc:Latest/SAFplus Availability/Scalability Platform Documentation</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:Latest/SAFplus_Availability/Scalability_Platform_Documentation"/>
				<updated>2011-10-24T20:00:03Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* OpenClovis SAFplus Availability/Scalability Platform Documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Doc:latest/relnotes | Release Notes ]]&lt;br /&gt;
* [[Doc:latest/safcompliance | SAF Compliance]]&lt;br /&gt;
* [[Doc:latest/installguide | Installation Guide]]&lt;br /&gt;
* [[Doc:latest/tutorial | Sample Application Tutorial]]&lt;br /&gt;
* [[Doc:latest/evalguide | Evaluation System User's Guide]]&lt;br /&gt;
* [[Doc:latest/logtoolguide | LogTool User's Guide]]&lt;br /&gt;
* [[Doc:latest/ideguide | IDE User's Guide]]&lt;br /&gt;
* [[Doc:latest/sdkguide | SDK User's Guide]]&lt;br /&gt;
* [[Doc:latest/taeguide | TAE User Guide]]&lt;br /&gt;
&lt;br /&gt;
==OpenClovis SAFplus Platform Runtime Director Documentation==&lt;br /&gt;
&lt;br /&gt;
* [[Doc:latest/awdguide | Runtime Director User's Guide]]   ([[Doc:latest/awdguideCrawler |web-crawler click here]])&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:Latest/SAFplus_Availability/Scalability_Platform_Documentation</id>
		<title>Doc:Latest/SAFplus Availability/Scalability Platform Documentation</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:Latest/SAFplus_Availability/Scalability_Platform_Documentation"/>
				<updated>2011-10-24T19:55:38Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* OpenClovis SAFplus Availability/Scalability Platform Documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Doc:latest/relnotes | Release Notes ]]&lt;br /&gt;
* [[Doc:latest/safcompliance | SAF Compliance]]&lt;br /&gt;
* [[Doc:latest/installguide | Installation Guide]]&lt;br /&gt;
* [[Doc:latest/tutorial | Sample Application Tutorial]]&lt;br /&gt;
* [[Doc:latest/evalguide | Evaluation System User's Guide]]&lt;br /&gt;
* [[Doc:latest/logtoolguide | LogTool User's Guide]]&lt;br /&gt;
* [[Doc:latest/ideguide | IDE User's Guide]]&lt;br /&gt;
* [[Doc:latest/sdkguide | SDK User's Guide]]&lt;br /&gt;
* [[Doc:latest/taeguide | TAE User Guide]]&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/home</id>
		<title>Doc:latest/home</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/home"/>
				<updated>2011-10-24T19:51:21Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: Redirected page to Doc:Latest/SAFplus Availability/Scalability Platform Documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Doc:Latest/SAFplus Availability/Scalability Platform Documentation]]&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:Latest/SAFplus_Availability/Scalability_Platform_Documentation</id>
		<title>Doc:Latest/SAFplus Availability/Scalability Platform Documentation</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:Latest/SAFplus_Availability/Scalability_Platform_Documentation"/>
				<updated>2011-10-24T19:50:27Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: moved Latest/SAFplus Availability/Scalability Platform Documentation to Doc:Latest/SAFplus Availability/Scalability Platform Documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=OpenClovis SAFplus Availability/Scalability Platform Documentation=&lt;br /&gt;
&lt;br /&gt;
* [[Doc:latest/relnotes | Release Notes ]]&lt;br /&gt;
* [[Doc:latest/safcompliance | SAF Compliance]]&lt;br /&gt;
* [[Doc:latest/installguide | Installation Guide]]&lt;br /&gt;
* [[Doc:latest/tutorial | Sample Application Tutorial]]&lt;br /&gt;
* [[Doc:latest/evalguide | Evaluation System User's Guide]]&lt;br /&gt;
* [[Doc:latest/logtoolguide | LogTool User's Guide]]&lt;br /&gt;
* [[Doc:latest/ideguide | IDE User's Guide]]&lt;br /&gt;
* [[Doc:latest/sdkguide | SDK User's Guide]]&lt;br /&gt;
* [[Doc:latest/taeguide | TAE User Guide]]&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Latest/SAFplus_Availability/Scalability_Platform_Documentation</id>
		<title>Latest/SAFplus Availability/Scalability Platform Documentation</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Latest/SAFplus_Availability/Scalability_Platform_Documentation"/>
				<updated>2011-10-24T19:50:27Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: moved Latest/SAFplus Availability/Scalability Platform Documentation to Doc:Latest/SAFplus Availability/Scalability Platform Documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Doc:Latest/SAFplus Availability/Scalability Platform Documentation]]&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/home</id>
		<title>Doc:latest/home</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/home"/>
				<updated>2011-10-24T19:45:39Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: Redirected page to Latest/SAFplus Availability/Scalability Platform Documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Latest/SAFplus Availability/Scalability Platform Documentation]]&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/home</id>
		<title>Doc:latest/home</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/home"/>
				<updated>2011-10-24T19:45:19Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: Redirected page to Target&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[target]]&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest.</id>
		<title>Doc:latest.</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest."/>
				<updated>2011-10-24T19:44:46Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* OpenClovis SAFplus Availability/Scalability Platform Documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Latest/SAFplus_Availability/Scalability_Platform_Documentation]]&lt;br /&gt;
&lt;br /&gt;
==OpenClovis SAFplus Platform Runtime Director Documentation==&lt;br /&gt;
&lt;br /&gt;
* [[Doc:latest/awdguide | Runtime Director User's Guide]]   ([[Doc:latest/awdguideCrawler |web-crawler click here]])&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:Latest/SAFplus_Availability/Scalability_Platform_Documentation</id>
		<title>Doc:Latest/SAFplus Availability/Scalability Platform Documentation</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:Latest/SAFplus_Availability/Scalability_Platform_Documentation"/>
				<updated>2011-10-24T19:43:42Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: Created page with &amp;quot;=OpenClovis SAFplus Availability/Scalability Platform Documentation=  *  Release Notes  *  SAF Compliance * [[Doc:latest/in…&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=OpenClovis SAFplus Availability/Scalability Platform Documentation=&lt;br /&gt;
&lt;br /&gt;
* [[Doc:latest/relnotes | Release Notes ]]&lt;br /&gt;
* [[Doc:latest/safcompliance | SAF Compliance]]&lt;br /&gt;
* [[Doc:latest/installguide | Installation Guide]]&lt;br /&gt;
* [[Doc:latest/tutorial | Sample Application Tutorial]]&lt;br /&gt;
* [[Doc:latest/evalguide | Evaluation System User's Guide]]&lt;br /&gt;
* [[Doc:latest/logtoolguide | LogTool User's Guide]]&lt;br /&gt;
* [[Doc:latest/ideguide | IDE User's Guide]]&lt;br /&gt;
* [[Doc:latest/sdkguide | SDK User's Guide]]&lt;br /&gt;
* [[Doc:latest/taeguide | TAE User Guide]]&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/safcompliance</id>
		<title>Doc:latest/safcompliance</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/safcompliance"/>
				<updated>2011-10-24T19:38:12Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* Hardware Platform Interface (HPI) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
Adherence to standards is a critical requirement for Next Generation Network&lt;br /&gt;
deployments. The Service Availability Forum (SA Forum) is the primary standards body in&lt;br /&gt;
the context of High Availability Middleware and enjoys the participation of over 95% of&lt;br /&gt;
Tier 1 TEMs. OpenClovis has been actively participating in the forum and helping to drive&lt;br /&gt;
the emerging Hardware Platform Interface (HPI) and Application Interface Specification&lt;br /&gt;
(AIS) standards based on its experience.&lt;br /&gt;
&lt;br /&gt;
As a result of the close involvement of OpenClovis with the SA Forum, the OpenClovis&lt;br /&gt;
SAFplus Platform product has been aligned with SA Forum AIS architecture and functional partitioning&lt;br /&gt;
from its inception and has kept pace with the evolution in the specifications and in many&lt;br /&gt;
cases, anticipated new features and functionality.&lt;br /&gt;
&lt;br /&gt;
Even as the specifications are evolving, the SA Forum is in the process of defining a test&lt;br /&gt;
suite that will establish compliance of a product to the specifications. While this activity is&lt;br /&gt;
in an advanced state for the HPI specifications, it has not yet taken off for AIS&lt;br /&gt;
specifications. Partial compliance test suites are expected to be available for HPI by end&lt;br /&gt;
of the 2006 calendar year.&lt;br /&gt;
&lt;br /&gt;
It should be noted that where a specification is 'A' level (example: SAI-AIS-NTF-A.01.01&lt;br /&gt;
for the Notification Service), SAF is not obligated to preserve backward compatibility&lt;br /&gt;
while going to a 'B' level version of the specification. On the other hand, backward&lt;br /&gt;
compatibility with respect to API's will be preserved between different versions of the 'B'&lt;br /&gt;
level specifications (Example: between SAI-AMF-B01.01 and SAI-AMF-B02.01)&lt;br /&gt;
&lt;br /&gt;
OpenClovis expects to formally establish the compliance of SAFplus Platform to the SA Forum AIS&lt;br /&gt;
standards as and when these compliance test suites become available. This document&lt;br /&gt;
details the level of alignment of OpenClovis SAFplus Platform with the SA Forum specifications.&lt;br /&gt;
&lt;br /&gt;
=='''Standards Referenced'''==&lt;br /&gt;
&lt;br /&gt;
The SA Forum specifications referred to in this document are available at http://www.saforum.org/home. The versions of the specifications referred to are&lt;br /&gt;
&lt;br /&gt;
*SAI-Overview-B.02.01&lt;br /&gt;
*SAI-AIS-AMF-B.02.01&lt;br /&gt;
*SAI-AIS-MSG-B.02.01&lt;br /&gt;
&lt;br /&gt;
*AIS-CKPT-B.01.01&lt;br /&gt;
*AIS-EVT-B.01.01&lt;br /&gt;
*AIS-CLM-B.01.01&lt;br /&gt;
&lt;br /&gt;
*SAI-AIS_LOG-A.01.01&lt;br /&gt;
*SAI-AIS-IMM-A.01.01&lt;br /&gt;
*SAI-AIS-NTF-A.01.01&lt;br /&gt;
*SAI-AIS-NAM-A.01.01&lt;br /&gt;
*Hardware Platform Interface Specification B.01.01&lt;br /&gt;
&lt;br /&gt;
=='''Compliance with Service Availability Forum AIS Architecture'''==&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform complies with the Service Availability Forum (SAF) Hardware Platform Interface (HPI) and Application Interface Specification (AIS) specifications. OpenClovis Inc. is actively participating in the SA Forum and helping to drive the emerging HPI and AIS standards based on its experience.&lt;br /&gt;
&lt;br /&gt;
===Programming Model and Usage===&lt;br /&gt;
&lt;br /&gt;
Section 3.1 of SAI-AIS-Overview-B.02.01 describes the SAF Application Interface programming model and the generally intended usage of the interfaces.&lt;br /&gt;
&lt;br /&gt;
It introduces the area server as an abstraction that represents the server providing services for a specification area, for instance, Availability Management Framework, Group Membership Service and so on. The interface is defined as occurring between a user application that needs the services of the area server and an area implementation library.&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform adheres to the SAF area server-area implementation library abstraction and the SAF programming and usage model in providing various services.&lt;br /&gt;
&lt;br /&gt;
===Availability Management Framework (AMF)===&lt;br /&gt;
&lt;br /&gt;
The Availability Management Framework (AMF) is the most important software entity of the SAF AIS Specification. It provides service availability by coordinating redundant resources within a cluster to deliver a system without a single point of failure. AMF prescribes a way to model applications that needs to be highly available. In addition, AMF provides a set of APIs that must be used by these applications to be managed for high availability.&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform is implemented in complete accordance with the SAF AMF model and interfaces. This may be considered as the core of the SAF solution for high availability. The only limitation in the current release with respect to the AMF component model is that SAF defines a flexible mapping between components, processes and threads whereas OpenClovis SAFplus Platform supports only a single process per component. OpenClovis Inc. offers to support one-to-one relationship between a component and a process. However, a component can have multiple threads of execution within it.&lt;br /&gt;
&lt;br /&gt;
===Application Interface Specification (AIS) Services===&lt;br /&gt;
              &lt;br /&gt;
The following OpenClovis SAFplus Platform components provide services that are functionally equivalent to SAF AIS specifications:&lt;br /&gt;
*Availability Management Framework (AMF)&lt;br /&gt;
*Checkpoint Service (CPS)&lt;br /&gt;
*Event Manager (EM)&lt;br /&gt;
*Group Membership Service (GMS)&lt;br /&gt;
*Messaging Service (MSG)&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform AMF Features===&lt;br /&gt;
*'''HA model supported'''&lt;br /&gt;
** 2N&lt;br /&gt;
** M+N&lt;br /&gt;
&lt;br /&gt;
*'''Auto Adjust'''&lt;br /&gt;
SAF SG auto adjust feature to adjust the SG based on the SU ranking giving preference to higher ranked ones for active assignments&lt;br /&gt;
&lt;br /&gt;
*'''SI Dependency'''&lt;br /&gt;
SAF SI dependency across service groups&lt;br /&gt;
&lt;br /&gt;
*'''CSI Dependency'''&lt;br /&gt;
SAF CSI dependency within the same SI for work assignments&lt;br /&gt;
&lt;br /&gt;
*'''Component instantiation dependency'''&lt;br /&gt;
SAF component instantiation dependency for components within the same Service Unit configurable through instantiationLevel attribute. &lt;br /&gt;
&lt;br /&gt;
*'''Reduction Procedure'''&lt;br /&gt;
SAF SG reduction procedure applied when the SG is running under reduced potential for computing and removing less optimal standby assignments to assign Service Instances.&lt;br /&gt;
&lt;br /&gt;
*'''AMF NOTIFICATIONS'''&lt;br /&gt;
SAF HAStateChangeNotify and SIAssignmentStateChangeNotify notifications for applications to subscribe for AMF state transitions&lt;br /&gt;
&lt;br /&gt;
*'''Preferred SI assignment'''&lt;br /&gt;
Preferred SI assignment that could be configured for SUs to control SI assignments. Coupled with the delayed SG startup configuration through restartDuration to control instantiation of all the preferred SUs, SI preference could be enforced during initial cluster startup for the Service units in the cluster.&lt;br /&gt;
&lt;br /&gt;
*'''Proxy-Proxied support'''&lt;br /&gt;
Allow HA control of legacy application (non-SAF awared) via proxy&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform Cluster/Group Membership Service (GMS) Features===&lt;br /&gt;
The SA-Forum CLM API is fully supported.&lt;br /&gt;
&lt;br /&gt;
*'''Cluster Membership'''&lt;br /&gt;
CLM service manages the membership of the nodes. It manages the cluster formation during node joins and leaves.&lt;br /&gt;
&lt;br /&gt;
*'''Tracking Cluster Membership'''&lt;br /&gt;
Any application can register for Cluster Track callback through which it can get the notification for any node joins and leaves in the cluster&lt;br /&gt;
&lt;br /&gt;
*'''Getting Cluster Member information'''&lt;br /&gt;
API interface are available to get the information such as Address, node name etc, for any given cluster member node.&lt;br /&gt;
&lt;br /&gt;
*'''Cluster node eviction/ejection'''&lt;br /&gt;
A cluster node can be administratively ejected from the cluster.&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform Checkpointing Service (CPS) Features===&lt;br /&gt;
*'''Checkpoint/Section creation/deletion'''&lt;br /&gt;
CPS provides APIs for users to create/delete checkpoints and sections within the checkpoints.&lt;br /&gt;
&lt;br /&gt;
*'''Granularity at Section level'''&lt;br /&gt;
CPS allows user to create a checkpoint and inside a checkpoint user can create any number of sections and read/write each sections independently.&lt;br /&gt;
&lt;br /&gt;
*'''Checkpoint Status'''&lt;br /&gt;
CPS provides API to retrieve checkpoint status.&lt;br /&gt;
&lt;br /&gt;
*'''Locking at Section level'''&lt;br /&gt;
CPS provides read/write locks at section level due to which multiple sections can be accessed simultaneously. &lt;br /&gt;
&lt;br /&gt;
*'''Update options'''&lt;br /&gt;
CPS allows both Synchronous and Asynchronous update of the checkpoint replicas across the cluster&lt;br /&gt;
&lt;br /&gt;
*'''Replica Management'''&lt;br /&gt;
CPS allows both collocated and non-collocated mode of checkpoint replicas&lt;br /&gt;
&lt;br /&gt;
*'''Choosing replica at run time'''&lt;br /&gt;
User can use ActiveReplicaSet() APIs to set the active replica at run time.&lt;br /&gt;
&lt;br /&gt;
*'''Retention time'''&lt;br /&gt;
CPS provides users to specify a retention time for which the checkpoint is retained even when no one is accessing the checkpoint&lt;br /&gt;
&lt;br /&gt;
*'''Section Expiration Time'''&lt;br /&gt;
User can set an absolute expiration time for a section after which the section is deleted irrespective of its usage at that time. &lt;br /&gt;
&lt;br /&gt;
*'''Section Iteration'''&lt;br /&gt;
Users can iterate through the sections of a checkpoint.&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform Event Service features===&lt;br /&gt;
*'''Publish/Subscribe multipoint-to-multipoint communication mechanism'''&lt;br /&gt;
** Based on concept of event channels&lt;br /&gt;
** Publisher communicates asynchronously with one or more subscribers over an event channel&lt;br /&gt;
** Multiple publishers and subscribers can communicate over the same event channel; publishers can be subscribers on the same event channel&lt;br /&gt;
** Individual publishers and individual subscribers can communicate over multiple channels&lt;br /&gt;
*'''Events consist of standard header and one or more bytes of payload data'''&lt;br /&gt;
** i.e. Event Service does not impose any specific transfer syntax for the data&lt;br /&gt;
*'''Event channel management'''&lt;br /&gt;
** Event service provides APIs for opening, closing and deleting event channels&lt;br /&gt;
*'''Event operations'''&lt;br /&gt;
** Event service provides APIs for managing the event payload data, publishing the event, subscribing for the event etc&lt;br /&gt;
&lt;br /&gt;
===Additional SAFplus Platform Services===&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform also provides various components that were implemented earlier than its implementation with SAF specifications. These components provide services that are functional equivalent to SAF AIS services as listed below:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''SAFplus Platform Services Equivalent to SA Forum AIS Services''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| OpenClovis SAFplus Platform Components&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Functionally Equivalent AIS Service&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| AIS Specification&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Clovis Object Repository (COR)&lt;br /&gt;
|&lt;br /&gt;
Information Model Management Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-IMM-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Alarm Manager (AM) &lt;br /&gt;
|&lt;br /&gt;
Notification Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-NTF-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Log Service &lt;br /&gt;
|&lt;br /&gt;
Logging Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-LOG-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Naming Service &lt;br /&gt;
|&lt;br /&gt;
Naming Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-NAM-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Platform Management Service &lt;br /&gt;
|&lt;br /&gt;
Platform Management Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-PLM-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===IMM (OpenClovis Object Repository - COR) Features===&lt;br /&gt;
The OpenClovis Object Repository(COR) implements the IMM features. We are progressing on having API level compliance which will be available in R5.0.&lt;br /&gt;
&lt;br /&gt;
The following are the IMM compliant features of COR:&lt;br /&gt;
&lt;br /&gt;
*'''Object Mananger and Object Implementer'''&lt;br /&gt;
**COR provides a rich set of APIs to make configuration changes on a Managed Object (MO). It provides service to implement a MO by multiple Object Implementers (OI), so that the configuration changes on the MO can be validated by all the OIs. It provides APIs to make or remove an application as a OI for a MO.&lt;br /&gt;
&lt;br /&gt;
*'''Runtime Attributes Management'''&lt;br /&gt;
**COR provides service to implement the runtime attributes of an object or all the object instances of a class. The Runtime attributes values can be cached or non-cached in COR. The cached runtime attributes values has to be updated by Primary Object Implementer (POI) periodically in COR. The value of non-cached runtime attributes will be updated by POI on request by COR. The values of cached runtime attributes can be persisted into storage devices.&lt;br /&gt;
&lt;br /&gt;
*'''Configuration Attributes Management'''&lt;br /&gt;
**The Configuration attributes are always cached and persisted by COR. Any configuration change on these attributes by a OM will be implemented by all the OIs.&lt;br /&gt;
&lt;br /&gt;
*'''Attribute Characteristics'''&lt;br /&gt;
**COR supports the following attribute characteristics.&lt;br /&gt;
***CONFIG      - Indicates that the attribute is a configuration type attribute.&lt;br /&gt;
***RUNTIME     - Indicates that the attribute is a runtime attribute.&lt;br /&gt;
***WRITABLE    - Indicates that the configuration attribute can be modified.&lt;br /&gt;
***INITIALIZED - Indicates that value for the configuration attribute must be specified when the object is created.&lt;br /&gt;
***CACHED      - Indicates that the value of the attribute is cached in COR.&lt;br /&gt;
***PERSISTENT  - Indicates that the value of the attribute must be stored in a permanent manner by COR&lt;br /&gt;
&lt;br /&gt;
*'''Object Class Management'''&lt;br /&gt;
**COR provides APIs to create, delete and modify the classes, and to make hierarchical relationship between the classes. It also provides service to inherit the existing class to create a new class.&lt;br /&gt;
&lt;br /&gt;
*'''Tree organization of Objects'''&lt;br /&gt;
**COR organizes the MOs in a hierarchical manner supporting parent-child relationship, inheritance, association and containment relationships.&lt;br /&gt;
&lt;br /&gt;
*'''Search Operations'''&lt;br /&gt;
**The search operations can be performed on a single MO, or a MO and its children, or a sub tree rooted from the given MO.&lt;br /&gt;
**We can either retrieve all the attributes in the MO matching the given criteria or only the matching attributes.&lt;br /&gt;
&lt;br /&gt;
*'''Object Access'''&lt;br /&gt;
**COR bundle GET APIs can be used to retrieve the attributes values in a efficient manner by grouping the GET requests belonging different MOs into one single request to COR. The values of runtime non-cached attributes will be updated by POI on request by COR.&lt;br /&gt;
&lt;br /&gt;
*'''Class Implementer'''&lt;br /&gt;
**COR provides APIs for the application to implement all the Object instances of a class, for both Configuration and Runtime attributes.&lt;br /&gt;
&lt;br /&gt;
===SAF Notification Features===&lt;br /&gt;
OpenClovis SAFplus Platform is compliant with the following Notification features :&lt;br /&gt;
&lt;br /&gt;
*'''Notification Types'''&lt;br /&gt;
**Alarm&lt;br /&gt;
**State Change&lt;br /&gt;
**Object Create/Delete&lt;br /&gt;
**Attribute Change&lt;br /&gt;
&lt;br /&gt;
*'''Alarm Notification'''&lt;br /&gt;
**An alarm report is a notification of a specific event that may or may not represent an error. OpenClovis Alarm notification is fully compliant with ITU-T X.733 standard (which is recommended by SAF-NTF).&lt;br /&gt;
&lt;br /&gt;
*'''State Change Notification'''&lt;br /&gt;
**OpenClovis AMF provides services for the following state change notifications to the Management Applications&lt;br /&gt;
***HA state of the SU changed&lt;br /&gt;
***SI partially/fully assigned&lt;br /&gt;
***Component arrived/departed&lt;br /&gt;
***Node arrived/departed&lt;br /&gt;
&lt;br /&gt;
*'''Object Create/Delete and Attribute Change Notifications'''&lt;br /&gt;
**OpenClovis SAFplus Platform provides services for the notification of Managed Object Creation, Deletion and Attribute changes. It also supports the Management Applications to filter the attribute change notifications based on attribute identifiers.&lt;br /&gt;
&lt;br /&gt;
*'''Notification Delivery Characteristics'''&lt;br /&gt;
**Guaranteed delivery&lt;br /&gt;
**At most once delivery&lt;br /&gt;
**Ordered delivery&lt;br /&gt;
**Persisted (Alarm notifications).&lt;br /&gt;
&lt;br /&gt;
*'''Notification Filtering'''&lt;br /&gt;
**OpenClovis SAFplus Platform provides service for filtering the notifications based on one or more filter criteria which is particular to the notification type. It also provides the ability to correlate with the other notifications.&lt;br /&gt;
&lt;br /&gt;
=='''Support for SAF AIS Interfaces'''==&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform complies with the SAF AIS interfaces for the following components:&lt;br /&gt;
&lt;br /&gt;
===Availability Management Framework (AMF)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Availability Management Framework (AMF) supports the following SAF AIS interfaces as mentioned in SAI-AIS-AMF-B.02.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of AMF''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saAmfInitialize()&lt;br /&gt;
* saAmfSelectionObjectGet()&lt;br /&gt;
* saAmfDispatch()&lt;br /&gt;
* saAmfFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Health Monitoring&lt;br /&gt;
|&lt;br /&gt;
* saAmfHealthCheckStart()&lt;br /&gt;
* saAmfHealthCheckStop()&lt;br /&gt;
* SaAmfHealthCheckCallbackT&lt;br /&gt;
* saAmfHealthCheckConfirm()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Registration and Un-registration&lt;br /&gt;
|&lt;br /&gt;
* saAmfComponentRegister()&lt;br /&gt;
* saAmfComponentUnregister()&lt;br /&gt;
* saAmfComponentNameGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Service Instance Management&lt;br /&gt;
|&lt;br /&gt;
* saAmfHAStateGet()&lt;br /&gt;
* SaAmfCSISetCallbackT&lt;br /&gt;
* SaAmfCSIRemoveCallbackT&lt;br /&gt;
* saAmfCSIQuiescingComplete()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of AMF''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* SaAmfComponentTerminateCallbackT&lt;br /&gt;
* SaAmfProxiedComponentInstantiateCallbackT&lt;br /&gt;
* SaAmfProxiedComponentCleanupCallbackT&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Protection Group Management&lt;br /&gt;
|&lt;br /&gt;
* saAmfProtectionGroupTrack()&lt;br /&gt;
* SaAmfProtectionGroupTrackCallbackT&lt;br /&gt;
* saAmfProtectionGroupTrackStop()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Error Reporting &lt;br /&gt;
|&lt;br /&gt;
* saAmfComponentErrorReport()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Response   &lt;br /&gt;
|&lt;br /&gt;
* saAmfResponse()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Unsupported API's of AMF''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Brief &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Unsupported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Passive Monitoring of processes is not supported&lt;br /&gt;
|&lt;br /&gt;
* saAmfPmStart()&lt;br /&gt;
* saAmfPmStop()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Freeing the memory allocated by the saAmfProtectionGroupTrack()&lt;br /&gt;
|&lt;br /&gt;
* saAmfProtectionGroupNotificationFree()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Error Clear API is not supported.&lt;br /&gt;
|&lt;br /&gt;
* saAmfComponentErrorClear()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Checkpointing Service (CPS)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Checkpointing Service (CPS) supports the following SAF AIS interfaces as mentioned in SAI-AIS-CKPT-B.01.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of CPS''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptInitialize()&lt;br /&gt;
* saCkptSelectionObjectGet()&lt;br /&gt;
* saCkptDispatch()&lt;br /&gt;
* saCkptFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Checkpoint Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptCheckpointOpen()&lt;br /&gt;
* saCkptCheckpointOpenCallabackT&lt;br /&gt;
* saCkptCheckpointOpenAsync()&lt;br /&gt;
* saCkptCheckpointClose()&lt;br /&gt;
* saCkptCheckpointUnlink()&lt;br /&gt;
* saCkptActiveReplicaSet()&lt;br /&gt;
* saCkptCheckpointRetentionDurationSet()&lt;br /&gt;
* saCkptCheckpointStatusGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Section Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptSectionIterationInitialize()&lt;br /&gt;
* saCkptSectionIterationNext()&lt;br /&gt;
* saCkptSectionIterationFinalize()&lt;br /&gt;
* saCkptSectionCreate()&lt;br /&gt;
* saCkptSectionExpirationTimeSet()&lt;br /&gt;
* saCkptSectionDelete()&lt;br /&gt;
* saCkptCheckpointWrite()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Data Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptSectionOverwrite()&lt;br /&gt;
* saCkptCheckpointRead()&lt;br /&gt;
* saCkptCheckpointSynchronize()&lt;br /&gt;
* saCkptCheckpointSynchronizeAsync()&lt;br /&gt;
* SaCkptCheckpointSynchronizeCallbackT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Event Manager (EM)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Event Manager supports the following SAF AIS interfaces as mentioned in SAI-AIS-EVT-B.01.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of EM''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saEvtInitialize()&lt;br /&gt;
* saEvtFinalize()&lt;br /&gt;
* saEvtSelectionObjectGet()&lt;br /&gt;
* saEvtDispatch()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Event Operations&lt;br /&gt;
|&lt;br /&gt;
* saEvtEventAllocate()&lt;br /&gt;
* saEvtEventFree()&lt;br /&gt;
* saEvtEventAttributesSet()&lt;br /&gt;
* saEvtEventAttributesGet()&lt;br /&gt;
* saEvtEventDataGet()&lt;br /&gt;
* saEvtEventPublish()&lt;br /&gt;
* saEvtEventSubscribe()&lt;br /&gt;
* SaEvtEventDeliverCallbackT&lt;br /&gt;
* saEvtEventUnsubscribe()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Event Channel Operations&lt;br /&gt;
|&lt;br /&gt;
* saEvtChannelOpen()              &lt;br /&gt;
* saEvtChannelOpenAsync()&lt;br /&gt;
* SaEvtChannelOpenCallbackT&lt;br /&gt;
* saEvtChannelUnlink()&lt;br /&gt;
* saEvtChannelClose()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Unsupported API's of EM''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Brief&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Unsupported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Event Retention Time is not supported&lt;br /&gt;
|&lt;br /&gt;
* saEvtEventRetentionTimeClear()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Group Membership Service (GMS)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Group Membership Service (GMS) supports the following SAF AIS interfaces as mentioned in AIS-CLM-B.01.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of GMS''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saClmInitialize()&lt;br /&gt;
* saClmSelectionObjectGet()&lt;br /&gt;
* saClmDispatch()&lt;br /&gt;
* saClmFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Group Membership Operations&lt;br /&gt;
|&lt;br /&gt;
* saClmClusterTrack()&lt;br /&gt;
* SaClmClusterTrackCallbackT&lt;br /&gt;
* saClmClusterTrackStop()&lt;br /&gt;
* saClmClusterNodeGet()&lt;br /&gt;
* saClmClusterNodeGetAsync()&lt;br /&gt;
* SaClmClusterNodeGetCallbackT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Messaging Service (MSG)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Messaging Service (MSG) supports the following SAF AIS interfaces as mentioned in SAF-AIS-MSG-B.02.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of MSG''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saMsgInitialize()&lt;br /&gt;
* saMsgSelectionObjectGet()&lt;br /&gt;
* saMsgDispatch()&lt;br /&gt;
* saMsgFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Message Queue Operations&lt;br /&gt;
|&lt;br /&gt;
* saMsgQueueOpen()&lt;br /&gt;
* saMsgQueueOpenAsync()&lt;br /&gt;
* SaMsgQueueOpenCallbackT&lt;br /&gt;
* saMsgQueueClose()&lt;br /&gt;
* saMsgQueueStatusGet()&lt;br /&gt;
* saMsgQueueRetentionTimeSet()&lt;br /&gt;
* saMsgQueueUnlink()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Management of Message Queue Groups&lt;br /&gt;
|&lt;br /&gt;
* saMsgQueueGroupCreate()&lt;br /&gt;
* saMsgQueueGroupInsert()&lt;br /&gt;
* saMsgQueueGroupRemove()&lt;br /&gt;
* saMsgQueueGroupDelete()&lt;br /&gt;
* saMsgQueueGroupTrack()&lt;br /&gt;
* SaMsgQueueGroupTrackCallbackT&lt;br /&gt;
* saMsgQueueGroupTrackStop()&lt;br /&gt;
* saMsgQueueGroupNotificationFree()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of MSG''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Message Send and Receive Operations&lt;br /&gt;
| &lt;br /&gt;
* saMsgMessageSend()&lt;br /&gt;
* saMsgMessageSendAsync()&lt;br /&gt;
* SaMsgMessageDeliveredCallbackT&lt;br /&gt;
* saMsgMessageGet()&lt;br /&gt;
* saMsgMessageDataFree()&lt;br /&gt;
* SaMsgMessagedReceivedCallbackT&lt;br /&gt;
* saMsgMessageCancel()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Request and Reply Operations&lt;br /&gt;
|&lt;br /&gt;
* saMsgMessageSendReceive()&lt;br /&gt;
* saMsgMessageReply()&lt;br /&gt;
* saMsgMessageReplyAsync()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=='''Software Management Framework (SMF)'''==&lt;br /&gt;
&lt;br /&gt;
SMF Aligned In Service Software Upgrade (ISSU.&lt;br /&gt;
Supports application and OpenClovis SAFplus Platform middleware upgrade in a rolling (in-service) or single-step mode.&lt;br /&gt;
&lt;br /&gt;
'''Single-Step'''&lt;br /&gt;
For deployment of non-backwards compatible software, or rapid deployment of software.  This method stops the relevant services on all nodes (causing an outage) and then upgrades that software and restarts.  Note that services are stopped at various granularity levels depending on what is being upgraded.  In other words, application A can be taken out-of-service and upgraded across the cluster without affecting application B running on the same nodes.&lt;br /&gt;
&lt;br /&gt;
'''Inservice Rolling'''&lt;br /&gt;
This is the most commonly known telecom quality upgrade method.  For deployment of backwards-compatible software across the cluster, this method stops service in one &amp;quot;upgrade unit&amp;quot; at a time, upgrades the software and restarts before stopping the next &amp;quot;upgrade unit&amp;quot;.  This process continues iteratively until the entire cluster is upgraded.  Since the available redundant capacity takes over for the unit being upgraded service will be unaffected.&lt;br /&gt;
&lt;br /&gt;
=='''Hardware Platform Interface (HPI)'''==&lt;br /&gt;
&lt;br /&gt;
SAFplus Platform has been integrated and tested with the following implementations of HPI B.01.01 specification.&lt;br /&gt;
* OpenHPI 2.8.1, 2.10.2, 2.16.0&lt;br /&gt;
* Radisys HPI 1.4&lt;br /&gt;
&lt;br /&gt;
The following sections lists out the SAF HPI APIs that are used by SAFplus Platform. Platform provider shall provide at these HPI services in order to integration with OpenClovis SAFplus Platform&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''SAF HPI APIs used by SAFplus''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
General APIs&lt;br /&gt;
|&lt;br /&gt;
* saHpiVersionGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Domain APIs&lt;br /&gt;
|&lt;br /&gt;
* saHpiSessionClose()&lt;br /&gt;
* saHpiSessionOpen()&lt;br /&gt;
* saHpiDiscover()&lt;br /&gt;
* saHpiRptEntryGet()&lt;br /&gt;
* saHpiRptEntryGetByResourceId()&lt;br /&gt;
* saHpiSubscribe()&lt;br /&gt;
* saHpiUnsubscribe()&lt;br /&gt;
* saHpiEventGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Resource APIs&lt;br /&gt;
|&lt;br /&gt;
* saHpiRdrGet()&lt;br /&gt;
* saHpiAutoExtractTimeoutSet()&lt;br /&gt;
* saHpiAutoInsertTimeoutSet()&lt;br /&gt;
* saHpiHotSwapPolicyCancel()&lt;br /&gt;
* saHpiResourceActiveSet()&lt;br /&gt;
* saHpiResourceInactiveSet()&lt;br /&gt;
* saHpiHotSwapStateGet()&lt;br /&gt;
* saHpiHotSwapActionRequest()&lt;br /&gt;
* saHpiHotSwapIndicatorStateGet()&lt;br /&gt;
* saHpiResourceResetStateSet()&lt;br /&gt;
* saHpiResourcePowerStateSet()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In addition to the above APIs SAFplus Platform also depends on the following events generated by HPI&lt;br /&gt;
# Hot Swap events (SAHPI_ET_HOTSWAP) &lt;br /&gt;
# Sensor events (SAHPI_ET_SENSOR)&lt;br /&gt;
# Resource Events (SAHPI_ET_RESOURCE)&lt;br /&gt;
&lt;br /&gt;
=='''Modifications to SAF AIS Header files'''==&lt;br /&gt;
&lt;br /&gt;
In a few instances, OpenClovis engineers found that the standard SAF-supplied header files caused errors and warnings on certain compilers.  In these cases OpenClovis modified the standard SAF header file to work with these compilers.  All of these changes broaden the set of compatible compilers.  None of these changes modify the SAF APIs.&lt;br /&gt;
&lt;br /&gt;
For example, in saAis.h, the following constant is defined:&lt;br /&gt;
&lt;br /&gt;
 #define SA_TIME_ONE_MINUTE      60000000000&lt;br /&gt;
&lt;br /&gt;
However, the number defined is greater than a 32-bit integer, so it is actually required to append a size suffix:&lt;br /&gt;
&lt;br /&gt;
 #define SA_TIME_ONE_MINUTE      60000000000LL&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/safcompliance</id>
		<title>Doc:latest/safcompliance</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/safcompliance"/>
				<updated>2011-10-24T19:36:34Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* Additional OpenClovis SAFplus Platform Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
Adherence to standards is a critical requirement for Next Generation Network&lt;br /&gt;
deployments. The Service Availability Forum (SA Forum) is the primary standards body in&lt;br /&gt;
the context of High Availability Middleware and enjoys the participation of over 95% of&lt;br /&gt;
Tier 1 TEMs. OpenClovis has been actively participating in the forum and helping to drive&lt;br /&gt;
the emerging Hardware Platform Interface (HPI) and Application Interface Specification&lt;br /&gt;
(AIS) standards based on its experience.&lt;br /&gt;
&lt;br /&gt;
As a result of the close involvement of OpenClovis with the SA Forum, the OpenClovis&lt;br /&gt;
SAFplus Platform product has been aligned with SA Forum AIS architecture and functional partitioning&lt;br /&gt;
from its inception and has kept pace with the evolution in the specifications and in many&lt;br /&gt;
cases, anticipated new features and functionality.&lt;br /&gt;
&lt;br /&gt;
Even as the specifications are evolving, the SA Forum is in the process of defining a test&lt;br /&gt;
suite that will establish compliance of a product to the specifications. While this activity is&lt;br /&gt;
in an advanced state for the HPI specifications, it has not yet taken off for AIS&lt;br /&gt;
specifications. Partial compliance test suites are expected to be available for HPI by end&lt;br /&gt;
of the 2006 calendar year.&lt;br /&gt;
&lt;br /&gt;
It should be noted that where a specification is 'A' level (example: SAI-AIS-NTF-A.01.01&lt;br /&gt;
for the Notification Service), SAF is not obligated to preserve backward compatibility&lt;br /&gt;
while going to a 'B' level version of the specification. On the other hand, backward&lt;br /&gt;
compatibility with respect to API's will be preserved between different versions of the 'B'&lt;br /&gt;
level specifications (Example: between SAI-AMF-B01.01 and SAI-AMF-B02.01)&lt;br /&gt;
&lt;br /&gt;
OpenClovis expects to formally establish the compliance of SAFplus Platform to the SA Forum AIS&lt;br /&gt;
standards as and when these compliance test suites become available. This document&lt;br /&gt;
details the level of alignment of OpenClovis SAFplus Platform with the SA Forum specifications.&lt;br /&gt;
&lt;br /&gt;
=='''Standards Referenced'''==&lt;br /&gt;
&lt;br /&gt;
The SA Forum specifications referred to in this document are available at http://www.saforum.org/home. The versions of the specifications referred to are&lt;br /&gt;
&lt;br /&gt;
*SAI-Overview-B.02.01&lt;br /&gt;
*SAI-AIS-AMF-B.02.01&lt;br /&gt;
*SAI-AIS-MSG-B.02.01&lt;br /&gt;
&lt;br /&gt;
*AIS-CKPT-B.01.01&lt;br /&gt;
*AIS-EVT-B.01.01&lt;br /&gt;
*AIS-CLM-B.01.01&lt;br /&gt;
&lt;br /&gt;
*SAI-AIS_LOG-A.01.01&lt;br /&gt;
*SAI-AIS-IMM-A.01.01&lt;br /&gt;
*SAI-AIS-NTF-A.01.01&lt;br /&gt;
*SAI-AIS-NAM-A.01.01&lt;br /&gt;
*Hardware Platform Interface Specification B.01.01&lt;br /&gt;
&lt;br /&gt;
=='''Compliance with Service Availability Forum AIS Architecture'''==&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform complies with the Service Availability Forum (SAF) Hardware Platform Interface (HPI) and Application Interface Specification (AIS) specifications. OpenClovis Inc. is actively participating in the SA Forum and helping to drive the emerging HPI and AIS standards based on its experience.&lt;br /&gt;
&lt;br /&gt;
===Programming Model and Usage===&lt;br /&gt;
&lt;br /&gt;
Section 3.1 of SAI-AIS-Overview-B.02.01 describes the SAF Application Interface programming model and the generally intended usage of the interfaces.&lt;br /&gt;
&lt;br /&gt;
It introduces the area server as an abstraction that represents the server providing services for a specification area, for instance, Availability Management Framework, Group Membership Service and so on. The interface is defined as occurring between a user application that needs the services of the area server and an area implementation library.&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform adheres to the SAF area server-area implementation library abstraction and the SAF programming and usage model in providing various services.&lt;br /&gt;
&lt;br /&gt;
===Availability Management Framework (AMF)===&lt;br /&gt;
&lt;br /&gt;
The Availability Management Framework (AMF) is the most important software entity of the SAF AIS Specification. It provides service availability by coordinating redundant resources within a cluster to deliver a system without a single point of failure. AMF prescribes a way to model applications that needs to be highly available. In addition, AMF provides a set of APIs that must be used by these applications to be managed for high availability.&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform is implemented in complete accordance with the SAF AMF model and interfaces. This may be considered as the core of the SAF solution for high availability. The only limitation in the current release with respect to the AMF component model is that SAF defines a flexible mapping between components, processes and threads whereas OpenClovis SAFplus Platform supports only a single process per component. OpenClovis Inc. offers to support one-to-one relationship between a component and a process. However, a component can have multiple threads of execution within it.&lt;br /&gt;
&lt;br /&gt;
===Application Interface Specification (AIS) Services===&lt;br /&gt;
              &lt;br /&gt;
The following OpenClovis SAFplus Platform components provide services that are functionally equivalent to SAF AIS specifications:&lt;br /&gt;
*Availability Management Framework (AMF)&lt;br /&gt;
*Checkpoint Service (CPS)&lt;br /&gt;
*Event Manager (EM)&lt;br /&gt;
*Group Membership Service (GMS)&lt;br /&gt;
*Messaging Service (MSG)&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform AMF Features===&lt;br /&gt;
*'''HA model supported'''&lt;br /&gt;
** 2N&lt;br /&gt;
** M+N&lt;br /&gt;
&lt;br /&gt;
*'''Auto Adjust'''&lt;br /&gt;
SAF SG auto adjust feature to adjust the SG based on the SU ranking giving preference to higher ranked ones for active assignments&lt;br /&gt;
&lt;br /&gt;
*'''SI Dependency'''&lt;br /&gt;
SAF SI dependency across service groups&lt;br /&gt;
&lt;br /&gt;
*'''CSI Dependency'''&lt;br /&gt;
SAF CSI dependency within the same SI for work assignments&lt;br /&gt;
&lt;br /&gt;
*'''Component instantiation dependency'''&lt;br /&gt;
SAF component instantiation dependency for components within the same Service Unit configurable through instantiationLevel attribute. &lt;br /&gt;
&lt;br /&gt;
*'''Reduction Procedure'''&lt;br /&gt;
SAF SG reduction procedure applied when the SG is running under reduced potential for computing and removing less optimal standby assignments to assign Service Instances.&lt;br /&gt;
&lt;br /&gt;
*'''AMF NOTIFICATIONS'''&lt;br /&gt;
SAF HAStateChangeNotify and SIAssignmentStateChangeNotify notifications for applications to subscribe for AMF state transitions&lt;br /&gt;
&lt;br /&gt;
*'''Preferred SI assignment'''&lt;br /&gt;
Preferred SI assignment that could be configured for SUs to control SI assignments. Coupled with the delayed SG startup configuration through restartDuration to control instantiation of all the preferred SUs, SI preference could be enforced during initial cluster startup for the Service units in the cluster.&lt;br /&gt;
&lt;br /&gt;
*'''Proxy-Proxied support'''&lt;br /&gt;
Allow HA control of legacy application (non-SAF awared) via proxy&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform Cluster/Group Membership Service (GMS) Features===&lt;br /&gt;
The SA-Forum CLM API is fully supported.&lt;br /&gt;
&lt;br /&gt;
*'''Cluster Membership'''&lt;br /&gt;
CLM service manages the membership of the nodes. It manages the cluster formation during node joins and leaves.&lt;br /&gt;
&lt;br /&gt;
*'''Tracking Cluster Membership'''&lt;br /&gt;
Any application can register for Cluster Track callback through which it can get the notification for any node joins and leaves in the cluster&lt;br /&gt;
&lt;br /&gt;
*'''Getting Cluster Member information'''&lt;br /&gt;
API interface are available to get the information such as Address, node name etc, for any given cluster member node.&lt;br /&gt;
&lt;br /&gt;
*'''Cluster node eviction/ejection'''&lt;br /&gt;
A cluster node can be administratively ejected from the cluster.&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform Checkpointing Service (CPS) Features===&lt;br /&gt;
*'''Checkpoint/Section creation/deletion'''&lt;br /&gt;
CPS provides APIs for users to create/delete checkpoints and sections within the checkpoints.&lt;br /&gt;
&lt;br /&gt;
*'''Granularity at Section level'''&lt;br /&gt;
CPS allows user to create a checkpoint and inside a checkpoint user can create any number of sections and read/write each sections independently.&lt;br /&gt;
&lt;br /&gt;
*'''Checkpoint Status'''&lt;br /&gt;
CPS provides API to retrieve checkpoint status.&lt;br /&gt;
&lt;br /&gt;
*'''Locking at Section level'''&lt;br /&gt;
CPS provides read/write locks at section level due to which multiple sections can be accessed simultaneously. &lt;br /&gt;
&lt;br /&gt;
*'''Update options'''&lt;br /&gt;
CPS allows both Synchronous and Asynchronous update of the checkpoint replicas across the cluster&lt;br /&gt;
&lt;br /&gt;
*'''Replica Management'''&lt;br /&gt;
CPS allows both collocated and non-collocated mode of checkpoint replicas&lt;br /&gt;
&lt;br /&gt;
*'''Choosing replica at run time'''&lt;br /&gt;
User can use ActiveReplicaSet() APIs to set the active replica at run time.&lt;br /&gt;
&lt;br /&gt;
*'''Retention time'''&lt;br /&gt;
CPS provides users to specify a retention time for which the checkpoint is retained even when no one is accessing the checkpoint&lt;br /&gt;
&lt;br /&gt;
*'''Section Expiration Time'''&lt;br /&gt;
User can set an absolute expiration time for a section after which the section is deleted irrespective of its usage at that time. &lt;br /&gt;
&lt;br /&gt;
*'''Section Iteration'''&lt;br /&gt;
Users can iterate through the sections of a checkpoint.&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform Event Service features===&lt;br /&gt;
*'''Publish/Subscribe multipoint-to-multipoint communication mechanism'''&lt;br /&gt;
** Based on concept of event channels&lt;br /&gt;
** Publisher communicates asynchronously with one or more subscribers over an event channel&lt;br /&gt;
** Multiple publishers and subscribers can communicate over the same event channel; publishers can be subscribers on the same event channel&lt;br /&gt;
** Individual publishers and individual subscribers can communicate over multiple channels&lt;br /&gt;
*'''Events consist of standard header and one or more bytes of payload data'''&lt;br /&gt;
** i.e. Event Service does not impose any specific transfer syntax for the data&lt;br /&gt;
*'''Event channel management'''&lt;br /&gt;
** Event service provides APIs for opening, closing and deleting event channels&lt;br /&gt;
*'''Event operations'''&lt;br /&gt;
** Event service provides APIs for managing the event payload data, publishing the event, subscribing for the event etc&lt;br /&gt;
&lt;br /&gt;
===Additional SAFplus Platform Services===&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform also provides various components that were implemented earlier than its implementation with SAF specifications. These components provide services that are functional equivalent to SAF AIS services as listed below:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''SAFplus Platform Services Equivalent to SA Forum AIS Services''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| OpenClovis SAFplus Platform Components&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Functionally Equivalent AIS Service&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| AIS Specification&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Clovis Object Repository (COR)&lt;br /&gt;
|&lt;br /&gt;
Information Model Management Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-IMM-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Alarm Manager (AM) &lt;br /&gt;
|&lt;br /&gt;
Notification Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-NTF-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Log Service &lt;br /&gt;
|&lt;br /&gt;
Logging Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-LOG-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Naming Service &lt;br /&gt;
|&lt;br /&gt;
Naming Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-NAM-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Platform Management Service &lt;br /&gt;
|&lt;br /&gt;
Platform Management Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-PLM-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===IMM (OpenClovis Object Repository - COR) Features===&lt;br /&gt;
The OpenClovis Object Repository(COR) implements the IMM features. We are progressing on having API level compliance which will be available in R5.0.&lt;br /&gt;
&lt;br /&gt;
The following are the IMM compliant features of COR:&lt;br /&gt;
&lt;br /&gt;
*'''Object Mananger and Object Implementer'''&lt;br /&gt;
**COR provides a rich set of APIs to make configuration changes on a Managed Object (MO). It provides service to implement a MO by multiple Object Implementers (OI), so that the configuration changes on the MO can be validated by all the OIs. It provides APIs to make or remove an application as a OI for a MO.&lt;br /&gt;
&lt;br /&gt;
*'''Runtime Attributes Management'''&lt;br /&gt;
**COR provides service to implement the runtime attributes of an object or all the object instances of a class. The Runtime attributes values can be cached or non-cached in COR. The cached runtime attributes values has to be updated by Primary Object Implementer (POI) periodically in COR. The value of non-cached runtime attributes will be updated by POI on request by COR. The values of cached runtime attributes can be persisted into storage devices.&lt;br /&gt;
&lt;br /&gt;
*'''Configuration Attributes Management'''&lt;br /&gt;
**The Configuration attributes are always cached and persisted by COR. Any configuration change on these attributes by a OM will be implemented by all the OIs.&lt;br /&gt;
&lt;br /&gt;
*'''Attribute Characteristics'''&lt;br /&gt;
**COR supports the following attribute characteristics.&lt;br /&gt;
***CONFIG      - Indicates that the attribute is a configuration type attribute.&lt;br /&gt;
***RUNTIME     - Indicates that the attribute is a runtime attribute.&lt;br /&gt;
***WRITABLE    - Indicates that the configuration attribute can be modified.&lt;br /&gt;
***INITIALIZED - Indicates that value for the configuration attribute must be specified when the object is created.&lt;br /&gt;
***CACHED      - Indicates that the value of the attribute is cached in COR.&lt;br /&gt;
***PERSISTENT  - Indicates that the value of the attribute must be stored in a permanent manner by COR&lt;br /&gt;
&lt;br /&gt;
*'''Object Class Management'''&lt;br /&gt;
**COR provides APIs to create, delete and modify the classes, and to make hierarchical relationship between the classes. It also provides service to inherit the existing class to create a new class.&lt;br /&gt;
&lt;br /&gt;
*'''Tree organization of Objects'''&lt;br /&gt;
**COR organizes the MOs in a hierarchical manner supporting parent-child relationship, inheritance, association and containment relationships.&lt;br /&gt;
&lt;br /&gt;
*'''Search Operations'''&lt;br /&gt;
**The search operations can be performed on a single MO, or a MO and its children, or a sub tree rooted from the given MO.&lt;br /&gt;
**We can either retrieve all the attributes in the MO matching the given criteria or only the matching attributes.&lt;br /&gt;
&lt;br /&gt;
*'''Object Access'''&lt;br /&gt;
**COR bundle GET APIs can be used to retrieve the attributes values in a efficient manner by grouping the GET requests belonging different MOs into one single request to COR. The values of runtime non-cached attributes will be updated by POI on request by COR.&lt;br /&gt;
&lt;br /&gt;
*'''Class Implementer'''&lt;br /&gt;
**COR provides APIs for the application to implement all the Object instances of a class, for both Configuration and Runtime attributes.&lt;br /&gt;
&lt;br /&gt;
===SAF Notification Features===&lt;br /&gt;
OpenClovis SAFplus Platform is compliant with the following Notification features :&lt;br /&gt;
&lt;br /&gt;
*'''Notification Types'''&lt;br /&gt;
**Alarm&lt;br /&gt;
**State Change&lt;br /&gt;
**Object Create/Delete&lt;br /&gt;
**Attribute Change&lt;br /&gt;
&lt;br /&gt;
*'''Alarm Notification'''&lt;br /&gt;
**An alarm report is a notification of a specific event that may or may not represent an error. OpenClovis Alarm notification is fully compliant with ITU-T X.733 standard (which is recommended by SAF-NTF).&lt;br /&gt;
&lt;br /&gt;
*'''State Change Notification'''&lt;br /&gt;
**OpenClovis AMF provides services for the following state change notifications to the Management Applications&lt;br /&gt;
***HA state of the SU changed&lt;br /&gt;
***SI partially/fully assigned&lt;br /&gt;
***Component arrived/departed&lt;br /&gt;
***Node arrived/departed&lt;br /&gt;
&lt;br /&gt;
*'''Object Create/Delete and Attribute Change Notifications'''&lt;br /&gt;
**OpenClovis SAFplus Platform provides services for the notification of Managed Object Creation, Deletion and Attribute changes. It also supports the Management Applications to filter the attribute change notifications based on attribute identifiers.&lt;br /&gt;
&lt;br /&gt;
*'''Notification Delivery Characteristics'''&lt;br /&gt;
**Guaranteed delivery&lt;br /&gt;
**At most once delivery&lt;br /&gt;
**Ordered delivery&lt;br /&gt;
**Persisted (Alarm notifications).&lt;br /&gt;
&lt;br /&gt;
*'''Notification Filtering'''&lt;br /&gt;
**OpenClovis SAFplus Platform provides service for filtering the notifications based on one or more filter criteria which is particular to the notification type. It also provides the ability to correlate with the other notifications.&lt;br /&gt;
&lt;br /&gt;
=='''Support for SAF AIS Interfaces'''==&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform complies with the SAF AIS interfaces for the following components:&lt;br /&gt;
&lt;br /&gt;
===Availability Management Framework (AMF)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Availability Management Framework (AMF) supports the following SAF AIS interfaces as mentioned in SAI-AIS-AMF-B.02.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of AMF''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saAmfInitialize()&lt;br /&gt;
* saAmfSelectionObjectGet()&lt;br /&gt;
* saAmfDispatch()&lt;br /&gt;
* saAmfFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Health Monitoring&lt;br /&gt;
|&lt;br /&gt;
* saAmfHealthCheckStart()&lt;br /&gt;
* saAmfHealthCheckStop()&lt;br /&gt;
* SaAmfHealthCheckCallbackT&lt;br /&gt;
* saAmfHealthCheckConfirm()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Registration and Un-registration&lt;br /&gt;
|&lt;br /&gt;
* saAmfComponentRegister()&lt;br /&gt;
* saAmfComponentUnregister()&lt;br /&gt;
* saAmfComponentNameGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Service Instance Management&lt;br /&gt;
|&lt;br /&gt;
* saAmfHAStateGet()&lt;br /&gt;
* SaAmfCSISetCallbackT&lt;br /&gt;
* SaAmfCSIRemoveCallbackT&lt;br /&gt;
* saAmfCSIQuiescingComplete()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of AMF''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* SaAmfComponentTerminateCallbackT&lt;br /&gt;
* SaAmfProxiedComponentInstantiateCallbackT&lt;br /&gt;
* SaAmfProxiedComponentCleanupCallbackT&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Protection Group Management&lt;br /&gt;
|&lt;br /&gt;
* saAmfProtectionGroupTrack()&lt;br /&gt;
* SaAmfProtectionGroupTrackCallbackT&lt;br /&gt;
* saAmfProtectionGroupTrackStop()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Error Reporting &lt;br /&gt;
|&lt;br /&gt;
* saAmfComponentErrorReport()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Response   &lt;br /&gt;
|&lt;br /&gt;
* saAmfResponse()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Unsupported API's of AMF''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Brief &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Unsupported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Passive Monitoring of processes is not supported&lt;br /&gt;
|&lt;br /&gt;
* saAmfPmStart()&lt;br /&gt;
* saAmfPmStop()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Freeing the memory allocated by the saAmfProtectionGroupTrack()&lt;br /&gt;
|&lt;br /&gt;
* saAmfProtectionGroupNotificationFree()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Error Clear API is not supported.&lt;br /&gt;
|&lt;br /&gt;
* saAmfComponentErrorClear()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Checkpointing Service (CPS)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Checkpointing Service (CPS) supports the following SAF AIS interfaces as mentioned in SAI-AIS-CKPT-B.01.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of CPS''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptInitialize()&lt;br /&gt;
* saCkptSelectionObjectGet()&lt;br /&gt;
* saCkptDispatch()&lt;br /&gt;
* saCkptFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Checkpoint Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptCheckpointOpen()&lt;br /&gt;
* saCkptCheckpointOpenCallabackT&lt;br /&gt;
* saCkptCheckpointOpenAsync()&lt;br /&gt;
* saCkptCheckpointClose()&lt;br /&gt;
* saCkptCheckpointUnlink()&lt;br /&gt;
* saCkptActiveReplicaSet()&lt;br /&gt;
* saCkptCheckpointRetentionDurationSet()&lt;br /&gt;
* saCkptCheckpointStatusGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Section Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptSectionIterationInitialize()&lt;br /&gt;
* saCkptSectionIterationNext()&lt;br /&gt;
* saCkptSectionIterationFinalize()&lt;br /&gt;
* saCkptSectionCreate()&lt;br /&gt;
* saCkptSectionExpirationTimeSet()&lt;br /&gt;
* saCkptSectionDelete()&lt;br /&gt;
* saCkptCheckpointWrite()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Data Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptSectionOverwrite()&lt;br /&gt;
* saCkptCheckpointRead()&lt;br /&gt;
* saCkptCheckpointSynchronize()&lt;br /&gt;
* saCkptCheckpointSynchronizeAsync()&lt;br /&gt;
* SaCkptCheckpointSynchronizeCallbackT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Event Manager (EM)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Event Manager supports the following SAF AIS interfaces as mentioned in SAI-AIS-EVT-B.01.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of EM''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saEvtInitialize()&lt;br /&gt;
* saEvtFinalize()&lt;br /&gt;
* saEvtSelectionObjectGet()&lt;br /&gt;
* saEvtDispatch()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Event Operations&lt;br /&gt;
|&lt;br /&gt;
* saEvtEventAllocate()&lt;br /&gt;
* saEvtEventFree()&lt;br /&gt;
* saEvtEventAttributesSet()&lt;br /&gt;
* saEvtEventAttributesGet()&lt;br /&gt;
* saEvtEventDataGet()&lt;br /&gt;
* saEvtEventPublish()&lt;br /&gt;
* saEvtEventSubscribe()&lt;br /&gt;
* SaEvtEventDeliverCallbackT&lt;br /&gt;
* saEvtEventUnsubscribe()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Event Channel Operations&lt;br /&gt;
|&lt;br /&gt;
* saEvtChannelOpen()              &lt;br /&gt;
* saEvtChannelOpenAsync()&lt;br /&gt;
* SaEvtChannelOpenCallbackT&lt;br /&gt;
* saEvtChannelUnlink()&lt;br /&gt;
* saEvtChannelClose()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Unsupported API's of EM''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Brief&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Unsupported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Event Retention Time is not supported&lt;br /&gt;
|&lt;br /&gt;
* saEvtEventRetentionTimeClear()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Group Membership Service (GMS)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Group Membership Service (GMS) supports the following SAF AIS interfaces as mentioned in AIS-CLM-B.01.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of GMS''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saClmInitialize()&lt;br /&gt;
* saClmSelectionObjectGet()&lt;br /&gt;
* saClmDispatch()&lt;br /&gt;
* saClmFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Group Membership Operations&lt;br /&gt;
|&lt;br /&gt;
* saClmClusterTrack()&lt;br /&gt;
* SaClmClusterTrackCallbackT&lt;br /&gt;
* saClmClusterTrackStop()&lt;br /&gt;
* saClmClusterNodeGet()&lt;br /&gt;
* saClmClusterNodeGetAsync()&lt;br /&gt;
* SaClmClusterNodeGetCallbackT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Messaging Service (MSG)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Messaging Service (MSG) supports the following SAF AIS interfaces as mentioned in SAF-AIS-MSG-B.02.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of MSG''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saMsgInitialize()&lt;br /&gt;
* saMsgSelectionObjectGet()&lt;br /&gt;
* saMsgDispatch()&lt;br /&gt;
* saMsgFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Message Queue Operations&lt;br /&gt;
|&lt;br /&gt;
* saMsgQueueOpen()&lt;br /&gt;
* saMsgQueueOpenAsync()&lt;br /&gt;
* SaMsgQueueOpenCallbackT&lt;br /&gt;
* saMsgQueueClose()&lt;br /&gt;
* saMsgQueueStatusGet()&lt;br /&gt;
* saMsgQueueRetentionTimeSet()&lt;br /&gt;
* saMsgQueueUnlink()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Management of Message Queue Groups&lt;br /&gt;
|&lt;br /&gt;
* saMsgQueueGroupCreate()&lt;br /&gt;
* saMsgQueueGroupInsert()&lt;br /&gt;
* saMsgQueueGroupRemove()&lt;br /&gt;
* saMsgQueueGroupDelete()&lt;br /&gt;
* saMsgQueueGroupTrack()&lt;br /&gt;
* SaMsgQueueGroupTrackCallbackT&lt;br /&gt;
* saMsgQueueGroupTrackStop()&lt;br /&gt;
* saMsgQueueGroupNotificationFree()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of MSG''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Message Send and Receive Operations&lt;br /&gt;
| &lt;br /&gt;
* saMsgMessageSend()&lt;br /&gt;
* saMsgMessageSendAsync()&lt;br /&gt;
* SaMsgMessageDeliveredCallbackT&lt;br /&gt;
* saMsgMessageGet()&lt;br /&gt;
* saMsgMessageDataFree()&lt;br /&gt;
* SaMsgMessagedReceivedCallbackT&lt;br /&gt;
* saMsgMessageCancel()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Request and Reply Operations&lt;br /&gt;
|&lt;br /&gt;
* saMsgMessageSendReceive()&lt;br /&gt;
* saMsgMessageReply()&lt;br /&gt;
* saMsgMessageReplyAsync()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=='''Software Management Framework (SMF)'''==&lt;br /&gt;
&lt;br /&gt;
SMF Aligned In Service Software Upgrade (ISSU.&lt;br /&gt;
Supports application and OpenClovis SAFplus Platform middleware upgrade in a rolling (in-service) or single-step mode.&lt;br /&gt;
&lt;br /&gt;
'''Single-Step'''&lt;br /&gt;
For deployment of non-backwards compatible software, or rapid deployment of software.  This method stops the relevant services on all nodes (causing an outage) and then upgrades that software and restarts.  Note that services are stopped at various granularity levels depending on what is being upgraded.  In other words, application A can be taken out-of-service and upgraded across the cluster without affecting application B running on the same nodes.&lt;br /&gt;
&lt;br /&gt;
'''Inservice Rolling'''&lt;br /&gt;
This is the most commonly known telecom quality upgrade method.  For deployment of backwards-compatible software across the cluster, this method stops service in one &amp;quot;upgrade unit&amp;quot; at a time, upgrades the software and restarts before stopping the next &amp;quot;upgrade unit&amp;quot;.  This process continues iteratively until the entire cluster is upgraded.  Since the available redundant capacity takes over for the unit being upgraded service will be unaffected.&lt;br /&gt;
&lt;br /&gt;
=='''Hardware Platform Interface (HPI)'''==&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform does not implement the HPI APIs on its own. SAFplus Platform has been integrated and tested with the following implementations of HPI B.01.01 specification.&lt;br /&gt;
* OpenHPI 2.8.1, 2.10.2&lt;br /&gt;
* Radisys HPI 1.4&lt;br /&gt;
&lt;br /&gt;
The following sections lists out the SAF HPI APIs that are used by SAFplus Platform. Platform provider shall provide at these HPI services in order to integration with OpenClovis SAFplus Platform&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''SAF HPI APIs used by SAFplus''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
General APIs&lt;br /&gt;
|&lt;br /&gt;
* saHpiVersionGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Domain APIs&lt;br /&gt;
|&lt;br /&gt;
* saHpiSessionClose()&lt;br /&gt;
* saHpiSessionOpen()&lt;br /&gt;
* saHpiDiscover()&lt;br /&gt;
* saHpiRptEntryGet()&lt;br /&gt;
* saHpiRptEntryGetByResourceId()&lt;br /&gt;
* saHpiSubscribe()&lt;br /&gt;
* saHpiUnsubscribe()&lt;br /&gt;
* saHpiEventGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Resource APIs&lt;br /&gt;
|&lt;br /&gt;
* saHpiRdrGet()&lt;br /&gt;
* saHpiAutoExtractTimeoutSet()&lt;br /&gt;
* saHpiAutoInsertTimeoutSet()&lt;br /&gt;
* saHpiHotSwapPolicyCancel()&lt;br /&gt;
* saHpiResourceActiveSet()&lt;br /&gt;
* saHpiResourceInactiveSet()&lt;br /&gt;
* saHpiHotSwapStateGet()&lt;br /&gt;
* saHpiHotSwapActionRequest()&lt;br /&gt;
* saHpiHotSwapIndicatorStateGet()&lt;br /&gt;
* saHpiResourceResetStateSet()&lt;br /&gt;
* saHpiResourcePowerStateSet()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In addition to the above APIs SAFplus Platform also depends on the following events generated by HPI&lt;br /&gt;
# Hot Swap events (SAHPI_ET_HOTSWAP) &lt;br /&gt;
# Sensor events (SAHPI_ET_SENSOR)&lt;br /&gt;
# Resource Events (SAHPI_ET_RESOURCE)&lt;br /&gt;
&lt;br /&gt;
=='''Modifications to SAF AIS Header files'''==&lt;br /&gt;
&lt;br /&gt;
In a few instances, OpenClovis engineers found that the standard SAF-supplied header files caused errors and warnings on certain compilers.  In these cases OpenClovis modified the standard SAF header file to work with these compilers.  All of these changes broaden the set of compatible compilers.  None of these changes modify the SAF APIs.&lt;br /&gt;
&lt;br /&gt;
For example, in saAis.h, the following constant is defined:&lt;br /&gt;
&lt;br /&gt;
 #define SA_TIME_ONE_MINUTE      60000000000&lt;br /&gt;
&lt;br /&gt;
However, the number defined is greater than a 32-bit integer, so it is actually required to append a size suffix:&lt;br /&gt;
&lt;br /&gt;
 #define SA_TIME_ONE_MINUTE      60000000000LL&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/safcompliance</id>
		<title>Doc:latest/safcompliance</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/safcompliance"/>
				<updated>2011-10-24T19:36:20Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* OpenClovis Event Service features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
Adherence to standards is a critical requirement for Next Generation Network&lt;br /&gt;
deployments. The Service Availability Forum (SA Forum) is the primary standards body in&lt;br /&gt;
the context of High Availability Middleware and enjoys the participation of over 95% of&lt;br /&gt;
Tier 1 TEMs. OpenClovis has been actively participating in the forum and helping to drive&lt;br /&gt;
the emerging Hardware Platform Interface (HPI) and Application Interface Specification&lt;br /&gt;
(AIS) standards based on its experience.&lt;br /&gt;
&lt;br /&gt;
As a result of the close involvement of OpenClovis with the SA Forum, the OpenClovis&lt;br /&gt;
SAFplus Platform product has been aligned with SA Forum AIS architecture and functional partitioning&lt;br /&gt;
from its inception and has kept pace with the evolution in the specifications and in many&lt;br /&gt;
cases, anticipated new features and functionality.&lt;br /&gt;
&lt;br /&gt;
Even as the specifications are evolving, the SA Forum is in the process of defining a test&lt;br /&gt;
suite that will establish compliance of a product to the specifications. While this activity is&lt;br /&gt;
in an advanced state for the HPI specifications, it has not yet taken off for AIS&lt;br /&gt;
specifications. Partial compliance test suites are expected to be available for HPI by end&lt;br /&gt;
of the 2006 calendar year.&lt;br /&gt;
&lt;br /&gt;
It should be noted that where a specification is 'A' level (example: SAI-AIS-NTF-A.01.01&lt;br /&gt;
for the Notification Service), SAF is not obligated to preserve backward compatibility&lt;br /&gt;
while going to a 'B' level version of the specification. On the other hand, backward&lt;br /&gt;
compatibility with respect to API's will be preserved between different versions of the 'B'&lt;br /&gt;
level specifications (Example: between SAI-AMF-B01.01 and SAI-AMF-B02.01)&lt;br /&gt;
&lt;br /&gt;
OpenClovis expects to formally establish the compliance of SAFplus Platform to the SA Forum AIS&lt;br /&gt;
standards as and when these compliance test suites become available. This document&lt;br /&gt;
details the level of alignment of OpenClovis SAFplus Platform with the SA Forum specifications.&lt;br /&gt;
&lt;br /&gt;
=='''Standards Referenced'''==&lt;br /&gt;
&lt;br /&gt;
The SA Forum specifications referred to in this document are available at http://www.saforum.org/home. The versions of the specifications referred to are&lt;br /&gt;
&lt;br /&gt;
*SAI-Overview-B.02.01&lt;br /&gt;
*SAI-AIS-AMF-B.02.01&lt;br /&gt;
*SAI-AIS-MSG-B.02.01&lt;br /&gt;
&lt;br /&gt;
*AIS-CKPT-B.01.01&lt;br /&gt;
*AIS-EVT-B.01.01&lt;br /&gt;
*AIS-CLM-B.01.01&lt;br /&gt;
&lt;br /&gt;
*SAI-AIS_LOG-A.01.01&lt;br /&gt;
*SAI-AIS-IMM-A.01.01&lt;br /&gt;
*SAI-AIS-NTF-A.01.01&lt;br /&gt;
*SAI-AIS-NAM-A.01.01&lt;br /&gt;
*Hardware Platform Interface Specification B.01.01&lt;br /&gt;
&lt;br /&gt;
=='''Compliance with Service Availability Forum AIS Architecture'''==&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform complies with the Service Availability Forum (SAF) Hardware Platform Interface (HPI) and Application Interface Specification (AIS) specifications. OpenClovis Inc. is actively participating in the SA Forum and helping to drive the emerging HPI and AIS standards based on its experience.&lt;br /&gt;
&lt;br /&gt;
===Programming Model and Usage===&lt;br /&gt;
&lt;br /&gt;
Section 3.1 of SAI-AIS-Overview-B.02.01 describes the SAF Application Interface programming model and the generally intended usage of the interfaces.&lt;br /&gt;
&lt;br /&gt;
It introduces the area server as an abstraction that represents the server providing services for a specification area, for instance, Availability Management Framework, Group Membership Service and so on. The interface is defined as occurring between a user application that needs the services of the area server and an area implementation library.&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform adheres to the SAF area server-area implementation library abstraction and the SAF programming and usage model in providing various services.&lt;br /&gt;
&lt;br /&gt;
===Availability Management Framework (AMF)===&lt;br /&gt;
&lt;br /&gt;
The Availability Management Framework (AMF) is the most important software entity of the SAF AIS Specification. It provides service availability by coordinating redundant resources within a cluster to deliver a system without a single point of failure. AMF prescribes a way to model applications that needs to be highly available. In addition, AMF provides a set of APIs that must be used by these applications to be managed for high availability.&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform is implemented in complete accordance with the SAF AMF model and interfaces. This may be considered as the core of the SAF solution for high availability. The only limitation in the current release with respect to the AMF component model is that SAF defines a flexible mapping between components, processes and threads whereas OpenClovis SAFplus Platform supports only a single process per component. OpenClovis Inc. offers to support one-to-one relationship between a component and a process. However, a component can have multiple threads of execution within it.&lt;br /&gt;
&lt;br /&gt;
===Application Interface Specification (AIS) Services===&lt;br /&gt;
              &lt;br /&gt;
The following OpenClovis SAFplus Platform components provide services that are functionally equivalent to SAF AIS specifications:&lt;br /&gt;
*Availability Management Framework (AMF)&lt;br /&gt;
*Checkpoint Service (CPS)&lt;br /&gt;
*Event Manager (EM)&lt;br /&gt;
*Group Membership Service (GMS)&lt;br /&gt;
*Messaging Service (MSG)&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform AMF Features===&lt;br /&gt;
*'''HA model supported'''&lt;br /&gt;
** 2N&lt;br /&gt;
** M+N&lt;br /&gt;
&lt;br /&gt;
*'''Auto Adjust'''&lt;br /&gt;
SAF SG auto adjust feature to adjust the SG based on the SU ranking giving preference to higher ranked ones for active assignments&lt;br /&gt;
&lt;br /&gt;
*'''SI Dependency'''&lt;br /&gt;
SAF SI dependency across service groups&lt;br /&gt;
&lt;br /&gt;
*'''CSI Dependency'''&lt;br /&gt;
SAF CSI dependency within the same SI for work assignments&lt;br /&gt;
&lt;br /&gt;
*'''Component instantiation dependency'''&lt;br /&gt;
SAF component instantiation dependency for components within the same Service Unit configurable through instantiationLevel attribute. &lt;br /&gt;
&lt;br /&gt;
*'''Reduction Procedure'''&lt;br /&gt;
SAF SG reduction procedure applied when the SG is running under reduced potential for computing and removing less optimal standby assignments to assign Service Instances.&lt;br /&gt;
&lt;br /&gt;
*'''AMF NOTIFICATIONS'''&lt;br /&gt;
SAF HAStateChangeNotify and SIAssignmentStateChangeNotify notifications for applications to subscribe for AMF state transitions&lt;br /&gt;
&lt;br /&gt;
*'''Preferred SI assignment'''&lt;br /&gt;
Preferred SI assignment that could be configured for SUs to control SI assignments. Coupled with the delayed SG startup configuration through restartDuration to control instantiation of all the preferred SUs, SI preference could be enforced during initial cluster startup for the Service units in the cluster.&lt;br /&gt;
&lt;br /&gt;
*'''Proxy-Proxied support'''&lt;br /&gt;
Allow HA control of legacy application (non-SAF awared) via proxy&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform Cluster/Group Membership Service (GMS) Features===&lt;br /&gt;
The SA-Forum CLM API is fully supported.&lt;br /&gt;
&lt;br /&gt;
*'''Cluster Membership'''&lt;br /&gt;
CLM service manages the membership of the nodes. It manages the cluster formation during node joins and leaves.&lt;br /&gt;
&lt;br /&gt;
*'''Tracking Cluster Membership'''&lt;br /&gt;
Any application can register for Cluster Track callback through which it can get the notification for any node joins and leaves in the cluster&lt;br /&gt;
&lt;br /&gt;
*'''Getting Cluster Member information'''&lt;br /&gt;
API interface are available to get the information such as Address, node name etc, for any given cluster member node.&lt;br /&gt;
&lt;br /&gt;
*'''Cluster node eviction/ejection'''&lt;br /&gt;
A cluster node can be administratively ejected from the cluster.&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform Checkpointing Service (CPS) Features===&lt;br /&gt;
*'''Checkpoint/Section creation/deletion'''&lt;br /&gt;
CPS provides APIs for users to create/delete checkpoints and sections within the checkpoints.&lt;br /&gt;
&lt;br /&gt;
*'''Granularity at Section level'''&lt;br /&gt;
CPS allows user to create a checkpoint and inside a checkpoint user can create any number of sections and read/write each sections independently.&lt;br /&gt;
&lt;br /&gt;
*'''Checkpoint Status'''&lt;br /&gt;
CPS provides API to retrieve checkpoint status.&lt;br /&gt;
&lt;br /&gt;
*'''Locking at Section level'''&lt;br /&gt;
CPS provides read/write locks at section level due to which multiple sections can be accessed simultaneously. &lt;br /&gt;
&lt;br /&gt;
*'''Update options'''&lt;br /&gt;
CPS allows both Synchronous and Asynchronous update of the checkpoint replicas across the cluster&lt;br /&gt;
&lt;br /&gt;
*'''Replica Management'''&lt;br /&gt;
CPS allows both collocated and non-collocated mode of checkpoint replicas&lt;br /&gt;
&lt;br /&gt;
*'''Choosing replica at run time'''&lt;br /&gt;
User can use ActiveReplicaSet() APIs to set the active replica at run time.&lt;br /&gt;
&lt;br /&gt;
*'''Retention time'''&lt;br /&gt;
CPS provides users to specify a retention time for which the checkpoint is retained even when no one is accessing the checkpoint&lt;br /&gt;
&lt;br /&gt;
*'''Section Expiration Time'''&lt;br /&gt;
User can set an absolute expiration time for a section after which the section is deleted irrespective of its usage at that time. &lt;br /&gt;
&lt;br /&gt;
*'''Section Iteration'''&lt;br /&gt;
Users can iterate through the sections of a checkpoint.&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform Event Service features===&lt;br /&gt;
*'''Publish/Subscribe multipoint-to-multipoint communication mechanism'''&lt;br /&gt;
** Based on concept of event channels&lt;br /&gt;
** Publisher communicates asynchronously with one or more subscribers over an event channel&lt;br /&gt;
** Multiple publishers and subscribers can communicate over the same event channel; publishers can be subscribers on the same event channel&lt;br /&gt;
** Individual publishers and individual subscribers can communicate over multiple channels&lt;br /&gt;
*'''Events consist of standard header and one or more bytes of payload data'''&lt;br /&gt;
** i.e. Event Service does not impose any specific transfer syntax for the data&lt;br /&gt;
*'''Event channel management'''&lt;br /&gt;
** Event service provides APIs for opening, closing and deleting event channels&lt;br /&gt;
*'''Event operations'''&lt;br /&gt;
** Event service provides APIs for managing the event payload data, publishing the event, subscribing for the event etc&lt;br /&gt;
&lt;br /&gt;
===Additional OpenClovis SAFplus Platform Services===&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform also provides various components that were implemented earlier than its implementation with SAF specifications. These components provide services that are functional equivalent to SAF AIS services as listed below:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''SAFplus Platform Services Equivalent to SA Forum AIS Services''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| OpenClovis SAFplus Platform Components&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Functionally Equivalent AIS Service&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| AIS Specification&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Clovis Object Repository (COR)&lt;br /&gt;
|&lt;br /&gt;
Information Model Management Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-IMM-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Alarm Manager (AM) &lt;br /&gt;
|&lt;br /&gt;
Notification Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-NTF-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Log Service &lt;br /&gt;
|&lt;br /&gt;
Logging Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-LOG-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Naming Service &lt;br /&gt;
|&lt;br /&gt;
Naming Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-NAM-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Platform Management Service &lt;br /&gt;
|&lt;br /&gt;
Platform Management Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-PLM-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===IMM (OpenClovis Object Repository - COR) Features===&lt;br /&gt;
The OpenClovis Object Repository(COR) implements the IMM features. We are progressing on having API level compliance which will be available in R5.0.&lt;br /&gt;
&lt;br /&gt;
The following are the IMM compliant features of COR:&lt;br /&gt;
&lt;br /&gt;
*'''Object Mananger and Object Implementer'''&lt;br /&gt;
**COR provides a rich set of APIs to make configuration changes on a Managed Object (MO). It provides service to implement a MO by multiple Object Implementers (OI), so that the configuration changes on the MO can be validated by all the OIs. It provides APIs to make or remove an application as a OI for a MO.&lt;br /&gt;
&lt;br /&gt;
*'''Runtime Attributes Management'''&lt;br /&gt;
**COR provides service to implement the runtime attributes of an object or all the object instances of a class. The Runtime attributes values can be cached or non-cached in COR. The cached runtime attributes values has to be updated by Primary Object Implementer (POI) periodically in COR. The value of non-cached runtime attributes will be updated by POI on request by COR. The values of cached runtime attributes can be persisted into storage devices.&lt;br /&gt;
&lt;br /&gt;
*'''Configuration Attributes Management'''&lt;br /&gt;
**The Configuration attributes are always cached and persisted by COR. Any configuration change on these attributes by a OM will be implemented by all the OIs.&lt;br /&gt;
&lt;br /&gt;
*'''Attribute Characteristics'''&lt;br /&gt;
**COR supports the following attribute characteristics.&lt;br /&gt;
***CONFIG      - Indicates that the attribute is a configuration type attribute.&lt;br /&gt;
***RUNTIME     - Indicates that the attribute is a runtime attribute.&lt;br /&gt;
***WRITABLE    - Indicates that the configuration attribute can be modified.&lt;br /&gt;
***INITIALIZED - Indicates that value for the configuration attribute must be specified when the object is created.&lt;br /&gt;
***CACHED      - Indicates that the value of the attribute is cached in COR.&lt;br /&gt;
***PERSISTENT  - Indicates that the value of the attribute must be stored in a permanent manner by COR&lt;br /&gt;
&lt;br /&gt;
*'''Object Class Management'''&lt;br /&gt;
**COR provides APIs to create, delete and modify the classes, and to make hierarchical relationship between the classes. It also provides service to inherit the existing class to create a new class.&lt;br /&gt;
&lt;br /&gt;
*'''Tree organization of Objects'''&lt;br /&gt;
**COR organizes the MOs in a hierarchical manner supporting parent-child relationship, inheritance, association and containment relationships.&lt;br /&gt;
&lt;br /&gt;
*'''Search Operations'''&lt;br /&gt;
**The search operations can be performed on a single MO, or a MO and its children, or a sub tree rooted from the given MO.&lt;br /&gt;
**We can either retrieve all the attributes in the MO matching the given criteria or only the matching attributes.&lt;br /&gt;
&lt;br /&gt;
*'''Object Access'''&lt;br /&gt;
**COR bundle GET APIs can be used to retrieve the attributes values in a efficient manner by grouping the GET requests belonging different MOs into one single request to COR. The values of runtime non-cached attributes will be updated by POI on request by COR.&lt;br /&gt;
&lt;br /&gt;
*'''Class Implementer'''&lt;br /&gt;
**COR provides APIs for the application to implement all the Object instances of a class, for both Configuration and Runtime attributes.&lt;br /&gt;
&lt;br /&gt;
===SAF Notification Features===&lt;br /&gt;
OpenClovis SAFplus Platform is compliant with the following Notification features :&lt;br /&gt;
&lt;br /&gt;
*'''Notification Types'''&lt;br /&gt;
**Alarm&lt;br /&gt;
**State Change&lt;br /&gt;
**Object Create/Delete&lt;br /&gt;
**Attribute Change&lt;br /&gt;
&lt;br /&gt;
*'''Alarm Notification'''&lt;br /&gt;
**An alarm report is a notification of a specific event that may or may not represent an error. OpenClovis Alarm notification is fully compliant with ITU-T X.733 standard (which is recommended by SAF-NTF).&lt;br /&gt;
&lt;br /&gt;
*'''State Change Notification'''&lt;br /&gt;
**OpenClovis AMF provides services for the following state change notifications to the Management Applications&lt;br /&gt;
***HA state of the SU changed&lt;br /&gt;
***SI partially/fully assigned&lt;br /&gt;
***Component arrived/departed&lt;br /&gt;
***Node arrived/departed&lt;br /&gt;
&lt;br /&gt;
*'''Object Create/Delete and Attribute Change Notifications'''&lt;br /&gt;
**OpenClovis SAFplus Platform provides services for the notification of Managed Object Creation, Deletion and Attribute changes. It also supports the Management Applications to filter the attribute change notifications based on attribute identifiers.&lt;br /&gt;
&lt;br /&gt;
*'''Notification Delivery Characteristics'''&lt;br /&gt;
**Guaranteed delivery&lt;br /&gt;
**At most once delivery&lt;br /&gt;
**Ordered delivery&lt;br /&gt;
**Persisted (Alarm notifications).&lt;br /&gt;
&lt;br /&gt;
*'''Notification Filtering'''&lt;br /&gt;
**OpenClovis SAFplus Platform provides service for filtering the notifications based on one or more filter criteria which is particular to the notification type. It also provides the ability to correlate with the other notifications.&lt;br /&gt;
&lt;br /&gt;
=='''Support for SAF AIS Interfaces'''==&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform complies with the SAF AIS interfaces for the following components:&lt;br /&gt;
&lt;br /&gt;
===Availability Management Framework (AMF)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Availability Management Framework (AMF) supports the following SAF AIS interfaces as mentioned in SAI-AIS-AMF-B.02.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of AMF''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saAmfInitialize()&lt;br /&gt;
* saAmfSelectionObjectGet()&lt;br /&gt;
* saAmfDispatch()&lt;br /&gt;
* saAmfFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Health Monitoring&lt;br /&gt;
|&lt;br /&gt;
* saAmfHealthCheckStart()&lt;br /&gt;
* saAmfHealthCheckStop()&lt;br /&gt;
* SaAmfHealthCheckCallbackT&lt;br /&gt;
* saAmfHealthCheckConfirm()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Registration and Un-registration&lt;br /&gt;
|&lt;br /&gt;
* saAmfComponentRegister()&lt;br /&gt;
* saAmfComponentUnregister()&lt;br /&gt;
* saAmfComponentNameGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Service Instance Management&lt;br /&gt;
|&lt;br /&gt;
* saAmfHAStateGet()&lt;br /&gt;
* SaAmfCSISetCallbackT&lt;br /&gt;
* SaAmfCSIRemoveCallbackT&lt;br /&gt;
* saAmfCSIQuiescingComplete()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of AMF''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* SaAmfComponentTerminateCallbackT&lt;br /&gt;
* SaAmfProxiedComponentInstantiateCallbackT&lt;br /&gt;
* SaAmfProxiedComponentCleanupCallbackT&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Protection Group Management&lt;br /&gt;
|&lt;br /&gt;
* saAmfProtectionGroupTrack()&lt;br /&gt;
* SaAmfProtectionGroupTrackCallbackT&lt;br /&gt;
* saAmfProtectionGroupTrackStop()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Error Reporting &lt;br /&gt;
|&lt;br /&gt;
* saAmfComponentErrorReport()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Response   &lt;br /&gt;
|&lt;br /&gt;
* saAmfResponse()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Unsupported API's of AMF''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Brief &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Unsupported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Passive Monitoring of processes is not supported&lt;br /&gt;
|&lt;br /&gt;
* saAmfPmStart()&lt;br /&gt;
* saAmfPmStop()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Freeing the memory allocated by the saAmfProtectionGroupTrack()&lt;br /&gt;
|&lt;br /&gt;
* saAmfProtectionGroupNotificationFree()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Error Clear API is not supported.&lt;br /&gt;
|&lt;br /&gt;
* saAmfComponentErrorClear()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Checkpointing Service (CPS)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Checkpointing Service (CPS) supports the following SAF AIS interfaces as mentioned in SAI-AIS-CKPT-B.01.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of CPS''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptInitialize()&lt;br /&gt;
* saCkptSelectionObjectGet()&lt;br /&gt;
* saCkptDispatch()&lt;br /&gt;
* saCkptFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Checkpoint Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptCheckpointOpen()&lt;br /&gt;
* saCkptCheckpointOpenCallabackT&lt;br /&gt;
* saCkptCheckpointOpenAsync()&lt;br /&gt;
* saCkptCheckpointClose()&lt;br /&gt;
* saCkptCheckpointUnlink()&lt;br /&gt;
* saCkptActiveReplicaSet()&lt;br /&gt;
* saCkptCheckpointRetentionDurationSet()&lt;br /&gt;
* saCkptCheckpointStatusGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Section Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptSectionIterationInitialize()&lt;br /&gt;
* saCkptSectionIterationNext()&lt;br /&gt;
* saCkptSectionIterationFinalize()&lt;br /&gt;
* saCkptSectionCreate()&lt;br /&gt;
* saCkptSectionExpirationTimeSet()&lt;br /&gt;
* saCkptSectionDelete()&lt;br /&gt;
* saCkptCheckpointWrite()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Data Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptSectionOverwrite()&lt;br /&gt;
* saCkptCheckpointRead()&lt;br /&gt;
* saCkptCheckpointSynchronize()&lt;br /&gt;
* saCkptCheckpointSynchronizeAsync()&lt;br /&gt;
* SaCkptCheckpointSynchronizeCallbackT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Event Manager (EM)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Event Manager supports the following SAF AIS interfaces as mentioned in SAI-AIS-EVT-B.01.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of EM''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saEvtInitialize()&lt;br /&gt;
* saEvtFinalize()&lt;br /&gt;
* saEvtSelectionObjectGet()&lt;br /&gt;
* saEvtDispatch()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Event Operations&lt;br /&gt;
|&lt;br /&gt;
* saEvtEventAllocate()&lt;br /&gt;
* saEvtEventFree()&lt;br /&gt;
* saEvtEventAttributesSet()&lt;br /&gt;
* saEvtEventAttributesGet()&lt;br /&gt;
* saEvtEventDataGet()&lt;br /&gt;
* saEvtEventPublish()&lt;br /&gt;
* saEvtEventSubscribe()&lt;br /&gt;
* SaEvtEventDeliverCallbackT&lt;br /&gt;
* saEvtEventUnsubscribe()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Event Channel Operations&lt;br /&gt;
|&lt;br /&gt;
* saEvtChannelOpen()              &lt;br /&gt;
* saEvtChannelOpenAsync()&lt;br /&gt;
* SaEvtChannelOpenCallbackT&lt;br /&gt;
* saEvtChannelUnlink()&lt;br /&gt;
* saEvtChannelClose()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Unsupported API's of EM''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Brief&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Unsupported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Event Retention Time is not supported&lt;br /&gt;
|&lt;br /&gt;
* saEvtEventRetentionTimeClear()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Group Membership Service (GMS)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Group Membership Service (GMS) supports the following SAF AIS interfaces as mentioned in AIS-CLM-B.01.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of GMS''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saClmInitialize()&lt;br /&gt;
* saClmSelectionObjectGet()&lt;br /&gt;
* saClmDispatch()&lt;br /&gt;
* saClmFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Group Membership Operations&lt;br /&gt;
|&lt;br /&gt;
* saClmClusterTrack()&lt;br /&gt;
* SaClmClusterTrackCallbackT&lt;br /&gt;
* saClmClusterTrackStop()&lt;br /&gt;
* saClmClusterNodeGet()&lt;br /&gt;
* saClmClusterNodeGetAsync()&lt;br /&gt;
* SaClmClusterNodeGetCallbackT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Messaging Service (MSG)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Messaging Service (MSG) supports the following SAF AIS interfaces as mentioned in SAF-AIS-MSG-B.02.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of MSG''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saMsgInitialize()&lt;br /&gt;
* saMsgSelectionObjectGet()&lt;br /&gt;
* saMsgDispatch()&lt;br /&gt;
* saMsgFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Message Queue Operations&lt;br /&gt;
|&lt;br /&gt;
* saMsgQueueOpen()&lt;br /&gt;
* saMsgQueueOpenAsync()&lt;br /&gt;
* SaMsgQueueOpenCallbackT&lt;br /&gt;
* saMsgQueueClose()&lt;br /&gt;
* saMsgQueueStatusGet()&lt;br /&gt;
* saMsgQueueRetentionTimeSet()&lt;br /&gt;
* saMsgQueueUnlink()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Management of Message Queue Groups&lt;br /&gt;
|&lt;br /&gt;
* saMsgQueueGroupCreate()&lt;br /&gt;
* saMsgQueueGroupInsert()&lt;br /&gt;
* saMsgQueueGroupRemove()&lt;br /&gt;
* saMsgQueueGroupDelete()&lt;br /&gt;
* saMsgQueueGroupTrack()&lt;br /&gt;
* SaMsgQueueGroupTrackCallbackT&lt;br /&gt;
* saMsgQueueGroupTrackStop()&lt;br /&gt;
* saMsgQueueGroupNotificationFree()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of MSG''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Message Send and Receive Operations&lt;br /&gt;
| &lt;br /&gt;
* saMsgMessageSend()&lt;br /&gt;
* saMsgMessageSendAsync()&lt;br /&gt;
* SaMsgMessageDeliveredCallbackT&lt;br /&gt;
* saMsgMessageGet()&lt;br /&gt;
* saMsgMessageDataFree()&lt;br /&gt;
* SaMsgMessagedReceivedCallbackT&lt;br /&gt;
* saMsgMessageCancel()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Request and Reply Operations&lt;br /&gt;
|&lt;br /&gt;
* saMsgMessageSendReceive()&lt;br /&gt;
* saMsgMessageReply()&lt;br /&gt;
* saMsgMessageReplyAsync()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=='''Software Management Framework (SMF)'''==&lt;br /&gt;
&lt;br /&gt;
SMF Aligned In Service Software Upgrade (ISSU.&lt;br /&gt;
Supports application and OpenClovis SAFplus Platform middleware upgrade in a rolling (in-service) or single-step mode.&lt;br /&gt;
&lt;br /&gt;
'''Single-Step'''&lt;br /&gt;
For deployment of non-backwards compatible software, or rapid deployment of software.  This method stops the relevant services on all nodes (causing an outage) and then upgrades that software and restarts.  Note that services are stopped at various granularity levels depending on what is being upgraded.  In other words, application A can be taken out-of-service and upgraded across the cluster without affecting application B running on the same nodes.&lt;br /&gt;
&lt;br /&gt;
'''Inservice Rolling'''&lt;br /&gt;
This is the most commonly known telecom quality upgrade method.  For deployment of backwards-compatible software across the cluster, this method stops service in one &amp;quot;upgrade unit&amp;quot; at a time, upgrades the software and restarts before stopping the next &amp;quot;upgrade unit&amp;quot;.  This process continues iteratively until the entire cluster is upgraded.  Since the available redundant capacity takes over for the unit being upgraded service will be unaffected.&lt;br /&gt;
&lt;br /&gt;
=='''Hardware Platform Interface (HPI)'''==&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform does not implement the HPI APIs on its own. SAFplus Platform has been integrated and tested with the following implementations of HPI B.01.01 specification.&lt;br /&gt;
* OpenHPI 2.8.1, 2.10.2&lt;br /&gt;
* Radisys HPI 1.4&lt;br /&gt;
&lt;br /&gt;
The following sections lists out the SAF HPI APIs that are used by SAFplus Platform. Platform provider shall provide at these HPI services in order to integration with OpenClovis SAFplus Platform&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''SAF HPI APIs used by SAFplus''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
General APIs&lt;br /&gt;
|&lt;br /&gt;
* saHpiVersionGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Domain APIs&lt;br /&gt;
|&lt;br /&gt;
* saHpiSessionClose()&lt;br /&gt;
* saHpiSessionOpen()&lt;br /&gt;
* saHpiDiscover()&lt;br /&gt;
* saHpiRptEntryGet()&lt;br /&gt;
* saHpiRptEntryGetByResourceId()&lt;br /&gt;
* saHpiSubscribe()&lt;br /&gt;
* saHpiUnsubscribe()&lt;br /&gt;
* saHpiEventGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Resource APIs&lt;br /&gt;
|&lt;br /&gt;
* saHpiRdrGet()&lt;br /&gt;
* saHpiAutoExtractTimeoutSet()&lt;br /&gt;
* saHpiAutoInsertTimeoutSet()&lt;br /&gt;
* saHpiHotSwapPolicyCancel()&lt;br /&gt;
* saHpiResourceActiveSet()&lt;br /&gt;
* saHpiResourceInactiveSet()&lt;br /&gt;
* saHpiHotSwapStateGet()&lt;br /&gt;
* saHpiHotSwapActionRequest()&lt;br /&gt;
* saHpiHotSwapIndicatorStateGet()&lt;br /&gt;
* saHpiResourceResetStateSet()&lt;br /&gt;
* saHpiResourcePowerStateSet()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In addition to the above APIs SAFplus Platform also depends on the following events generated by HPI&lt;br /&gt;
# Hot Swap events (SAHPI_ET_HOTSWAP) &lt;br /&gt;
# Sensor events (SAHPI_ET_SENSOR)&lt;br /&gt;
# Resource Events (SAHPI_ET_RESOURCE)&lt;br /&gt;
&lt;br /&gt;
=='''Modifications to SAF AIS Header files'''==&lt;br /&gt;
&lt;br /&gt;
In a few instances, OpenClovis engineers found that the standard SAF-supplied header files caused errors and warnings on certain compilers.  In these cases OpenClovis modified the standard SAF header file to work with these compilers.  All of these changes broaden the set of compatible compilers.  None of these changes modify the SAF APIs.&lt;br /&gt;
&lt;br /&gt;
For example, in saAis.h, the following constant is defined:&lt;br /&gt;
&lt;br /&gt;
 #define SA_TIME_ONE_MINUTE      60000000000&lt;br /&gt;
&lt;br /&gt;
However, the number defined is greater than a 32-bit integer, so it is actually required to append a size suffix:&lt;br /&gt;
&lt;br /&gt;
 #define SA_TIME_ONE_MINUTE      60000000000LL&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/safcompliance</id>
		<title>Doc:latest/safcompliance</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/safcompliance"/>
				<updated>2011-10-24T19:36:05Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* OpenClovis Checkpointing Service (CPS) Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
Adherence to standards is a critical requirement for Next Generation Network&lt;br /&gt;
deployments. The Service Availability Forum (SA Forum) is the primary standards body in&lt;br /&gt;
the context of High Availability Middleware and enjoys the participation of over 95% of&lt;br /&gt;
Tier 1 TEMs. OpenClovis has been actively participating in the forum and helping to drive&lt;br /&gt;
the emerging Hardware Platform Interface (HPI) and Application Interface Specification&lt;br /&gt;
(AIS) standards based on its experience.&lt;br /&gt;
&lt;br /&gt;
As a result of the close involvement of OpenClovis with the SA Forum, the OpenClovis&lt;br /&gt;
SAFplus Platform product has been aligned with SA Forum AIS architecture and functional partitioning&lt;br /&gt;
from its inception and has kept pace with the evolution in the specifications and in many&lt;br /&gt;
cases, anticipated new features and functionality.&lt;br /&gt;
&lt;br /&gt;
Even as the specifications are evolving, the SA Forum is in the process of defining a test&lt;br /&gt;
suite that will establish compliance of a product to the specifications. While this activity is&lt;br /&gt;
in an advanced state for the HPI specifications, it has not yet taken off for AIS&lt;br /&gt;
specifications. Partial compliance test suites are expected to be available for HPI by end&lt;br /&gt;
of the 2006 calendar year.&lt;br /&gt;
&lt;br /&gt;
It should be noted that where a specification is 'A' level (example: SAI-AIS-NTF-A.01.01&lt;br /&gt;
for the Notification Service), SAF is not obligated to preserve backward compatibility&lt;br /&gt;
while going to a 'B' level version of the specification. On the other hand, backward&lt;br /&gt;
compatibility with respect to API's will be preserved between different versions of the 'B'&lt;br /&gt;
level specifications (Example: between SAI-AMF-B01.01 and SAI-AMF-B02.01)&lt;br /&gt;
&lt;br /&gt;
OpenClovis expects to formally establish the compliance of SAFplus Platform to the SA Forum AIS&lt;br /&gt;
standards as and when these compliance test suites become available. This document&lt;br /&gt;
details the level of alignment of OpenClovis SAFplus Platform with the SA Forum specifications.&lt;br /&gt;
&lt;br /&gt;
=='''Standards Referenced'''==&lt;br /&gt;
&lt;br /&gt;
The SA Forum specifications referred to in this document are available at http://www.saforum.org/home. The versions of the specifications referred to are&lt;br /&gt;
&lt;br /&gt;
*SAI-Overview-B.02.01&lt;br /&gt;
*SAI-AIS-AMF-B.02.01&lt;br /&gt;
*SAI-AIS-MSG-B.02.01&lt;br /&gt;
&lt;br /&gt;
*AIS-CKPT-B.01.01&lt;br /&gt;
*AIS-EVT-B.01.01&lt;br /&gt;
*AIS-CLM-B.01.01&lt;br /&gt;
&lt;br /&gt;
*SAI-AIS_LOG-A.01.01&lt;br /&gt;
*SAI-AIS-IMM-A.01.01&lt;br /&gt;
*SAI-AIS-NTF-A.01.01&lt;br /&gt;
*SAI-AIS-NAM-A.01.01&lt;br /&gt;
*Hardware Platform Interface Specification B.01.01&lt;br /&gt;
&lt;br /&gt;
=='''Compliance with Service Availability Forum AIS Architecture'''==&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform complies with the Service Availability Forum (SAF) Hardware Platform Interface (HPI) and Application Interface Specification (AIS) specifications. OpenClovis Inc. is actively participating in the SA Forum and helping to drive the emerging HPI and AIS standards based on its experience.&lt;br /&gt;
&lt;br /&gt;
===Programming Model and Usage===&lt;br /&gt;
&lt;br /&gt;
Section 3.1 of SAI-AIS-Overview-B.02.01 describes the SAF Application Interface programming model and the generally intended usage of the interfaces.&lt;br /&gt;
&lt;br /&gt;
It introduces the area server as an abstraction that represents the server providing services for a specification area, for instance, Availability Management Framework, Group Membership Service and so on. The interface is defined as occurring between a user application that needs the services of the area server and an area implementation library.&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform adheres to the SAF area server-area implementation library abstraction and the SAF programming and usage model in providing various services.&lt;br /&gt;
&lt;br /&gt;
===Availability Management Framework (AMF)===&lt;br /&gt;
&lt;br /&gt;
The Availability Management Framework (AMF) is the most important software entity of the SAF AIS Specification. It provides service availability by coordinating redundant resources within a cluster to deliver a system without a single point of failure. AMF prescribes a way to model applications that needs to be highly available. In addition, AMF provides a set of APIs that must be used by these applications to be managed for high availability.&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform is implemented in complete accordance with the SAF AMF model and interfaces. This may be considered as the core of the SAF solution for high availability. The only limitation in the current release with respect to the AMF component model is that SAF defines a flexible mapping between components, processes and threads whereas OpenClovis SAFplus Platform supports only a single process per component. OpenClovis Inc. offers to support one-to-one relationship between a component and a process. However, a component can have multiple threads of execution within it.&lt;br /&gt;
&lt;br /&gt;
===Application Interface Specification (AIS) Services===&lt;br /&gt;
              &lt;br /&gt;
The following OpenClovis SAFplus Platform components provide services that are functionally equivalent to SAF AIS specifications:&lt;br /&gt;
*Availability Management Framework (AMF)&lt;br /&gt;
*Checkpoint Service (CPS)&lt;br /&gt;
*Event Manager (EM)&lt;br /&gt;
*Group Membership Service (GMS)&lt;br /&gt;
*Messaging Service (MSG)&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform AMF Features===&lt;br /&gt;
*'''HA model supported'''&lt;br /&gt;
** 2N&lt;br /&gt;
** M+N&lt;br /&gt;
&lt;br /&gt;
*'''Auto Adjust'''&lt;br /&gt;
SAF SG auto adjust feature to adjust the SG based on the SU ranking giving preference to higher ranked ones for active assignments&lt;br /&gt;
&lt;br /&gt;
*'''SI Dependency'''&lt;br /&gt;
SAF SI dependency across service groups&lt;br /&gt;
&lt;br /&gt;
*'''CSI Dependency'''&lt;br /&gt;
SAF CSI dependency within the same SI for work assignments&lt;br /&gt;
&lt;br /&gt;
*'''Component instantiation dependency'''&lt;br /&gt;
SAF component instantiation dependency for components within the same Service Unit configurable through instantiationLevel attribute. &lt;br /&gt;
&lt;br /&gt;
*'''Reduction Procedure'''&lt;br /&gt;
SAF SG reduction procedure applied when the SG is running under reduced potential for computing and removing less optimal standby assignments to assign Service Instances.&lt;br /&gt;
&lt;br /&gt;
*'''AMF NOTIFICATIONS'''&lt;br /&gt;
SAF HAStateChangeNotify and SIAssignmentStateChangeNotify notifications for applications to subscribe for AMF state transitions&lt;br /&gt;
&lt;br /&gt;
*'''Preferred SI assignment'''&lt;br /&gt;
Preferred SI assignment that could be configured for SUs to control SI assignments. Coupled with the delayed SG startup configuration through restartDuration to control instantiation of all the preferred SUs, SI preference could be enforced during initial cluster startup for the Service units in the cluster.&lt;br /&gt;
&lt;br /&gt;
*'''Proxy-Proxied support'''&lt;br /&gt;
Allow HA control of legacy application (non-SAF awared) via proxy&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform Cluster/Group Membership Service (GMS) Features===&lt;br /&gt;
The SA-Forum CLM API is fully supported.&lt;br /&gt;
&lt;br /&gt;
*'''Cluster Membership'''&lt;br /&gt;
CLM service manages the membership of the nodes. It manages the cluster formation during node joins and leaves.&lt;br /&gt;
&lt;br /&gt;
*'''Tracking Cluster Membership'''&lt;br /&gt;
Any application can register for Cluster Track callback through which it can get the notification for any node joins and leaves in the cluster&lt;br /&gt;
&lt;br /&gt;
*'''Getting Cluster Member information'''&lt;br /&gt;
API interface are available to get the information such as Address, node name etc, for any given cluster member node.&lt;br /&gt;
&lt;br /&gt;
*'''Cluster node eviction/ejection'''&lt;br /&gt;
A cluster node can be administratively ejected from the cluster.&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform Checkpointing Service (CPS) Features===&lt;br /&gt;
*'''Checkpoint/Section creation/deletion'''&lt;br /&gt;
CPS provides APIs for users to create/delete checkpoints and sections within the checkpoints.&lt;br /&gt;
&lt;br /&gt;
*'''Granularity at Section level'''&lt;br /&gt;
CPS allows user to create a checkpoint and inside a checkpoint user can create any number of sections and read/write each sections independently.&lt;br /&gt;
&lt;br /&gt;
*'''Checkpoint Status'''&lt;br /&gt;
CPS provides API to retrieve checkpoint status.&lt;br /&gt;
&lt;br /&gt;
*'''Locking at Section level'''&lt;br /&gt;
CPS provides read/write locks at section level due to which multiple sections can be accessed simultaneously. &lt;br /&gt;
&lt;br /&gt;
*'''Update options'''&lt;br /&gt;
CPS allows both Synchronous and Asynchronous update of the checkpoint replicas across the cluster&lt;br /&gt;
&lt;br /&gt;
*'''Replica Management'''&lt;br /&gt;
CPS allows both collocated and non-collocated mode of checkpoint replicas&lt;br /&gt;
&lt;br /&gt;
*'''Choosing replica at run time'''&lt;br /&gt;
User can use ActiveReplicaSet() APIs to set the active replica at run time.&lt;br /&gt;
&lt;br /&gt;
*'''Retention time'''&lt;br /&gt;
CPS provides users to specify a retention time for which the checkpoint is retained even when no one is accessing the checkpoint&lt;br /&gt;
&lt;br /&gt;
*'''Section Expiration Time'''&lt;br /&gt;
User can set an absolute expiration time for a section after which the section is deleted irrespective of its usage at that time. &lt;br /&gt;
&lt;br /&gt;
*'''Section Iteration'''&lt;br /&gt;
Users can iterate through the sections of a checkpoint.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Event Service features===&lt;br /&gt;
*'''Publish/Subscribe multipoint-to-multipoint communication mechanism'''&lt;br /&gt;
** Based on concept of event channels&lt;br /&gt;
** Publisher communicates asynchronously with one or more subscribers over an event channel&lt;br /&gt;
** Multiple publishers and subscribers can communicate over the same event channel; publishers can be subscribers on the same event channel&lt;br /&gt;
** Individual publishers and individual subscribers can communicate over multiple channels&lt;br /&gt;
*'''Events consist of standard header and one or more bytes of payload data'''&lt;br /&gt;
** i.e. Event Service does not impose any specific transfer syntax for the data&lt;br /&gt;
*'''Event channel management'''&lt;br /&gt;
** Event service provides APIs for opening, closing and deleting event channels&lt;br /&gt;
*'''Event operations'''&lt;br /&gt;
** Event service provides APIs for managing the event payload data, publishing the event, subscribing for the event etc&lt;br /&gt;
&lt;br /&gt;
===Additional OpenClovis SAFplus Platform Services===&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform also provides various components that were implemented earlier than its implementation with SAF specifications. These components provide services that are functional equivalent to SAF AIS services as listed below:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''SAFplus Platform Services Equivalent to SA Forum AIS Services''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| OpenClovis SAFplus Platform Components&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Functionally Equivalent AIS Service&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| AIS Specification&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Clovis Object Repository (COR)&lt;br /&gt;
|&lt;br /&gt;
Information Model Management Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-IMM-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Alarm Manager (AM) &lt;br /&gt;
|&lt;br /&gt;
Notification Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-NTF-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Log Service &lt;br /&gt;
|&lt;br /&gt;
Logging Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-LOG-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Naming Service &lt;br /&gt;
|&lt;br /&gt;
Naming Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-NAM-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Platform Management Service &lt;br /&gt;
|&lt;br /&gt;
Platform Management Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-PLM-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===IMM (OpenClovis Object Repository - COR) Features===&lt;br /&gt;
The OpenClovis Object Repository(COR) implements the IMM features. We are progressing on having API level compliance which will be available in R5.0.&lt;br /&gt;
&lt;br /&gt;
The following are the IMM compliant features of COR:&lt;br /&gt;
&lt;br /&gt;
*'''Object Mananger and Object Implementer'''&lt;br /&gt;
**COR provides a rich set of APIs to make configuration changes on a Managed Object (MO). It provides service to implement a MO by multiple Object Implementers (OI), so that the configuration changes on the MO can be validated by all the OIs. It provides APIs to make or remove an application as a OI for a MO.&lt;br /&gt;
&lt;br /&gt;
*'''Runtime Attributes Management'''&lt;br /&gt;
**COR provides service to implement the runtime attributes of an object or all the object instances of a class. The Runtime attributes values can be cached or non-cached in COR. The cached runtime attributes values has to be updated by Primary Object Implementer (POI) periodically in COR. The value of non-cached runtime attributes will be updated by POI on request by COR. The values of cached runtime attributes can be persisted into storage devices.&lt;br /&gt;
&lt;br /&gt;
*'''Configuration Attributes Management'''&lt;br /&gt;
**The Configuration attributes are always cached and persisted by COR. Any configuration change on these attributes by a OM will be implemented by all the OIs.&lt;br /&gt;
&lt;br /&gt;
*'''Attribute Characteristics'''&lt;br /&gt;
**COR supports the following attribute characteristics.&lt;br /&gt;
***CONFIG      - Indicates that the attribute is a configuration type attribute.&lt;br /&gt;
***RUNTIME     - Indicates that the attribute is a runtime attribute.&lt;br /&gt;
***WRITABLE    - Indicates that the configuration attribute can be modified.&lt;br /&gt;
***INITIALIZED - Indicates that value for the configuration attribute must be specified when the object is created.&lt;br /&gt;
***CACHED      - Indicates that the value of the attribute is cached in COR.&lt;br /&gt;
***PERSISTENT  - Indicates that the value of the attribute must be stored in a permanent manner by COR&lt;br /&gt;
&lt;br /&gt;
*'''Object Class Management'''&lt;br /&gt;
**COR provides APIs to create, delete and modify the classes, and to make hierarchical relationship between the classes. It also provides service to inherit the existing class to create a new class.&lt;br /&gt;
&lt;br /&gt;
*'''Tree organization of Objects'''&lt;br /&gt;
**COR organizes the MOs in a hierarchical manner supporting parent-child relationship, inheritance, association and containment relationships.&lt;br /&gt;
&lt;br /&gt;
*'''Search Operations'''&lt;br /&gt;
**The search operations can be performed on a single MO, or a MO and its children, or a sub tree rooted from the given MO.&lt;br /&gt;
**We can either retrieve all the attributes in the MO matching the given criteria or only the matching attributes.&lt;br /&gt;
&lt;br /&gt;
*'''Object Access'''&lt;br /&gt;
**COR bundle GET APIs can be used to retrieve the attributes values in a efficient manner by grouping the GET requests belonging different MOs into one single request to COR. The values of runtime non-cached attributes will be updated by POI on request by COR.&lt;br /&gt;
&lt;br /&gt;
*'''Class Implementer'''&lt;br /&gt;
**COR provides APIs for the application to implement all the Object instances of a class, for both Configuration and Runtime attributes.&lt;br /&gt;
&lt;br /&gt;
===SAF Notification Features===&lt;br /&gt;
OpenClovis SAFplus Platform is compliant with the following Notification features :&lt;br /&gt;
&lt;br /&gt;
*'''Notification Types'''&lt;br /&gt;
**Alarm&lt;br /&gt;
**State Change&lt;br /&gt;
**Object Create/Delete&lt;br /&gt;
**Attribute Change&lt;br /&gt;
&lt;br /&gt;
*'''Alarm Notification'''&lt;br /&gt;
**An alarm report is a notification of a specific event that may or may not represent an error. OpenClovis Alarm notification is fully compliant with ITU-T X.733 standard (which is recommended by SAF-NTF).&lt;br /&gt;
&lt;br /&gt;
*'''State Change Notification'''&lt;br /&gt;
**OpenClovis AMF provides services for the following state change notifications to the Management Applications&lt;br /&gt;
***HA state of the SU changed&lt;br /&gt;
***SI partially/fully assigned&lt;br /&gt;
***Component arrived/departed&lt;br /&gt;
***Node arrived/departed&lt;br /&gt;
&lt;br /&gt;
*'''Object Create/Delete and Attribute Change Notifications'''&lt;br /&gt;
**OpenClovis SAFplus Platform provides services for the notification of Managed Object Creation, Deletion and Attribute changes. It also supports the Management Applications to filter the attribute change notifications based on attribute identifiers.&lt;br /&gt;
&lt;br /&gt;
*'''Notification Delivery Characteristics'''&lt;br /&gt;
**Guaranteed delivery&lt;br /&gt;
**At most once delivery&lt;br /&gt;
**Ordered delivery&lt;br /&gt;
**Persisted (Alarm notifications).&lt;br /&gt;
&lt;br /&gt;
*'''Notification Filtering'''&lt;br /&gt;
**OpenClovis SAFplus Platform provides service for filtering the notifications based on one or more filter criteria which is particular to the notification type. It also provides the ability to correlate with the other notifications.&lt;br /&gt;
&lt;br /&gt;
=='''Support for SAF AIS Interfaces'''==&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform complies with the SAF AIS interfaces for the following components:&lt;br /&gt;
&lt;br /&gt;
===Availability Management Framework (AMF)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Availability Management Framework (AMF) supports the following SAF AIS interfaces as mentioned in SAI-AIS-AMF-B.02.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of AMF''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saAmfInitialize()&lt;br /&gt;
* saAmfSelectionObjectGet()&lt;br /&gt;
* saAmfDispatch()&lt;br /&gt;
* saAmfFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Health Monitoring&lt;br /&gt;
|&lt;br /&gt;
* saAmfHealthCheckStart()&lt;br /&gt;
* saAmfHealthCheckStop()&lt;br /&gt;
* SaAmfHealthCheckCallbackT&lt;br /&gt;
* saAmfHealthCheckConfirm()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Registration and Un-registration&lt;br /&gt;
|&lt;br /&gt;
* saAmfComponentRegister()&lt;br /&gt;
* saAmfComponentUnregister()&lt;br /&gt;
* saAmfComponentNameGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Service Instance Management&lt;br /&gt;
|&lt;br /&gt;
* saAmfHAStateGet()&lt;br /&gt;
* SaAmfCSISetCallbackT&lt;br /&gt;
* SaAmfCSIRemoveCallbackT&lt;br /&gt;
* saAmfCSIQuiescingComplete()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of AMF''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* SaAmfComponentTerminateCallbackT&lt;br /&gt;
* SaAmfProxiedComponentInstantiateCallbackT&lt;br /&gt;
* SaAmfProxiedComponentCleanupCallbackT&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Protection Group Management&lt;br /&gt;
|&lt;br /&gt;
* saAmfProtectionGroupTrack()&lt;br /&gt;
* SaAmfProtectionGroupTrackCallbackT&lt;br /&gt;
* saAmfProtectionGroupTrackStop()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Error Reporting &lt;br /&gt;
|&lt;br /&gt;
* saAmfComponentErrorReport()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Response   &lt;br /&gt;
|&lt;br /&gt;
* saAmfResponse()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Unsupported API's of AMF''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Brief &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Unsupported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Passive Monitoring of processes is not supported&lt;br /&gt;
|&lt;br /&gt;
* saAmfPmStart()&lt;br /&gt;
* saAmfPmStop()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Freeing the memory allocated by the saAmfProtectionGroupTrack()&lt;br /&gt;
|&lt;br /&gt;
* saAmfProtectionGroupNotificationFree()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Error Clear API is not supported.&lt;br /&gt;
|&lt;br /&gt;
* saAmfComponentErrorClear()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Checkpointing Service (CPS)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Checkpointing Service (CPS) supports the following SAF AIS interfaces as mentioned in SAI-AIS-CKPT-B.01.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of CPS''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptInitialize()&lt;br /&gt;
* saCkptSelectionObjectGet()&lt;br /&gt;
* saCkptDispatch()&lt;br /&gt;
* saCkptFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Checkpoint Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptCheckpointOpen()&lt;br /&gt;
* saCkptCheckpointOpenCallabackT&lt;br /&gt;
* saCkptCheckpointOpenAsync()&lt;br /&gt;
* saCkptCheckpointClose()&lt;br /&gt;
* saCkptCheckpointUnlink()&lt;br /&gt;
* saCkptActiveReplicaSet()&lt;br /&gt;
* saCkptCheckpointRetentionDurationSet()&lt;br /&gt;
* saCkptCheckpointStatusGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Section Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptSectionIterationInitialize()&lt;br /&gt;
* saCkptSectionIterationNext()&lt;br /&gt;
* saCkptSectionIterationFinalize()&lt;br /&gt;
* saCkptSectionCreate()&lt;br /&gt;
* saCkptSectionExpirationTimeSet()&lt;br /&gt;
* saCkptSectionDelete()&lt;br /&gt;
* saCkptCheckpointWrite()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Data Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptSectionOverwrite()&lt;br /&gt;
* saCkptCheckpointRead()&lt;br /&gt;
* saCkptCheckpointSynchronize()&lt;br /&gt;
* saCkptCheckpointSynchronizeAsync()&lt;br /&gt;
* SaCkptCheckpointSynchronizeCallbackT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Event Manager (EM)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Event Manager supports the following SAF AIS interfaces as mentioned in SAI-AIS-EVT-B.01.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of EM''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saEvtInitialize()&lt;br /&gt;
* saEvtFinalize()&lt;br /&gt;
* saEvtSelectionObjectGet()&lt;br /&gt;
* saEvtDispatch()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Event Operations&lt;br /&gt;
|&lt;br /&gt;
* saEvtEventAllocate()&lt;br /&gt;
* saEvtEventFree()&lt;br /&gt;
* saEvtEventAttributesSet()&lt;br /&gt;
* saEvtEventAttributesGet()&lt;br /&gt;
* saEvtEventDataGet()&lt;br /&gt;
* saEvtEventPublish()&lt;br /&gt;
* saEvtEventSubscribe()&lt;br /&gt;
* SaEvtEventDeliverCallbackT&lt;br /&gt;
* saEvtEventUnsubscribe()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Event Channel Operations&lt;br /&gt;
|&lt;br /&gt;
* saEvtChannelOpen()              &lt;br /&gt;
* saEvtChannelOpenAsync()&lt;br /&gt;
* SaEvtChannelOpenCallbackT&lt;br /&gt;
* saEvtChannelUnlink()&lt;br /&gt;
* saEvtChannelClose()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Unsupported API's of EM''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Brief&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Unsupported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Event Retention Time is not supported&lt;br /&gt;
|&lt;br /&gt;
* saEvtEventRetentionTimeClear()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Group Membership Service (GMS)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Group Membership Service (GMS) supports the following SAF AIS interfaces as mentioned in AIS-CLM-B.01.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of GMS''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saClmInitialize()&lt;br /&gt;
* saClmSelectionObjectGet()&lt;br /&gt;
* saClmDispatch()&lt;br /&gt;
* saClmFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Group Membership Operations&lt;br /&gt;
|&lt;br /&gt;
* saClmClusterTrack()&lt;br /&gt;
* SaClmClusterTrackCallbackT&lt;br /&gt;
* saClmClusterTrackStop()&lt;br /&gt;
* saClmClusterNodeGet()&lt;br /&gt;
* saClmClusterNodeGetAsync()&lt;br /&gt;
* SaClmClusterNodeGetCallbackT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Messaging Service (MSG)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Messaging Service (MSG) supports the following SAF AIS interfaces as mentioned in SAF-AIS-MSG-B.02.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of MSG''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saMsgInitialize()&lt;br /&gt;
* saMsgSelectionObjectGet()&lt;br /&gt;
* saMsgDispatch()&lt;br /&gt;
* saMsgFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Message Queue Operations&lt;br /&gt;
|&lt;br /&gt;
* saMsgQueueOpen()&lt;br /&gt;
* saMsgQueueOpenAsync()&lt;br /&gt;
* SaMsgQueueOpenCallbackT&lt;br /&gt;
* saMsgQueueClose()&lt;br /&gt;
* saMsgQueueStatusGet()&lt;br /&gt;
* saMsgQueueRetentionTimeSet()&lt;br /&gt;
* saMsgQueueUnlink()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Management of Message Queue Groups&lt;br /&gt;
|&lt;br /&gt;
* saMsgQueueGroupCreate()&lt;br /&gt;
* saMsgQueueGroupInsert()&lt;br /&gt;
* saMsgQueueGroupRemove()&lt;br /&gt;
* saMsgQueueGroupDelete()&lt;br /&gt;
* saMsgQueueGroupTrack()&lt;br /&gt;
* SaMsgQueueGroupTrackCallbackT&lt;br /&gt;
* saMsgQueueGroupTrackStop()&lt;br /&gt;
* saMsgQueueGroupNotificationFree()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of MSG''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Message Send and Receive Operations&lt;br /&gt;
| &lt;br /&gt;
* saMsgMessageSend()&lt;br /&gt;
* saMsgMessageSendAsync()&lt;br /&gt;
* SaMsgMessageDeliveredCallbackT&lt;br /&gt;
* saMsgMessageGet()&lt;br /&gt;
* saMsgMessageDataFree()&lt;br /&gt;
* SaMsgMessagedReceivedCallbackT&lt;br /&gt;
* saMsgMessageCancel()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Request and Reply Operations&lt;br /&gt;
|&lt;br /&gt;
* saMsgMessageSendReceive()&lt;br /&gt;
* saMsgMessageReply()&lt;br /&gt;
* saMsgMessageReplyAsync()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=='''Software Management Framework (SMF)'''==&lt;br /&gt;
&lt;br /&gt;
SMF Aligned In Service Software Upgrade (ISSU.&lt;br /&gt;
Supports application and OpenClovis SAFplus Platform middleware upgrade in a rolling (in-service) or single-step mode.&lt;br /&gt;
&lt;br /&gt;
'''Single-Step'''&lt;br /&gt;
For deployment of non-backwards compatible software, or rapid deployment of software.  This method stops the relevant services on all nodes (causing an outage) and then upgrades that software and restarts.  Note that services are stopped at various granularity levels depending on what is being upgraded.  In other words, application A can be taken out-of-service and upgraded across the cluster without affecting application B running on the same nodes.&lt;br /&gt;
&lt;br /&gt;
'''Inservice Rolling'''&lt;br /&gt;
This is the most commonly known telecom quality upgrade method.  For deployment of backwards-compatible software across the cluster, this method stops service in one &amp;quot;upgrade unit&amp;quot; at a time, upgrades the software and restarts before stopping the next &amp;quot;upgrade unit&amp;quot;.  This process continues iteratively until the entire cluster is upgraded.  Since the available redundant capacity takes over for the unit being upgraded service will be unaffected.&lt;br /&gt;
&lt;br /&gt;
=='''Hardware Platform Interface (HPI)'''==&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform does not implement the HPI APIs on its own. SAFplus Platform has been integrated and tested with the following implementations of HPI B.01.01 specification.&lt;br /&gt;
* OpenHPI 2.8.1, 2.10.2&lt;br /&gt;
* Radisys HPI 1.4&lt;br /&gt;
&lt;br /&gt;
The following sections lists out the SAF HPI APIs that are used by SAFplus Platform. Platform provider shall provide at these HPI services in order to integration with OpenClovis SAFplus Platform&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''SAF HPI APIs used by SAFplus''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
General APIs&lt;br /&gt;
|&lt;br /&gt;
* saHpiVersionGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Domain APIs&lt;br /&gt;
|&lt;br /&gt;
* saHpiSessionClose()&lt;br /&gt;
* saHpiSessionOpen()&lt;br /&gt;
* saHpiDiscover()&lt;br /&gt;
* saHpiRptEntryGet()&lt;br /&gt;
* saHpiRptEntryGetByResourceId()&lt;br /&gt;
* saHpiSubscribe()&lt;br /&gt;
* saHpiUnsubscribe()&lt;br /&gt;
* saHpiEventGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Resource APIs&lt;br /&gt;
|&lt;br /&gt;
* saHpiRdrGet()&lt;br /&gt;
* saHpiAutoExtractTimeoutSet()&lt;br /&gt;
* saHpiAutoInsertTimeoutSet()&lt;br /&gt;
* saHpiHotSwapPolicyCancel()&lt;br /&gt;
* saHpiResourceActiveSet()&lt;br /&gt;
* saHpiResourceInactiveSet()&lt;br /&gt;
* saHpiHotSwapStateGet()&lt;br /&gt;
* saHpiHotSwapActionRequest()&lt;br /&gt;
* saHpiHotSwapIndicatorStateGet()&lt;br /&gt;
* saHpiResourceResetStateSet()&lt;br /&gt;
* saHpiResourcePowerStateSet()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In addition to the above APIs SAFplus Platform also depends on the following events generated by HPI&lt;br /&gt;
# Hot Swap events (SAHPI_ET_HOTSWAP) &lt;br /&gt;
# Sensor events (SAHPI_ET_SENSOR)&lt;br /&gt;
# Resource Events (SAHPI_ET_RESOURCE)&lt;br /&gt;
&lt;br /&gt;
=='''Modifications to SAF AIS Header files'''==&lt;br /&gt;
&lt;br /&gt;
In a few instances, OpenClovis engineers found that the standard SAF-supplied header files caused errors and warnings on certain compilers.  In these cases OpenClovis modified the standard SAF header file to work with these compilers.  All of these changes broaden the set of compatible compilers.  None of these changes modify the SAF APIs.&lt;br /&gt;
&lt;br /&gt;
For example, in saAis.h, the following constant is defined:&lt;br /&gt;
&lt;br /&gt;
 #define SA_TIME_ONE_MINUTE      60000000000&lt;br /&gt;
&lt;br /&gt;
However, the number defined is greater than a 32-bit integer, so it is actually required to append a size suffix:&lt;br /&gt;
&lt;br /&gt;
 #define SA_TIME_ONE_MINUTE      60000000000LL&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/safcompliance</id>
		<title>Doc:latest/safcompliance</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/safcompliance"/>
				<updated>2011-10-24T19:35:22Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* OpenClovis Cluster/Group Membership Service (GMS) Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
Adherence to standards is a critical requirement for Next Generation Network&lt;br /&gt;
deployments. The Service Availability Forum (SA Forum) is the primary standards body in&lt;br /&gt;
the context of High Availability Middleware and enjoys the participation of over 95% of&lt;br /&gt;
Tier 1 TEMs. OpenClovis has been actively participating in the forum and helping to drive&lt;br /&gt;
the emerging Hardware Platform Interface (HPI) and Application Interface Specification&lt;br /&gt;
(AIS) standards based on its experience.&lt;br /&gt;
&lt;br /&gt;
As a result of the close involvement of OpenClovis with the SA Forum, the OpenClovis&lt;br /&gt;
SAFplus Platform product has been aligned with SA Forum AIS architecture and functional partitioning&lt;br /&gt;
from its inception and has kept pace with the evolution in the specifications and in many&lt;br /&gt;
cases, anticipated new features and functionality.&lt;br /&gt;
&lt;br /&gt;
Even as the specifications are evolving, the SA Forum is in the process of defining a test&lt;br /&gt;
suite that will establish compliance of a product to the specifications. While this activity is&lt;br /&gt;
in an advanced state for the HPI specifications, it has not yet taken off for AIS&lt;br /&gt;
specifications. Partial compliance test suites are expected to be available for HPI by end&lt;br /&gt;
of the 2006 calendar year.&lt;br /&gt;
&lt;br /&gt;
It should be noted that where a specification is 'A' level (example: SAI-AIS-NTF-A.01.01&lt;br /&gt;
for the Notification Service), SAF is not obligated to preserve backward compatibility&lt;br /&gt;
while going to a 'B' level version of the specification. On the other hand, backward&lt;br /&gt;
compatibility with respect to API's will be preserved between different versions of the 'B'&lt;br /&gt;
level specifications (Example: between SAI-AMF-B01.01 and SAI-AMF-B02.01)&lt;br /&gt;
&lt;br /&gt;
OpenClovis expects to formally establish the compliance of SAFplus Platform to the SA Forum AIS&lt;br /&gt;
standards as and when these compliance test suites become available. This document&lt;br /&gt;
details the level of alignment of OpenClovis SAFplus Platform with the SA Forum specifications.&lt;br /&gt;
&lt;br /&gt;
=='''Standards Referenced'''==&lt;br /&gt;
&lt;br /&gt;
The SA Forum specifications referred to in this document are available at http://www.saforum.org/home. The versions of the specifications referred to are&lt;br /&gt;
&lt;br /&gt;
*SAI-Overview-B.02.01&lt;br /&gt;
*SAI-AIS-AMF-B.02.01&lt;br /&gt;
*SAI-AIS-MSG-B.02.01&lt;br /&gt;
&lt;br /&gt;
*AIS-CKPT-B.01.01&lt;br /&gt;
*AIS-EVT-B.01.01&lt;br /&gt;
*AIS-CLM-B.01.01&lt;br /&gt;
&lt;br /&gt;
*SAI-AIS_LOG-A.01.01&lt;br /&gt;
*SAI-AIS-IMM-A.01.01&lt;br /&gt;
*SAI-AIS-NTF-A.01.01&lt;br /&gt;
*SAI-AIS-NAM-A.01.01&lt;br /&gt;
*Hardware Platform Interface Specification B.01.01&lt;br /&gt;
&lt;br /&gt;
=='''Compliance with Service Availability Forum AIS Architecture'''==&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform complies with the Service Availability Forum (SAF) Hardware Platform Interface (HPI) and Application Interface Specification (AIS) specifications. OpenClovis Inc. is actively participating in the SA Forum and helping to drive the emerging HPI and AIS standards based on its experience.&lt;br /&gt;
&lt;br /&gt;
===Programming Model and Usage===&lt;br /&gt;
&lt;br /&gt;
Section 3.1 of SAI-AIS-Overview-B.02.01 describes the SAF Application Interface programming model and the generally intended usage of the interfaces.&lt;br /&gt;
&lt;br /&gt;
It introduces the area server as an abstraction that represents the server providing services for a specification area, for instance, Availability Management Framework, Group Membership Service and so on. The interface is defined as occurring between a user application that needs the services of the area server and an area implementation library.&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform adheres to the SAF area server-area implementation library abstraction and the SAF programming and usage model in providing various services.&lt;br /&gt;
&lt;br /&gt;
===Availability Management Framework (AMF)===&lt;br /&gt;
&lt;br /&gt;
The Availability Management Framework (AMF) is the most important software entity of the SAF AIS Specification. It provides service availability by coordinating redundant resources within a cluster to deliver a system without a single point of failure. AMF prescribes a way to model applications that needs to be highly available. In addition, AMF provides a set of APIs that must be used by these applications to be managed for high availability.&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform is implemented in complete accordance with the SAF AMF model and interfaces. This may be considered as the core of the SAF solution for high availability. The only limitation in the current release with respect to the AMF component model is that SAF defines a flexible mapping between components, processes and threads whereas OpenClovis SAFplus Platform supports only a single process per component. OpenClovis Inc. offers to support one-to-one relationship between a component and a process. However, a component can have multiple threads of execution within it.&lt;br /&gt;
&lt;br /&gt;
===Application Interface Specification (AIS) Services===&lt;br /&gt;
              &lt;br /&gt;
The following OpenClovis SAFplus Platform components provide services that are functionally equivalent to SAF AIS specifications:&lt;br /&gt;
*Availability Management Framework (AMF)&lt;br /&gt;
*Checkpoint Service (CPS)&lt;br /&gt;
*Event Manager (EM)&lt;br /&gt;
*Group Membership Service (GMS)&lt;br /&gt;
*Messaging Service (MSG)&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform AMF Features===&lt;br /&gt;
*'''HA model supported'''&lt;br /&gt;
** 2N&lt;br /&gt;
** M+N&lt;br /&gt;
&lt;br /&gt;
*'''Auto Adjust'''&lt;br /&gt;
SAF SG auto adjust feature to adjust the SG based on the SU ranking giving preference to higher ranked ones for active assignments&lt;br /&gt;
&lt;br /&gt;
*'''SI Dependency'''&lt;br /&gt;
SAF SI dependency across service groups&lt;br /&gt;
&lt;br /&gt;
*'''CSI Dependency'''&lt;br /&gt;
SAF CSI dependency within the same SI for work assignments&lt;br /&gt;
&lt;br /&gt;
*'''Component instantiation dependency'''&lt;br /&gt;
SAF component instantiation dependency for components within the same Service Unit configurable through instantiationLevel attribute. &lt;br /&gt;
&lt;br /&gt;
*'''Reduction Procedure'''&lt;br /&gt;
SAF SG reduction procedure applied when the SG is running under reduced potential for computing and removing less optimal standby assignments to assign Service Instances.&lt;br /&gt;
&lt;br /&gt;
*'''AMF NOTIFICATIONS'''&lt;br /&gt;
SAF HAStateChangeNotify and SIAssignmentStateChangeNotify notifications for applications to subscribe for AMF state transitions&lt;br /&gt;
&lt;br /&gt;
*'''Preferred SI assignment'''&lt;br /&gt;
Preferred SI assignment that could be configured for SUs to control SI assignments. Coupled with the delayed SG startup configuration through restartDuration to control instantiation of all the preferred SUs, SI preference could be enforced during initial cluster startup for the Service units in the cluster.&lt;br /&gt;
&lt;br /&gt;
*'''Proxy-Proxied support'''&lt;br /&gt;
Allow HA control of legacy application (non-SAF awared) via proxy&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform Cluster/Group Membership Service (GMS) Features===&lt;br /&gt;
The SA-Forum CLM API is fully supported.&lt;br /&gt;
&lt;br /&gt;
*'''Cluster Membership'''&lt;br /&gt;
CLM service manages the membership of the nodes. It manages the cluster formation during node joins and leaves.&lt;br /&gt;
&lt;br /&gt;
*'''Tracking Cluster Membership'''&lt;br /&gt;
Any application can register for Cluster Track callback through which it can get the notification for any node joins and leaves in the cluster&lt;br /&gt;
&lt;br /&gt;
*'''Getting Cluster Member information'''&lt;br /&gt;
API interface are available to get the information such as Address, node name etc, for any given cluster member node.&lt;br /&gt;
&lt;br /&gt;
*'''Cluster node eviction/ejection'''&lt;br /&gt;
A cluster node can be administratively ejected from the cluster.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Checkpointing Service (CPS) Features===&lt;br /&gt;
*'''Checkpoint/Section creation/deletion'''&lt;br /&gt;
CPS provides APIs for users to create/delete checkpoints and sections within the checkpoints.&lt;br /&gt;
&lt;br /&gt;
*'''Granularity at Section level'''&lt;br /&gt;
CPS allows user to create a checkpoint and inside a checkpoint user can create any number of sections and read/write each sections independently.&lt;br /&gt;
&lt;br /&gt;
*'''Checkpoint Status'''&lt;br /&gt;
CPS provides API to retrieve checkpoint status.&lt;br /&gt;
&lt;br /&gt;
*'''Locking at Section level'''&lt;br /&gt;
CPS provides read/write locks at section level due to which multiple sections can be accessed simultaneously. &lt;br /&gt;
&lt;br /&gt;
*'''Update options'''&lt;br /&gt;
CPS allows both Synchronous and Asynchronous update of the checkpoint replicas across the cluster&lt;br /&gt;
&lt;br /&gt;
*'''Replica Management'''&lt;br /&gt;
CPS allows both collocated and non-collocated mode of checkpoint replicas&lt;br /&gt;
&lt;br /&gt;
*'''Choosing replica at run time'''&lt;br /&gt;
User can use ActiveReplicaSet() APIs to set the active replica at run time.&lt;br /&gt;
&lt;br /&gt;
*'''Retention time'''&lt;br /&gt;
CPS provides users to specify a retention time for which the checkpoint is retained even when no one is accessing the checkpoint&lt;br /&gt;
&lt;br /&gt;
*'''Section Expiration Time'''&lt;br /&gt;
User can set an absolute expiration time for a section after which the section is deleted irrespective of its usage at that time. &lt;br /&gt;
&lt;br /&gt;
*'''Section Iteration'''&lt;br /&gt;
Users can iterate through the sections of a checkpoint.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Event Service features===&lt;br /&gt;
*'''Publish/Subscribe multipoint-to-multipoint communication mechanism'''&lt;br /&gt;
** Based on concept of event channels&lt;br /&gt;
** Publisher communicates asynchronously with one or more subscribers over an event channel&lt;br /&gt;
** Multiple publishers and subscribers can communicate over the same event channel; publishers can be subscribers on the same event channel&lt;br /&gt;
** Individual publishers and individual subscribers can communicate over multiple channels&lt;br /&gt;
*'''Events consist of standard header and one or more bytes of payload data'''&lt;br /&gt;
** i.e. Event Service does not impose any specific transfer syntax for the data&lt;br /&gt;
*'''Event channel management'''&lt;br /&gt;
** Event service provides APIs for opening, closing and deleting event channels&lt;br /&gt;
*'''Event operations'''&lt;br /&gt;
** Event service provides APIs for managing the event payload data, publishing the event, subscribing for the event etc&lt;br /&gt;
&lt;br /&gt;
===Additional OpenClovis SAFplus Platform Services===&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform also provides various components that were implemented earlier than its implementation with SAF specifications. These components provide services that are functional equivalent to SAF AIS services as listed below:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''SAFplus Platform Services Equivalent to SA Forum AIS Services''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| OpenClovis SAFplus Platform Components&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Functionally Equivalent AIS Service&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| AIS Specification&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Clovis Object Repository (COR)&lt;br /&gt;
|&lt;br /&gt;
Information Model Management Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-IMM-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Alarm Manager (AM) &lt;br /&gt;
|&lt;br /&gt;
Notification Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-NTF-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Log Service &lt;br /&gt;
|&lt;br /&gt;
Logging Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-LOG-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Naming Service &lt;br /&gt;
|&lt;br /&gt;
Naming Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-NAM-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Platform Management Service &lt;br /&gt;
|&lt;br /&gt;
Platform Management Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-PLM-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===IMM (OpenClovis Object Repository - COR) Features===&lt;br /&gt;
The OpenClovis Object Repository(COR) implements the IMM features. We are progressing on having API level compliance which will be available in R5.0.&lt;br /&gt;
&lt;br /&gt;
The following are the IMM compliant features of COR:&lt;br /&gt;
&lt;br /&gt;
*'''Object Mananger and Object Implementer'''&lt;br /&gt;
**COR provides a rich set of APIs to make configuration changes on a Managed Object (MO). It provides service to implement a MO by multiple Object Implementers (OI), so that the configuration changes on the MO can be validated by all the OIs. It provides APIs to make or remove an application as a OI for a MO.&lt;br /&gt;
&lt;br /&gt;
*'''Runtime Attributes Management'''&lt;br /&gt;
**COR provides service to implement the runtime attributes of an object or all the object instances of a class. The Runtime attributes values can be cached or non-cached in COR. The cached runtime attributes values has to be updated by Primary Object Implementer (POI) periodically in COR. The value of non-cached runtime attributes will be updated by POI on request by COR. The values of cached runtime attributes can be persisted into storage devices.&lt;br /&gt;
&lt;br /&gt;
*'''Configuration Attributes Management'''&lt;br /&gt;
**The Configuration attributes are always cached and persisted by COR. Any configuration change on these attributes by a OM will be implemented by all the OIs.&lt;br /&gt;
&lt;br /&gt;
*'''Attribute Characteristics'''&lt;br /&gt;
**COR supports the following attribute characteristics.&lt;br /&gt;
***CONFIG      - Indicates that the attribute is a configuration type attribute.&lt;br /&gt;
***RUNTIME     - Indicates that the attribute is a runtime attribute.&lt;br /&gt;
***WRITABLE    - Indicates that the configuration attribute can be modified.&lt;br /&gt;
***INITIALIZED - Indicates that value for the configuration attribute must be specified when the object is created.&lt;br /&gt;
***CACHED      - Indicates that the value of the attribute is cached in COR.&lt;br /&gt;
***PERSISTENT  - Indicates that the value of the attribute must be stored in a permanent manner by COR&lt;br /&gt;
&lt;br /&gt;
*'''Object Class Management'''&lt;br /&gt;
**COR provides APIs to create, delete and modify the classes, and to make hierarchical relationship between the classes. It also provides service to inherit the existing class to create a new class.&lt;br /&gt;
&lt;br /&gt;
*'''Tree organization of Objects'''&lt;br /&gt;
**COR organizes the MOs in a hierarchical manner supporting parent-child relationship, inheritance, association and containment relationships.&lt;br /&gt;
&lt;br /&gt;
*'''Search Operations'''&lt;br /&gt;
**The search operations can be performed on a single MO, or a MO and its children, or a sub tree rooted from the given MO.&lt;br /&gt;
**We can either retrieve all the attributes in the MO matching the given criteria or only the matching attributes.&lt;br /&gt;
&lt;br /&gt;
*'''Object Access'''&lt;br /&gt;
**COR bundle GET APIs can be used to retrieve the attributes values in a efficient manner by grouping the GET requests belonging different MOs into one single request to COR. The values of runtime non-cached attributes will be updated by POI on request by COR.&lt;br /&gt;
&lt;br /&gt;
*'''Class Implementer'''&lt;br /&gt;
**COR provides APIs for the application to implement all the Object instances of a class, for both Configuration and Runtime attributes.&lt;br /&gt;
&lt;br /&gt;
===SAF Notification Features===&lt;br /&gt;
OpenClovis SAFplus Platform is compliant with the following Notification features :&lt;br /&gt;
&lt;br /&gt;
*'''Notification Types'''&lt;br /&gt;
**Alarm&lt;br /&gt;
**State Change&lt;br /&gt;
**Object Create/Delete&lt;br /&gt;
**Attribute Change&lt;br /&gt;
&lt;br /&gt;
*'''Alarm Notification'''&lt;br /&gt;
**An alarm report is a notification of a specific event that may or may not represent an error. OpenClovis Alarm notification is fully compliant with ITU-T X.733 standard (which is recommended by SAF-NTF).&lt;br /&gt;
&lt;br /&gt;
*'''State Change Notification'''&lt;br /&gt;
**OpenClovis AMF provides services for the following state change notifications to the Management Applications&lt;br /&gt;
***HA state of the SU changed&lt;br /&gt;
***SI partially/fully assigned&lt;br /&gt;
***Component arrived/departed&lt;br /&gt;
***Node arrived/departed&lt;br /&gt;
&lt;br /&gt;
*'''Object Create/Delete and Attribute Change Notifications'''&lt;br /&gt;
**OpenClovis SAFplus Platform provides services for the notification of Managed Object Creation, Deletion and Attribute changes. It also supports the Management Applications to filter the attribute change notifications based on attribute identifiers.&lt;br /&gt;
&lt;br /&gt;
*'''Notification Delivery Characteristics'''&lt;br /&gt;
**Guaranteed delivery&lt;br /&gt;
**At most once delivery&lt;br /&gt;
**Ordered delivery&lt;br /&gt;
**Persisted (Alarm notifications).&lt;br /&gt;
&lt;br /&gt;
*'''Notification Filtering'''&lt;br /&gt;
**OpenClovis SAFplus Platform provides service for filtering the notifications based on one or more filter criteria which is particular to the notification type. It also provides the ability to correlate with the other notifications.&lt;br /&gt;
&lt;br /&gt;
=='''Support for SAF AIS Interfaces'''==&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform complies with the SAF AIS interfaces for the following components:&lt;br /&gt;
&lt;br /&gt;
===Availability Management Framework (AMF)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Availability Management Framework (AMF) supports the following SAF AIS interfaces as mentioned in SAI-AIS-AMF-B.02.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of AMF''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saAmfInitialize()&lt;br /&gt;
* saAmfSelectionObjectGet()&lt;br /&gt;
* saAmfDispatch()&lt;br /&gt;
* saAmfFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Health Monitoring&lt;br /&gt;
|&lt;br /&gt;
* saAmfHealthCheckStart()&lt;br /&gt;
* saAmfHealthCheckStop()&lt;br /&gt;
* SaAmfHealthCheckCallbackT&lt;br /&gt;
* saAmfHealthCheckConfirm()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Registration and Un-registration&lt;br /&gt;
|&lt;br /&gt;
* saAmfComponentRegister()&lt;br /&gt;
* saAmfComponentUnregister()&lt;br /&gt;
* saAmfComponentNameGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Service Instance Management&lt;br /&gt;
|&lt;br /&gt;
* saAmfHAStateGet()&lt;br /&gt;
* SaAmfCSISetCallbackT&lt;br /&gt;
* SaAmfCSIRemoveCallbackT&lt;br /&gt;
* saAmfCSIQuiescingComplete()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of AMF''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* SaAmfComponentTerminateCallbackT&lt;br /&gt;
* SaAmfProxiedComponentInstantiateCallbackT&lt;br /&gt;
* SaAmfProxiedComponentCleanupCallbackT&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Protection Group Management&lt;br /&gt;
|&lt;br /&gt;
* saAmfProtectionGroupTrack()&lt;br /&gt;
* SaAmfProtectionGroupTrackCallbackT&lt;br /&gt;
* saAmfProtectionGroupTrackStop()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Error Reporting &lt;br /&gt;
|&lt;br /&gt;
* saAmfComponentErrorReport()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Response   &lt;br /&gt;
|&lt;br /&gt;
* saAmfResponse()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Unsupported API's of AMF''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Brief &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Unsupported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Passive Monitoring of processes is not supported&lt;br /&gt;
|&lt;br /&gt;
* saAmfPmStart()&lt;br /&gt;
* saAmfPmStop()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Freeing the memory allocated by the saAmfProtectionGroupTrack()&lt;br /&gt;
|&lt;br /&gt;
* saAmfProtectionGroupNotificationFree()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Error Clear API is not supported.&lt;br /&gt;
|&lt;br /&gt;
* saAmfComponentErrorClear()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Checkpointing Service (CPS)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Checkpointing Service (CPS) supports the following SAF AIS interfaces as mentioned in SAI-AIS-CKPT-B.01.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of CPS''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptInitialize()&lt;br /&gt;
* saCkptSelectionObjectGet()&lt;br /&gt;
* saCkptDispatch()&lt;br /&gt;
* saCkptFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Checkpoint Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptCheckpointOpen()&lt;br /&gt;
* saCkptCheckpointOpenCallabackT&lt;br /&gt;
* saCkptCheckpointOpenAsync()&lt;br /&gt;
* saCkptCheckpointClose()&lt;br /&gt;
* saCkptCheckpointUnlink()&lt;br /&gt;
* saCkptActiveReplicaSet()&lt;br /&gt;
* saCkptCheckpointRetentionDurationSet()&lt;br /&gt;
* saCkptCheckpointStatusGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Section Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptSectionIterationInitialize()&lt;br /&gt;
* saCkptSectionIterationNext()&lt;br /&gt;
* saCkptSectionIterationFinalize()&lt;br /&gt;
* saCkptSectionCreate()&lt;br /&gt;
* saCkptSectionExpirationTimeSet()&lt;br /&gt;
* saCkptSectionDelete()&lt;br /&gt;
* saCkptCheckpointWrite()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Data Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptSectionOverwrite()&lt;br /&gt;
* saCkptCheckpointRead()&lt;br /&gt;
* saCkptCheckpointSynchronize()&lt;br /&gt;
* saCkptCheckpointSynchronizeAsync()&lt;br /&gt;
* SaCkptCheckpointSynchronizeCallbackT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Event Manager (EM)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Event Manager supports the following SAF AIS interfaces as mentioned in SAI-AIS-EVT-B.01.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of EM''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saEvtInitialize()&lt;br /&gt;
* saEvtFinalize()&lt;br /&gt;
* saEvtSelectionObjectGet()&lt;br /&gt;
* saEvtDispatch()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Event Operations&lt;br /&gt;
|&lt;br /&gt;
* saEvtEventAllocate()&lt;br /&gt;
* saEvtEventFree()&lt;br /&gt;
* saEvtEventAttributesSet()&lt;br /&gt;
* saEvtEventAttributesGet()&lt;br /&gt;
* saEvtEventDataGet()&lt;br /&gt;
* saEvtEventPublish()&lt;br /&gt;
* saEvtEventSubscribe()&lt;br /&gt;
* SaEvtEventDeliverCallbackT&lt;br /&gt;
* saEvtEventUnsubscribe()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Event Channel Operations&lt;br /&gt;
|&lt;br /&gt;
* saEvtChannelOpen()              &lt;br /&gt;
* saEvtChannelOpenAsync()&lt;br /&gt;
* SaEvtChannelOpenCallbackT&lt;br /&gt;
* saEvtChannelUnlink()&lt;br /&gt;
* saEvtChannelClose()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Unsupported API's of EM''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Brief&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Unsupported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Event Retention Time is not supported&lt;br /&gt;
|&lt;br /&gt;
* saEvtEventRetentionTimeClear()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Group Membership Service (GMS)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Group Membership Service (GMS) supports the following SAF AIS interfaces as mentioned in AIS-CLM-B.01.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of GMS''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saClmInitialize()&lt;br /&gt;
* saClmSelectionObjectGet()&lt;br /&gt;
* saClmDispatch()&lt;br /&gt;
* saClmFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Group Membership Operations&lt;br /&gt;
|&lt;br /&gt;
* saClmClusterTrack()&lt;br /&gt;
* SaClmClusterTrackCallbackT&lt;br /&gt;
* saClmClusterTrackStop()&lt;br /&gt;
* saClmClusterNodeGet()&lt;br /&gt;
* saClmClusterNodeGetAsync()&lt;br /&gt;
* SaClmClusterNodeGetCallbackT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Messaging Service (MSG)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Messaging Service (MSG) supports the following SAF AIS interfaces as mentioned in SAF-AIS-MSG-B.02.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of MSG''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saMsgInitialize()&lt;br /&gt;
* saMsgSelectionObjectGet()&lt;br /&gt;
* saMsgDispatch()&lt;br /&gt;
* saMsgFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Message Queue Operations&lt;br /&gt;
|&lt;br /&gt;
* saMsgQueueOpen()&lt;br /&gt;
* saMsgQueueOpenAsync()&lt;br /&gt;
* SaMsgQueueOpenCallbackT&lt;br /&gt;
* saMsgQueueClose()&lt;br /&gt;
* saMsgQueueStatusGet()&lt;br /&gt;
* saMsgQueueRetentionTimeSet()&lt;br /&gt;
* saMsgQueueUnlink()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Management of Message Queue Groups&lt;br /&gt;
|&lt;br /&gt;
* saMsgQueueGroupCreate()&lt;br /&gt;
* saMsgQueueGroupInsert()&lt;br /&gt;
* saMsgQueueGroupRemove()&lt;br /&gt;
* saMsgQueueGroupDelete()&lt;br /&gt;
* saMsgQueueGroupTrack()&lt;br /&gt;
* SaMsgQueueGroupTrackCallbackT&lt;br /&gt;
* saMsgQueueGroupTrackStop()&lt;br /&gt;
* saMsgQueueGroupNotificationFree()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of MSG''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Message Send and Receive Operations&lt;br /&gt;
| &lt;br /&gt;
* saMsgMessageSend()&lt;br /&gt;
* saMsgMessageSendAsync()&lt;br /&gt;
* SaMsgMessageDeliveredCallbackT&lt;br /&gt;
* saMsgMessageGet()&lt;br /&gt;
* saMsgMessageDataFree()&lt;br /&gt;
* SaMsgMessagedReceivedCallbackT&lt;br /&gt;
* saMsgMessageCancel()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Request and Reply Operations&lt;br /&gt;
|&lt;br /&gt;
* saMsgMessageSendReceive()&lt;br /&gt;
* saMsgMessageReply()&lt;br /&gt;
* saMsgMessageReplyAsync()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=='''Software Management Framework (SMF)'''==&lt;br /&gt;
&lt;br /&gt;
SMF Aligned In Service Software Upgrade (ISSU.&lt;br /&gt;
Supports application and OpenClovis SAFplus Platform middleware upgrade in a rolling (in-service) or single-step mode.&lt;br /&gt;
&lt;br /&gt;
'''Single-Step'''&lt;br /&gt;
For deployment of non-backwards compatible software, or rapid deployment of software.  This method stops the relevant services on all nodes (causing an outage) and then upgrades that software and restarts.  Note that services are stopped at various granularity levels depending on what is being upgraded.  In other words, application A can be taken out-of-service and upgraded across the cluster without affecting application B running on the same nodes.&lt;br /&gt;
&lt;br /&gt;
'''Inservice Rolling'''&lt;br /&gt;
This is the most commonly known telecom quality upgrade method.  For deployment of backwards-compatible software across the cluster, this method stops service in one &amp;quot;upgrade unit&amp;quot; at a time, upgrades the software and restarts before stopping the next &amp;quot;upgrade unit&amp;quot;.  This process continues iteratively until the entire cluster is upgraded.  Since the available redundant capacity takes over for the unit being upgraded service will be unaffected.&lt;br /&gt;
&lt;br /&gt;
=='''Hardware Platform Interface (HPI)'''==&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform does not implement the HPI APIs on its own. SAFplus Platform has been integrated and tested with the following implementations of HPI B.01.01 specification.&lt;br /&gt;
* OpenHPI 2.8.1, 2.10.2&lt;br /&gt;
* Radisys HPI 1.4&lt;br /&gt;
&lt;br /&gt;
The following sections lists out the SAF HPI APIs that are used by SAFplus Platform. Platform provider shall provide at these HPI services in order to integration with OpenClovis SAFplus Platform&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''SAF HPI APIs used by SAFplus''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
General APIs&lt;br /&gt;
|&lt;br /&gt;
* saHpiVersionGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Domain APIs&lt;br /&gt;
|&lt;br /&gt;
* saHpiSessionClose()&lt;br /&gt;
* saHpiSessionOpen()&lt;br /&gt;
* saHpiDiscover()&lt;br /&gt;
* saHpiRptEntryGet()&lt;br /&gt;
* saHpiRptEntryGetByResourceId()&lt;br /&gt;
* saHpiSubscribe()&lt;br /&gt;
* saHpiUnsubscribe()&lt;br /&gt;
* saHpiEventGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Resource APIs&lt;br /&gt;
|&lt;br /&gt;
* saHpiRdrGet()&lt;br /&gt;
* saHpiAutoExtractTimeoutSet()&lt;br /&gt;
* saHpiAutoInsertTimeoutSet()&lt;br /&gt;
* saHpiHotSwapPolicyCancel()&lt;br /&gt;
* saHpiResourceActiveSet()&lt;br /&gt;
* saHpiResourceInactiveSet()&lt;br /&gt;
* saHpiHotSwapStateGet()&lt;br /&gt;
* saHpiHotSwapActionRequest()&lt;br /&gt;
* saHpiHotSwapIndicatorStateGet()&lt;br /&gt;
* saHpiResourceResetStateSet()&lt;br /&gt;
* saHpiResourcePowerStateSet()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In addition to the above APIs SAFplus Platform also depends on the following events generated by HPI&lt;br /&gt;
# Hot Swap events (SAHPI_ET_HOTSWAP) &lt;br /&gt;
# Sensor events (SAHPI_ET_SENSOR)&lt;br /&gt;
# Resource Events (SAHPI_ET_RESOURCE)&lt;br /&gt;
&lt;br /&gt;
=='''Modifications to SAF AIS Header files'''==&lt;br /&gt;
&lt;br /&gt;
In a few instances, OpenClovis engineers found that the standard SAF-supplied header files caused errors and warnings on certain compilers.  In these cases OpenClovis modified the standard SAF header file to work with these compilers.  All of these changes broaden the set of compatible compilers.  None of these changes modify the SAF APIs.&lt;br /&gt;
&lt;br /&gt;
For example, in saAis.h, the following constant is defined:&lt;br /&gt;
&lt;br /&gt;
 #define SA_TIME_ONE_MINUTE      60000000000&lt;br /&gt;
&lt;br /&gt;
However, the number defined is greater than a 32-bit integer, so it is actually required to append a size suffix:&lt;br /&gt;
&lt;br /&gt;
 #define SA_TIME_ONE_MINUTE      60000000000LL&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/safcompliance</id>
		<title>Doc:latest/safcompliance</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/safcompliance"/>
				<updated>2011-10-24T19:34:11Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* OpenClovis AMF Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Introduction'''==&lt;br /&gt;
&lt;br /&gt;
Adherence to standards is a critical requirement for Next Generation Network&lt;br /&gt;
deployments. The Service Availability Forum (SA Forum) is the primary standards body in&lt;br /&gt;
the context of High Availability Middleware and enjoys the participation of over 95% of&lt;br /&gt;
Tier 1 TEMs. OpenClovis has been actively participating in the forum and helping to drive&lt;br /&gt;
the emerging Hardware Platform Interface (HPI) and Application Interface Specification&lt;br /&gt;
(AIS) standards based on its experience.&lt;br /&gt;
&lt;br /&gt;
As a result of the close involvement of OpenClovis with the SA Forum, the OpenClovis&lt;br /&gt;
SAFplus Platform product has been aligned with SA Forum AIS architecture and functional partitioning&lt;br /&gt;
from its inception and has kept pace with the evolution in the specifications and in many&lt;br /&gt;
cases, anticipated new features and functionality.&lt;br /&gt;
&lt;br /&gt;
Even as the specifications are evolving, the SA Forum is in the process of defining a test&lt;br /&gt;
suite that will establish compliance of a product to the specifications. While this activity is&lt;br /&gt;
in an advanced state for the HPI specifications, it has not yet taken off for AIS&lt;br /&gt;
specifications. Partial compliance test suites are expected to be available for HPI by end&lt;br /&gt;
of the 2006 calendar year.&lt;br /&gt;
&lt;br /&gt;
It should be noted that where a specification is 'A' level (example: SAI-AIS-NTF-A.01.01&lt;br /&gt;
for the Notification Service), SAF is not obligated to preserve backward compatibility&lt;br /&gt;
while going to a 'B' level version of the specification. On the other hand, backward&lt;br /&gt;
compatibility with respect to API's will be preserved between different versions of the 'B'&lt;br /&gt;
level specifications (Example: between SAI-AMF-B01.01 and SAI-AMF-B02.01)&lt;br /&gt;
&lt;br /&gt;
OpenClovis expects to formally establish the compliance of SAFplus Platform to the SA Forum AIS&lt;br /&gt;
standards as and when these compliance test suites become available. This document&lt;br /&gt;
details the level of alignment of OpenClovis SAFplus Platform with the SA Forum specifications.&lt;br /&gt;
&lt;br /&gt;
=='''Standards Referenced'''==&lt;br /&gt;
&lt;br /&gt;
The SA Forum specifications referred to in this document are available at http://www.saforum.org/home. The versions of the specifications referred to are&lt;br /&gt;
&lt;br /&gt;
*SAI-Overview-B.02.01&lt;br /&gt;
*SAI-AIS-AMF-B.02.01&lt;br /&gt;
*SAI-AIS-MSG-B.02.01&lt;br /&gt;
&lt;br /&gt;
*AIS-CKPT-B.01.01&lt;br /&gt;
*AIS-EVT-B.01.01&lt;br /&gt;
*AIS-CLM-B.01.01&lt;br /&gt;
&lt;br /&gt;
*SAI-AIS_LOG-A.01.01&lt;br /&gt;
*SAI-AIS-IMM-A.01.01&lt;br /&gt;
*SAI-AIS-NTF-A.01.01&lt;br /&gt;
*SAI-AIS-NAM-A.01.01&lt;br /&gt;
*Hardware Platform Interface Specification B.01.01&lt;br /&gt;
&lt;br /&gt;
=='''Compliance with Service Availability Forum AIS Architecture'''==&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform complies with the Service Availability Forum (SAF) Hardware Platform Interface (HPI) and Application Interface Specification (AIS) specifications. OpenClovis Inc. is actively participating in the SA Forum and helping to drive the emerging HPI and AIS standards based on its experience.&lt;br /&gt;
&lt;br /&gt;
===Programming Model and Usage===&lt;br /&gt;
&lt;br /&gt;
Section 3.1 of SAI-AIS-Overview-B.02.01 describes the SAF Application Interface programming model and the generally intended usage of the interfaces.&lt;br /&gt;
&lt;br /&gt;
It introduces the area server as an abstraction that represents the server providing services for a specification area, for instance, Availability Management Framework, Group Membership Service and so on. The interface is defined as occurring between a user application that needs the services of the area server and an area implementation library.&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform adheres to the SAF area server-area implementation library abstraction and the SAF programming and usage model in providing various services.&lt;br /&gt;
&lt;br /&gt;
===Availability Management Framework (AMF)===&lt;br /&gt;
&lt;br /&gt;
The Availability Management Framework (AMF) is the most important software entity of the SAF AIS Specification. It provides service availability by coordinating redundant resources within a cluster to deliver a system without a single point of failure. AMF prescribes a way to model applications that needs to be highly available. In addition, AMF provides a set of APIs that must be used by these applications to be managed for high availability.&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform is implemented in complete accordance with the SAF AMF model and interfaces. This may be considered as the core of the SAF solution for high availability. The only limitation in the current release with respect to the AMF component model is that SAF defines a flexible mapping between components, processes and threads whereas OpenClovis SAFplus Platform supports only a single process per component. OpenClovis Inc. offers to support one-to-one relationship between a component and a process. However, a component can have multiple threads of execution within it.&lt;br /&gt;
&lt;br /&gt;
===Application Interface Specification (AIS) Services===&lt;br /&gt;
              &lt;br /&gt;
The following OpenClovis SAFplus Platform components provide services that are functionally equivalent to SAF AIS specifications:&lt;br /&gt;
*Availability Management Framework (AMF)&lt;br /&gt;
*Checkpoint Service (CPS)&lt;br /&gt;
*Event Manager (EM)&lt;br /&gt;
*Group Membership Service (GMS)&lt;br /&gt;
*Messaging Service (MSG)&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform AMF Features===&lt;br /&gt;
*'''HA model supported'''&lt;br /&gt;
** 2N&lt;br /&gt;
** M+N&lt;br /&gt;
&lt;br /&gt;
*'''Auto Adjust'''&lt;br /&gt;
SAF SG auto adjust feature to adjust the SG based on the SU ranking giving preference to higher ranked ones for active assignments&lt;br /&gt;
&lt;br /&gt;
*'''SI Dependency'''&lt;br /&gt;
SAF SI dependency across service groups&lt;br /&gt;
&lt;br /&gt;
*'''CSI Dependency'''&lt;br /&gt;
SAF CSI dependency within the same SI for work assignments&lt;br /&gt;
&lt;br /&gt;
*'''Component instantiation dependency'''&lt;br /&gt;
SAF component instantiation dependency for components within the same Service Unit configurable through instantiationLevel attribute. &lt;br /&gt;
&lt;br /&gt;
*'''Reduction Procedure'''&lt;br /&gt;
SAF SG reduction procedure applied when the SG is running under reduced potential for computing and removing less optimal standby assignments to assign Service Instances.&lt;br /&gt;
&lt;br /&gt;
*'''AMF NOTIFICATIONS'''&lt;br /&gt;
SAF HAStateChangeNotify and SIAssignmentStateChangeNotify notifications for applications to subscribe for AMF state transitions&lt;br /&gt;
&lt;br /&gt;
*'''Preferred SI assignment'''&lt;br /&gt;
Preferred SI assignment that could be configured for SUs to control SI assignments. Coupled with the delayed SG startup configuration through restartDuration to control instantiation of all the preferred SUs, SI preference could be enforced during initial cluster startup for the Service units in the cluster.&lt;br /&gt;
&lt;br /&gt;
*'''Proxy-Proxied support'''&lt;br /&gt;
Allow HA control of legacy application (non-SAF awared) via proxy&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Cluster/Group Membership Service (GMS) Features===&lt;br /&gt;
*'''Cluster Membership'''&lt;br /&gt;
CLM service manages the membership of the nodes. It manages the cluster formation during node joins and leaves.&lt;br /&gt;
&lt;br /&gt;
*'''Tracking Cluster Membership'''&lt;br /&gt;
Any application can register for Cluster Track callback through which it can get the notification for any node joins and leaves in the cluster&lt;br /&gt;
&lt;br /&gt;
*'''Getting Cluster Member information'''&lt;br /&gt;
API interface are available to get the information such as Address, node name etc, for any given cluster member node.&lt;br /&gt;
&lt;br /&gt;
*'''Cluster node eviction/ejection'''&lt;br /&gt;
A cluster node can be administratively ejected from the cluster.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Checkpointing Service (CPS) Features===&lt;br /&gt;
*'''Checkpoint/Section creation/deletion'''&lt;br /&gt;
CPS provides APIs for users to create/delete checkpoints and sections within the checkpoints.&lt;br /&gt;
&lt;br /&gt;
*'''Granularity at Section level'''&lt;br /&gt;
CPS allows user to create a checkpoint and inside a checkpoint user can create any number of sections and read/write each sections independently.&lt;br /&gt;
&lt;br /&gt;
*'''Checkpoint Status'''&lt;br /&gt;
CPS provides API to retrieve checkpoint status.&lt;br /&gt;
&lt;br /&gt;
*'''Locking at Section level'''&lt;br /&gt;
CPS provides read/write locks at section level due to which multiple sections can be accessed simultaneously. &lt;br /&gt;
&lt;br /&gt;
*'''Update options'''&lt;br /&gt;
CPS allows both Synchronous and Asynchronous update of the checkpoint replicas across the cluster&lt;br /&gt;
&lt;br /&gt;
*'''Replica Management'''&lt;br /&gt;
CPS allows both collocated and non-collocated mode of checkpoint replicas&lt;br /&gt;
&lt;br /&gt;
*'''Choosing replica at run time'''&lt;br /&gt;
User can use ActiveReplicaSet() APIs to set the active replica at run time.&lt;br /&gt;
&lt;br /&gt;
*'''Retention time'''&lt;br /&gt;
CPS provides users to specify a retention time for which the checkpoint is retained even when no one is accessing the checkpoint&lt;br /&gt;
&lt;br /&gt;
*'''Section Expiration Time'''&lt;br /&gt;
User can set an absolute expiration time for a section after which the section is deleted irrespective of its usage at that time. &lt;br /&gt;
&lt;br /&gt;
*'''Section Iteration'''&lt;br /&gt;
Users can iterate through the sections of a checkpoint.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Event Service features===&lt;br /&gt;
*'''Publish/Subscribe multipoint-to-multipoint communication mechanism'''&lt;br /&gt;
** Based on concept of event channels&lt;br /&gt;
** Publisher communicates asynchronously with one or more subscribers over an event channel&lt;br /&gt;
** Multiple publishers and subscribers can communicate over the same event channel; publishers can be subscribers on the same event channel&lt;br /&gt;
** Individual publishers and individual subscribers can communicate over multiple channels&lt;br /&gt;
*'''Events consist of standard header and one or more bytes of payload data'''&lt;br /&gt;
** i.e. Event Service does not impose any specific transfer syntax for the data&lt;br /&gt;
*'''Event channel management'''&lt;br /&gt;
** Event service provides APIs for opening, closing and deleting event channels&lt;br /&gt;
*'''Event operations'''&lt;br /&gt;
** Event service provides APIs for managing the event payload data, publishing the event, subscribing for the event etc&lt;br /&gt;
&lt;br /&gt;
===Additional OpenClovis SAFplus Platform Services===&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform also provides various components that were implemented earlier than its implementation with SAF specifications. These components provide services that are functional equivalent to SAF AIS services as listed below:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''SAFplus Platform Services Equivalent to SA Forum AIS Services''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| OpenClovis SAFplus Platform Components&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Functionally Equivalent AIS Service&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| AIS Specification&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Clovis Object Repository (COR)&lt;br /&gt;
|&lt;br /&gt;
Information Model Management Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-IMM-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Alarm Manager (AM) &lt;br /&gt;
|&lt;br /&gt;
Notification Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-NTF-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Log Service &lt;br /&gt;
|&lt;br /&gt;
Logging Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-LOG-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Naming Service &lt;br /&gt;
|&lt;br /&gt;
Naming Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-NAM-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Platform Management Service &lt;br /&gt;
|&lt;br /&gt;
Platform Management Service&lt;br /&gt;
|&lt;br /&gt;
SAI-AIS-PLM-A.01.01&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===IMM (OpenClovis Object Repository - COR) Features===&lt;br /&gt;
The OpenClovis Object Repository(COR) implements the IMM features. We are progressing on having API level compliance which will be available in R5.0.&lt;br /&gt;
&lt;br /&gt;
The following are the IMM compliant features of COR:&lt;br /&gt;
&lt;br /&gt;
*'''Object Mananger and Object Implementer'''&lt;br /&gt;
**COR provides a rich set of APIs to make configuration changes on a Managed Object (MO). It provides service to implement a MO by multiple Object Implementers (OI), so that the configuration changes on the MO can be validated by all the OIs. It provides APIs to make or remove an application as a OI for a MO.&lt;br /&gt;
&lt;br /&gt;
*'''Runtime Attributes Management'''&lt;br /&gt;
**COR provides service to implement the runtime attributes of an object or all the object instances of a class. The Runtime attributes values can be cached or non-cached in COR. The cached runtime attributes values has to be updated by Primary Object Implementer (POI) periodically in COR. The value of non-cached runtime attributes will be updated by POI on request by COR. The values of cached runtime attributes can be persisted into storage devices.&lt;br /&gt;
&lt;br /&gt;
*'''Configuration Attributes Management'''&lt;br /&gt;
**The Configuration attributes are always cached and persisted by COR. Any configuration change on these attributes by a OM will be implemented by all the OIs.&lt;br /&gt;
&lt;br /&gt;
*'''Attribute Characteristics'''&lt;br /&gt;
**COR supports the following attribute characteristics.&lt;br /&gt;
***CONFIG      - Indicates that the attribute is a configuration type attribute.&lt;br /&gt;
***RUNTIME     - Indicates that the attribute is a runtime attribute.&lt;br /&gt;
***WRITABLE    - Indicates that the configuration attribute can be modified.&lt;br /&gt;
***INITIALIZED - Indicates that value for the configuration attribute must be specified when the object is created.&lt;br /&gt;
***CACHED      - Indicates that the value of the attribute is cached in COR.&lt;br /&gt;
***PERSISTENT  - Indicates that the value of the attribute must be stored in a permanent manner by COR&lt;br /&gt;
&lt;br /&gt;
*'''Object Class Management'''&lt;br /&gt;
**COR provides APIs to create, delete and modify the classes, and to make hierarchical relationship between the classes. It also provides service to inherit the existing class to create a new class.&lt;br /&gt;
&lt;br /&gt;
*'''Tree organization of Objects'''&lt;br /&gt;
**COR organizes the MOs in a hierarchical manner supporting parent-child relationship, inheritance, association and containment relationships.&lt;br /&gt;
&lt;br /&gt;
*'''Search Operations'''&lt;br /&gt;
**The search operations can be performed on a single MO, or a MO and its children, or a sub tree rooted from the given MO.&lt;br /&gt;
**We can either retrieve all the attributes in the MO matching the given criteria or only the matching attributes.&lt;br /&gt;
&lt;br /&gt;
*'''Object Access'''&lt;br /&gt;
**COR bundle GET APIs can be used to retrieve the attributes values in a efficient manner by grouping the GET requests belonging different MOs into one single request to COR. The values of runtime non-cached attributes will be updated by POI on request by COR.&lt;br /&gt;
&lt;br /&gt;
*'''Class Implementer'''&lt;br /&gt;
**COR provides APIs for the application to implement all the Object instances of a class, for both Configuration and Runtime attributes.&lt;br /&gt;
&lt;br /&gt;
===SAF Notification Features===&lt;br /&gt;
OpenClovis SAFplus Platform is compliant with the following Notification features :&lt;br /&gt;
&lt;br /&gt;
*'''Notification Types'''&lt;br /&gt;
**Alarm&lt;br /&gt;
**State Change&lt;br /&gt;
**Object Create/Delete&lt;br /&gt;
**Attribute Change&lt;br /&gt;
&lt;br /&gt;
*'''Alarm Notification'''&lt;br /&gt;
**An alarm report is a notification of a specific event that may or may not represent an error. OpenClovis Alarm notification is fully compliant with ITU-T X.733 standard (which is recommended by SAF-NTF).&lt;br /&gt;
&lt;br /&gt;
*'''State Change Notification'''&lt;br /&gt;
**OpenClovis AMF provides services for the following state change notifications to the Management Applications&lt;br /&gt;
***HA state of the SU changed&lt;br /&gt;
***SI partially/fully assigned&lt;br /&gt;
***Component arrived/departed&lt;br /&gt;
***Node arrived/departed&lt;br /&gt;
&lt;br /&gt;
*'''Object Create/Delete and Attribute Change Notifications'''&lt;br /&gt;
**OpenClovis SAFplus Platform provides services for the notification of Managed Object Creation, Deletion and Attribute changes. It also supports the Management Applications to filter the attribute change notifications based on attribute identifiers.&lt;br /&gt;
&lt;br /&gt;
*'''Notification Delivery Characteristics'''&lt;br /&gt;
**Guaranteed delivery&lt;br /&gt;
**At most once delivery&lt;br /&gt;
**Ordered delivery&lt;br /&gt;
**Persisted (Alarm notifications).&lt;br /&gt;
&lt;br /&gt;
*'''Notification Filtering'''&lt;br /&gt;
**OpenClovis SAFplus Platform provides service for filtering the notifications based on one or more filter criteria which is particular to the notification type. It also provides the ability to correlate with the other notifications.&lt;br /&gt;
&lt;br /&gt;
=='''Support for SAF AIS Interfaces'''==&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform complies with the SAF AIS interfaces for the following components:&lt;br /&gt;
&lt;br /&gt;
===Availability Management Framework (AMF)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Availability Management Framework (AMF) supports the following SAF AIS interfaces as mentioned in SAI-AIS-AMF-B.02.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of AMF''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saAmfInitialize()&lt;br /&gt;
* saAmfSelectionObjectGet()&lt;br /&gt;
* saAmfDispatch()&lt;br /&gt;
* saAmfFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Health Monitoring&lt;br /&gt;
|&lt;br /&gt;
* saAmfHealthCheckStart()&lt;br /&gt;
* saAmfHealthCheckStop()&lt;br /&gt;
* SaAmfHealthCheckCallbackT&lt;br /&gt;
* saAmfHealthCheckConfirm()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Registration and Un-registration&lt;br /&gt;
|&lt;br /&gt;
* saAmfComponentRegister()&lt;br /&gt;
* saAmfComponentUnregister()&lt;br /&gt;
* saAmfComponentNameGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Service Instance Management&lt;br /&gt;
|&lt;br /&gt;
* saAmfHAStateGet()&lt;br /&gt;
* SaAmfCSISetCallbackT&lt;br /&gt;
* SaAmfCSIRemoveCallbackT&lt;br /&gt;
* saAmfCSIQuiescingComplete()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of AMF''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* SaAmfComponentTerminateCallbackT&lt;br /&gt;
* SaAmfProxiedComponentInstantiateCallbackT&lt;br /&gt;
* SaAmfProxiedComponentCleanupCallbackT&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Protection Group Management&lt;br /&gt;
|&lt;br /&gt;
* saAmfProtectionGroupTrack()&lt;br /&gt;
* SaAmfProtectionGroupTrackCallbackT&lt;br /&gt;
* saAmfProtectionGroupTrackStop()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Error Reporting &lt;br /&gt;
|&lt;br /&gt;
* saAmfComponentErrorReport()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Response   &lt;br /&gt;
|&lt;br /&gt;
* saAmfResponse()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Unsupported API's of AMF''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Brief &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Unsupported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Passive Monitoring of processes is not supported&lt;br /&gt;
|&lt;br /&gt;
* saAmfPmStart()&lt;br /&gt;
* saAmfPmStop()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Freeing the memory allocated by the saAmfProtectionGroupTrack()&lt;br /&gt;
|&lt;br /&gt;
* saAmfProtectionGroupNotificationFree()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Component Error Clear API is not supported.&lt;br /&gt;
|&lt;br /&gt;
* saAmfComponentErrorClear()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Checkpointing Service (CPS)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Checkpointing Service (CPS) supports the following SAF AIS interfaces as mentioned in SAI-AIS-CKPT-B.01.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of CPS''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptInitialize()&lt;br /&gt;
* saCkptSelectionObjectGet()&lt;br /&gt;
* saCkptDispatch()&lt;br /&gt;
* saCkptFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Checkpoint Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptCheckpointOpen()&lt;br /&gt;
* saCkptCheckpointOpenCallabackT&lt;br /&gt;
* saCkptCheckpointOpenAsync()&lt;br /&gt;
* saCkptCheckpointClose()&lt;br /&gt;
* saCkptCheckpointUnlink()&lt;br /&gt;
* saCkptActiveReplicaSet()&lt;br /&gt;
* saCkptCheckpointRetentionDurationSet()&lt;br /&gt;
* saCkptCheckpointStatusGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Section Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptSectionIterationInitialize()&lt;br /&gt;
* saCkptSectionIterationNext()&lt;br /&gt;
* saCkptSectionIterationFinalize()&lt;br /&gt;
* saCkptSectionCreate()&lt;br /&gt;
* saCkptSectionExpirationTimeSet()&lt;br /&gt;
* saCkptSectionDelete()&lt;br /&gt;
* saCkptCheckpointWrite()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Data Management&lt;br /&gt;
|&lt;br /&gt;
* saCkptSectionOverwrite()&lt;br /&gt;
* saCkptCheckpointRead()&lt;br /&gt;
* saCkptCheckpointSynchronize()&lt;br /&gt;
* saCkptCheckpointSynchronizeAsync()&lt;br /&gt;
* SaCkptCheckpointSynchronizeCallbackT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Event Manager (EM)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Event Manager supports the following SAF AIS interfaces as mentioned in SAI-AIS-EVT-B.01.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of EM''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saEvtInitialize()&lt;br /&gt;
* saEvtFinalize()&lt;br /&gt;
* saEvtSelectionObjectGet()&lt;br /&gt;
* saEvtDispatch()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Event Operations&lt;br /&gt;
|&lt;br /&gt;
* saEvtEventAllocate()&lt;br /&gt;
* saEvtEventFree()&lt;br /&gt;
* saEvtEventAttributesSet()&lt;br /&gt;
* saEvtEventAttributesGet()&lt;br /&gt;
* saEvtEventDataGet()&lt;br /&gt;
* saEvtEventPublish()&lt;br /&gt;
* saEvtEventSubscribe()&lt;br /&gt;
* SaEvtEventDeliverCallbackT&lt;br /&gt;
* saEvtEventUnsubscribe()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Event Channel Operations&lt;br /&gt;
|&lt;br /&gt;
* saEvtChannelOpen()              &lt;br /&gt;
* saEvtChannelOpenAsync()&lt;br /&gt;
* SaEvtChannelOpenCallbackT&lt;br /&gt;
* saEvtChannelUnlink()&lt;br /&gt;
* saEvtChannelClose()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Unsupported API's of EM''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Brief&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Unsupported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Event Retention Time is not supported&lt;br /&gt;
|&lt;br /&gt;
* saEvtEventRetentionTimeClear()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Group Membership Service (GMS)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Group Membership Service (GMS) supports the following SAF AIS interfaces as mentioned in AIS-CLM-B.01.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of GMS''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saClmInitialize()&lt;br /&gt;
* saClmSelectionObjectGet()&lt;br /&gt;
* saClmDispatch()&lt;br /&gt;
* saClmFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Group Membership Operations&lt;br /&gt;
|&lt;br /&gt;
* saClmClusterTrack()&lt;br /&gt;
* SaClmClusterTrackCallbackT&lt;br /&gt;
* saClmClusterTrackStop()&lt;br /&gt;
* saClmClusterNodeGet()&lt;br /&gt;
* saClmClusterNodeGetAsync()&lt;br /&gt;
* SaClmClusterNodeGetCallbackT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Messaging Service (MSG)===&lt;br /&gt;
&lt;br /&gt;
OpenClovis Messaging Service (MSG) supports the following SAF AIS interfaces as mentioned in SAF-AIS-MSG-B.02.01.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of MSG''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Library Lifecycle Management&lt;br /&gt;
|&lt;br /&gt;
* saMsgInitialize()&lt;br /&gt;
* saMsgSelectionObjectGet()&lt;br /&gt;
* saMsgDispatch()&lt;br /&gt;
* saMsgFinalize()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Message Queue Operations&lt;br /&gt;
|&lt;br /&gt;
* saMsgQueueOpen()&lt;br /&gt;
* saMsgQueueOpenAsync()&lt;br /&gt;
* SaMsgQueueOpenCallbackT&lt;br /&gt;
* saMsgQueueClose()&lt;br /&gt;
* saMsgQueueStatusGet()&lt;br /&gt;
* saMsgQueueRetentionTimeSet()&lt;br /&gt;
* saMsgQueueUnlink()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Management of Message Queue Groups&lt;br /&gt;
|&lt;br /&gt;
* saMsgQueueGroupCreate()&lt;br /&gt;
* saMsgQueueGroupInsert()&lt;br /&gt;
* saMsgQueueGroupRemove()&lt;br /&gt;
* saMsgQueueGroupDelete()&lt;br /&gt;
* saMsgQueueGroupTrack()&lt;br /&gt;
* SaMsgQueueGroupTrackCallbackT&lt;br /&gt;
* saMsgQueueGroupTrackStop()&lt;br /&gt;
* saMsgQueueGroupNotificationFree()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Supported API's of MSG''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Message Send and Receive Operations&lt;br /&gt;
| &lt;br /&gt;
* saMsgMessageSend()&lt;br /&gt;
* saMsgMessageSendAsync()&lt;br /&gt;
* SaMsgMessageDeliveredCallbackT&lt;br /&gt;
* saMsgMessageGet()&lt;br /&gt;
* saMsgMessageDataFree()&lt;br /&gt;
* SaMsgMessagedReceivedCallbackT&lt;br /&gt;
* saMsgMessageCancel()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Request and Reply Operations&lt;br /&gt;
|&lt;br /&gt;
* saMsgMessageSendReceive()&lt;br /&gt;
* saMsgMessageReply()&lt;br /&gt;
* saMsgMessageReplyAsync()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=='''Software Management Framework (SMF)'''==&lt;br /&gt;
&lt;br /&gt;
SMF Aligned In Service Software Upgrade (ISSU.&lt;br /&gt;
Supports application and OpenClovis SAFplus Platform middleware upgrade in a rolling (in-service) or single-step mode.&lt;br /&gt;
&lt;br /&gt;
'''Single-Step'''&lt;br /&gt;
For deployment of non-backwards compatible software, or rapid deployment of software.  This method stops the relevant services on all nodes (causing an outage) and then upgrades that software and restarts.  Note that services are stopped at various granularity levels depending on what is being upgraded.  In other words, application A can be taken out-of-service and upgraded across the cluster without affecting application B running on the same nodes.&lt;br /&gt;
&lt;br /&gt;
'''Inservice Rolling'''&lt;br /&gt;
This is the most commonly known telecom quality upgrade method.  For deployment of backwards-compatible software across the cluster, this method stops service in one &amp;quot;upgrade unit&amp;quot; at a time, upgrades the software and restarts before stopping the next &amp;quot;upgrade unit&amp;quot;.  This process continues iteratively until the entire cluster is upgraded.  Since the available redundant capacity takes over for the unit being upgraded service will be unaffected.&lt;br /&gt;
&lt;br /&gt;
=='''Hardware Platform Interface (HPI)'''==&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform does not implement the HPI APIs on its own. SAFplus Platform has been integrated and tested with the following implementations of HPI B.01.01 specification.&lt;br /&gt;
* OpenHPI 2.8.1, 2.10.2&lt;br /&gt;
* Radisys HPI 1.4&lt;br /&gt;
&lt;br /&gt;
The following sections lists out the SAF HPI APIs that are used by SAFplus Platform. Platform provider shall provide at these HPI services in order to integration with OpenClovis SAFplus Platform&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''SAF HPI APIs used by SAFplus''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;350&amp;quot;| Services &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Supported APIs&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
General APIs&lt;br /&gt;
|&lt;br /&gt;
* saHpiVersionGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Domain APIs&lt;br /&gt;
|&lt;br /&gt;
* saHpiSessionClose()&lt;br /&gt;
* saHpiSessionOpen()&lt;br /&gt;
* saHpiDiscover()&lt;br /&gt;
* saHpiRptEntryGet()&lt;br /&gt;
* saHpiRptEntryGetByResourceId()&lt;br /&gt;
* saHpiSubscribe()&lt;br /&gt;
* saHpiUnsubscribe()&lt;br /&gt;
* saHpiEventGet()&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Resource APIs&lt;br /&gt;
|&lt;br /&gt;
* saHpiRdrGet()&lt;br /&gt;
* saHpiAutoExtractTimeoutSet()&lt;br /&gt;
* saHpiAutoInsertTimeoutSet()&lt;br /&gt;
* saHpiHotSwapPolicyCancel()&lt;br /&gt;
* saHpiResourceActiveSet()&lt;br /&gt;
* saHpiResourceInactiveSet()&lt;br /&gt;
* saHpiHotSwapStateGet()&lt;br /&gt;
* saHpiHotSwapActionRequest()&lt;br /&gt;
* saHpiHotSwapIndicatorStateGet()&lt;br /&gt;
* saHpiResourceResetStateSet()&lt;br /&gt;
* saHpiResourcePowerStateSet()&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In addition to the above APIs SAFplus Platform also depends on the following events generated by HPI&lt;br /&gt;
# Hot Swap events (SAHPI_ET_HOTSWAP) &lt;br /&gt;
# Sensor events (SAHPI_ET_SENSOR)&lt;br /&gt;
# Resource Events (SAHPI_ET_RESOURCE)&lt;br /&gt;
&lt;br /&gt;
=='''Modifications to SAF AIS Header files'''==&lt;br /&gt;
&lt;br /&gt;
In a few instances, OpenClovis engineers found that the standard SAF-supplied header files caused errors and warnings on certain compilers.  In these cases OpenClovis modified the standard SAF header file to work with these compilers.  All of these changes broaden the set of compatible compilers.  None of these changes modify the SAF APIs.&lt;br /&gt;
&lt;br /&gt;
For example, in saAis.h, the following constant is defined:&lt;br /&gt;
&lt;br /&gt;
 #define SA_TIME_ONE_MINUTE      60000000000&lt;br /&gt;
&lt;br /&gt;
However, the number defined is greater than a 32-bit integer, so it is actually required to append a size suffix:&lt;br /&gt;
&lt;br /&gt;
 #define SA_TIME_ONE_MINUTE      60000000000LL&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/relnotes</id>
		<title>Doc:latest/relnotes</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/relnotes"/>
				<updated>2011-10-24T19:33:09Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* Known Issues of OpenClovis SAFplus Platform */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Preface'''==&lt;br /&gt;
&lt;br /&gt;
Welcome to ''OpenClovis Release Notes''. This document provides information about the details of the platforms on which OpenClovis SAFplus Availability/Scalability Platform (the SAFplus Platform for short) and Integrated Development Environment (IDE) have been tested and validated for SDK Release 6.0. It contains the additional features and enhancements of the product since the previous release. It also summarizes the known issues and limitations of the product and provides workaround wherever applicable.&lt;br /&gt;
&lt;br /&gt;
===Key Topics===&lt;br /&gt;
&lt;br /&gt;
''OpenClovis Release Notes'' covers the following topics in details:&lt;br /&gt;
*Tested Platforms&lt;br /&gt;
*What Is New&lt;br /&gt;
*Migration To Latest Version&lt;br /&gt;
*Known Issues&lt;br /&gt;
*Environment Related Observation&lt;br /&gt;
*Documentation Issues&lt;br /&gt;
&lt;br /&gt;
===Audience===&lt;br /&gt;
&lt;br /&gt;
''OpenClovis Release Notes'' addresses system integrators, designers, and system architects. To use SAFplus Platform, you must be aware of the fundamentals of operation, management, and configuration of telecom and networking domains. You must also be familiar with C programming, UML notations, and have basic knowledge of Linux.&lt;br /&gt;
&lt;br /&gt;
===Documentation Conventions===&lt;br /&gt;
&lt;br /&gt;
This guide uses different fonts and symbols to differentiate between document elements and types of information. These conventions are summarized in the following table.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;  width=&amp;quot;680&amp;quot;&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Notation &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Description&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|style=&amp;quot;color:black&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;Code&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
This font denotes the C code provided in various examples.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|Cross reference&lt;br /&gt;
|&lt;br /&gt;
This font denotes a hyperlink. You can click on the hyperlink text to access the reference location, which can be either a section within the User Guide or a URL link. A cross reference refers to a section name and accesses the first page of that section.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''Bold Text''' &lt;br /&gt;
|&lt;br /&gt;
Menu items and button names.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''''Italic Text''''' &lt;br /&gt;
|&lt;br /&gt;
Variables for which you enter values.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]This indicates the presence of notes or annotations, related to the context of the document.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Caution.png]]This indicates that certain precautionary measures must be taken before performing a particular task.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Info.png]]This indicates that additional information is provided to you.&lt;br /&gt;
&lt;br /&gt;
===Related Documents===&lt;br /&gt;
&lt;br /&gt;
For additional information about OpenClovis products, refer to the following guides:&lt;br /&gt;
* '''SAFplus Platform SA Forum Compliance''' describes the level of compliance of OpenClovis SAFplus Platform and its Application Programming Interface (API) with the relevant Service Availability Forum Specifications.&lt;br /&gt;
* '''SAFplus Platform Installation Guide''' provides the system requirements, installation procedure for OpenClovis SAFplus Platform, IDE, and the Evaluation System.&lt;br /&gt;
* '''SAFplus Platform Sample Application Tutorial''' explains the steps to create and build a sample model using OpenClovis IDE and OpenClovis SAFplus Platform. It also provides troubleshooting information for this process. This provides the logical first step in understanding the SAFplus Platform offering.&lt;br /&gt;
* '''SAFplus Platform Evaluation System User Guide''' provides all the required information to configure and run the sample models packaged within the Evaluation System. This document also provides good understanding of OpenClovis SAFplus Platform's functionality. This is the natural follow on to the ''OpenClovis Sample Application Tutorial'' as it builds on the example created in that document. &lt;br /&gt;
* '''SAFplus Platform SDK User Guide''' provides information about SAFplus Availability/Scalability Platform architecture, various SAFplus Platform components, and their interactions. This guide helps you to configure the OpenClovis SAFplus Platform components, compile, and execute the SAFplus Platform code to build your custom application.&lt;br /&gt;
* '''SAFplus Platform IDE User Guide''' describes the usage of Integrated Development Environment (IDE), a graphical development environment that complements the SAFplus Platform. This guide helps you to understand how to use the various features of the IDE to build the application.&lt;br /&gt;
* '''SAFplus Platform Log Tool User Guide''' provides information about the usage of OpenClovis Log Tool. OpenClovis Log Tool is an interactive utility that allows you to view binary log files in a readable format and hence monitor system errors, warnings, and other log information. Log Tool allows you to format the &amp;lt;code&amp;gt;.log&amp;lt;/code&amp;gt; files and filter them to view the required entries.&lt;br /&gt;
* '''SAFplus Platform API Reference Guide''' is provided for each component. It describes the Application Programming Interface (API), Service Model, and Management Information Model of the various OpenClovis Application Service Platform (SAFplus Platform) services. It helps the developer to understand the capabilities of the SAFplus Platform services and the APIs provided by these services.&lt;br /&gt;
* '''SAFplus Platform Console Reference Guide''' provides details about managing applications built on SAFplus Platform using the SAFplus Platform runtime debug console commands. SAFplus Platform Console commands can be used to manage, monitor, and test your application.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Online Technical Support===&lt;br /&gt;
&lt;br /&gt;
OpenClovis customers and partners can register on our Web site and receive personalized services and information. If you need any support or assistance while working on OpenClovis products, you can access the following: URL: http://www.openclovis.com. Send your queries to: support@openclovis.com. Open source community support is available at: http://www.openclovis.org/forum.&lt;br /&gt;
&lt;br /&gt;
===Documentation Feedback===&lt;br /&gt;
&lt;br /&gt;
We are interested in hearing from our customers on the documentation provided with the product. Let us know your comments and suggestions on improving the documentation at OpenClovis Inc. Send your comments to: support@openclovis.com. Post your feedback on documentation in the page on our documentation wiki located at [http://help.openclovis.com http://help.openclovis.com].&lt;br /&gt;
&lt;br /&gt;
=='''Tested Platforms'''==&lt;br /&gt;
&lt;br /&gt;
This chapter provides the details of the platforms on which OpenClovis SAFplus Platform have been tested and validated.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Tested Platform Configurations''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;150&amp;quot;| Platform&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Configuration&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Hardware&lt;br /&gt;
|&lt;br /&gt;
* ATCA 5U Chassis - Schroff, ASIS&lt;br /&gt;
* ATCA 12U Chassis - Schroff, Sanmina, HP, Sun Netra, Radisys, Huawei Tecal Server&lt;br /&gt;
* Pigeon Point Systems ShMM300 and ShMM500 based Shelf Controllers&lt;br /&gt;
* Radisys Promentum 60x0 and its 2100 Switch/Shelf Controller blades&lt;br /&gt;
* CPU Blades:&lt;br /&gt;
** Intel Xeon based server cards&lt;br /&gt;
** Intel Pentium and Xeon based desktops and rack mount servers (RMS)&lt;br /&gt;
** Intel Itanium based RMS&lt;br /&gt;
** AMD Opteron based ATCA cards&lt;br /&gt;
** AMD Opteron and Athlon based desktops&lt;br /&gt;
** PowerPC based AMCs&lt;br /&gt;
** PowerPC based desktops&lt;br /&gt;
** Huawei Tecal BH23&lt;br /&gt;
** Sun 3020 and 3090&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Software&lt;br /&gt;
|&lt;br /&gt;
* Wind River PNE-LE 1.2 (2.6.10 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 1.3 (2.6.14 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 1.4 (2.6.14 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 2.0 (2.6.21 kernel) on CPU blades&lt;br /&gt;
* MontaVista Linux Carrier Grade Edition 5.0 (2.6.21 kernel)on CPU Blades&lt;br /&gt;
* QNX Neutrino RTOS 6.3.2&lt;br /&gt;
* Pigeon Point Systems Shelf Manager version 2.2.1 on ShMM300, ShMM500&lt;br /&gt;
* SCM software version 1.7 on ATCA 2100 Shelf Manager&lt;br /&gt;
* OpenHPI 2.8.1 and 2.10.2&lt;br /&gt;
* Radisys HPI Client Library (HCL) version 1.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For more details on the hardware and software requirements and the steps to install OpenClovis SAFplus Platform and IDE, refer to ''OpenClovis Installation Guide''.&lt;br /&gt;
&lt;br /&gt;
=='''What Is New'''==&lt;br /&gt;
&lt;br /&gt;
This chapter outlines the new features and enhancements provided by OpenClovis SAFplus Platform and IDE for Release 5.0.&lt;br /&gt;
&lt;br /&gt;
===Features of OpenClovis SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
====General Features====&lt;br /&gt;
&lt;br /&gt;
* '''Support for Wind River PNELE 2.0''': OpenClovis SDK can seamlessly build SAFplus Platform and binaries for Wind River Platform for Network Equipment Linux Edition 2.0 on all supported SDK platforms, either using the build tool-chain of OpenClovis or of the development environment of Wind River.&lt;br /&gt;
&lt;br /&gt;
====High Availability (HA)====&lt;br /&gt;
&lt;br /&gt;
*'''ISSU - In Service Software Upgrade'''&lt;br /&gt;
Supports middleware upgrade in a rolling (in-service) or single-step mode.&lt;br /&gt;
&lt;br /&gt;
'''Single-Step'''&lt;br /&gt;
For deployment of non-backwards compatible software, or rapid deployment of software.  This method stops the relevant services on all nodes (causing an outage) and then upgrades that software and restarts.  Note that services are stopped at various granularity levels depending on what is being upgraded.  In other words, application A can be taken out-of-service and upgraded across the cluster without affecting application B running on the same nodes.&lt;br /&gt;
&lt;br /&gt;
'''Inservice Rolling'''&lt;br /&gt;
This is the most commonly known telecom quality upgrade method.  For deployment of backwards-compatible software across the cluster, this method stops service in one &amp;quot;upgrade unit&amp;quot; at a time, upgrades the software and restarts before stopping the next &amp;quot;upgrade unit&amp;quot;.  This process continues iteratively until the entire cluster is upgraded.  Since the available redundant capacity takes over for the unit being upgraded service will be unaffected.&lt;br /&gt;
&lt;br /&gt;
====Infrastructure and Communications====&lt;br /&gt;
&lt;br /&gt;
====Group Membership Service (GMS) over TIPC====&lt;br /&gt;
&lt;br /&gt;
By default GMS/openais is now compiled to run over TIPC.&lt;br /&gt;
&lt;br /&gt;
====SAF Message Service====&lt;br /&gt;
&lt;br /&gt;
SAF messaging data types and APIs supported by OpenClovis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''classes/types:'''&lt;br /&gt;
&lt;br /&gt;
*SaMsgMessageT&lt;br /&gt;
*SaMsgHandleT&lt;br /&gt;
*SaMsgQueueStatusT&lt;br /&gt;
*SaMsgQueueHandleT&lt;br /&gt;
*SaMsgSenderIdT&lt;br /&gt;
*SaMsgQueueCreationAttributesT&lt;br /&gt;
*SaMsgQueueOpenFlagsT&lt;br /&gt;
*SaMsgQueueGroupPolicyT&lt;br /&gt;
*SaMsgQueueGroupNotificationBufferT&lt;br /&gt;
*SaMsgQueueGroupNotificationT&lt;br /&gt;
*SaMsgQueueUsageT&lt;br /&gt;
*SaMsgCallbacksT&lt;br /&gt;
*SaMsgMessageReceivedCallbackT&lt;br /&gt;
&lt;br /&gt;
*'''APIs:'''&lt;br /&gt;
&lt;br /&gt;
*saMsgMessageSend&lt;br /&gt;
*saMsgMessageSendAsync&lt;br /&gt;
*saMsgQueueOpen&lt;br /&gt;
*saMsgQueueClose&lt;br /&gt;
*saMsgQueueStatusGet&lt;br /&gt;
*saMsgMessageGet&lt;br /&gt;
*saMsgMessageDataFree&lt;br /&gt;
*saMsgQueueGroupCreate&lt;br /&gt;
*saMsgQueueGroupInsert&lt;br /&gt;
*saMsgQueueGroupTrack&lt;br /&gt;
*saMsgQueueGroupNotificationFree&lt;br /&gt;
*saMsgInitialize&lt;br /&gt;
*saMsgFinalize&lt;br /&gt;
*saMsgDispatch&lt;br /&gt;
&lt;br /&gt;
====SAF Component cleanup script support====&lt;br /&gt;
&lt;br /&gt;
5.0 introduces support to configure cleanup commands for SA-AWARE components using the Openclovis IDE. The cleanup command is invoked by AMF on component cleanup or abrupt terminations.&lt;br /&gt;
&lt;br /&gt;
===System Management===&lt;br /&gt;
&lt;br /&gt;
*Support of net-snmp 5.4.2.&lt;br /&gt;
*SNMP Traps in 64 Bit architectures.&lt;br /&gt;
&lt;br /&gt;
===Platform Management===&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform provides pre-integrated support for commonly used ATCA platforms. All service affecting events reported by the shelf manager via HPI are intercepted and service on affected hardware is migrated to standby equipment, ensuring continuity of service. &lt;br /&gt;
&lt;br /&gt;
This support is provided with the '''Platform Support Package (PSP)''' for Piegon Point Shelf manager 500ShMM via openHPI. &lt;br /&gt;
&lt;br /&gt;
PSP is available as a separate product, please contact OpenClovis Sales for further information.&lt;br /&gt;
&lt;br /&gt;
===Features of OpenClovis IDE===&lt;br /&gt;
&lt;br /&gt;
* '''Running SAFplus Platform without manageability components''': IDE is having the support for enable/disable SAFplus Platform components. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
* '''AMF Clean-up script''': IDE is having support to specify the cleanup command in SAF Component. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
* '''Versioning the Configuration Files''': IDE is having support for versioning the configuration files.&lt;br /&gt;
* '''SAF Messaging''': IDE is having support to enable the SAF messaging. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform Run-Time Director===&lt;br /&gt;
&lt;br /&gt;
A new product, the SAFplus Platform Run-Time Director(ARD), provides cluster management of the SAFplus Platform via a web interface.  This new product is available separately, please contact OpenClovis for demonstration and evaluation.  The ARD has the following features:&lt;br /&gt;
&lt;br /&gt;
* Software Distribution:  Allows individual applications to be packaged in a &amp;quot;bundle&amp;quot; and be deployed to any set of nodes in the cluster.&lt;br /&gt;
* Inservice Software Upgrade: Supports application upgrade in a rolling (in-service) or single-step mode. &lt;br /&gt;
* WYSIWYG: Provides intuitive cluster management via an HTTP (web) interface.&lt;br /&gt;
* AJAX: Displays all SAF AMF entities and their current status -- uses asynchronous Javascript requests to dynamically update browser when changes occur.&lt;br /&gt;
* Dynamic AMF:  Allows modification of AMF entity state and supports creation/deletion of AMF entities.&lt;br /&gt;
* High Availability:  The ARD runs in unprotected or 2N redundancy mode.&lt;br /&gt;
* Python AMF API:  Provides an easy-to-use CLI/programmatic API for cluster management&lt;br /&gt;
* Easy installation:  The ARD can install itself into a running SAFplus Platform model, and therefore requires no changes to your existing model.&lt;br /&gt;
* Extensible: The ARD is built on top of TurboGears, a popular open source web mega-framework.  Thus it provides a basis and example for your custom SaaS or EMS project.&lt;br /&gt;
* Integration of Platform Support Package (PSP), provides chassis configuration through OpenHPI.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Documentation===&lt;br /&gt;
&lt;br /&gt;
* OpenClovis Documentation is provided in two formats now, PDF and HTML. They both contain the same information.&lt;br /&gt;
* A new ''OpenClovis SA Forum Compliance'' document has been added&lt;br /&gt;
* As a courtesy, all relevant SA Forum specifications are supplied as part of our OpenClovis documentation package (only in PDF format).&lt;br /&gt;
* A new ''OpenClovis Sample Application Tutorial'' has been added, replacing the former Modeling Tutorial. The new document provides explanation for the various steps involved in creating and running a new application.&lt;br /&gt;
* The ''OpenClovis SDK User Guide'' has been extended to cover many additional topics, including:&lt;br /&gt;
** Communication infrastructure&lt;br /&gt;
** Hardware platform support&lt;br /&gt;
** How to debug SAFplus Platform based applications&lt;br /&gt;
** Build and deployment&lt;br /&gt;
* The ''OpenClovis API Reference Guide'' has been significantly revised:&lt;br /&gt;
** Numerous coding examples&lt;br /&gt;
** New reference pages for API error codes for easy lookup&lt;br /&gt;
** HTML version of API Refernce Guide is heavily cross-referenced, allowing easy navigation between the various programming construcs&lt;br /&gt;
* New, complete ''OpenClovis SAFplus Platform Console Reference Guide'' as a separate document&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]From this release, the ''Debug CLI'' has been renamed to ''SAFplus Platform Console''.&lt;br /&gt;
&lt;br /&gt;
=='''Migration To Latest Version'''==&lt;br /&gt;
&lt;br /&gt;
Migration of a project or model from an earlier version of the OpenClovis IDE to the most recent version is performed automatically when the model it opened for the first time in the newer vesion. The IDE auto-detects the project's version and changes the internal files so that the information is in valid format and can be read by the current version. It also provides an option to create a backup of the project while performing the migration. For more information, refer to ''OpenClovis IDE User Guide'', Section ''Migrating Project''. IDE supports migration from R2.3 and above.&lt;br /&gt;
&lt;br /&gt;
Any issues regarding migration from a previous version of the IDE are documented below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Change in Log File Locations===&lt;br /&gt;
&lt;br /&gt;
As of release 3.0 all SAFplus Platform runtime log files are created in the &amp;lt;code&amp;gt;var/log&amp;lt;/code&amp;gt; subdirectory of the SAFplus Platform install directory. It is recommended that you update existing models to also use this directory. To update an existing model edit the clLog.xml file in the model's src/config directory. Change all references of '''.:log''' in the &amp;lt;code&amp;gt;&amp;lt;fileLocation&amp;gt;&amp;lt;/code&amp;gt; elements&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;fileLocation&amp;gt;.:log&amp;lt;/fileLocation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to '''.:var/log'''&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;fileLocation&amp;gt;.:var/log&amp;lt;/fileLocation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the model is rebuilt and deployed these new settings will take effect.&lt;br /&gt;
&lt;br /&gt;
===gmsConfig.xml file===&lt;br /&gt;
&lt;br /&gt;
Models of R2.3 may not contain the gmsConfig.xml file if GMS configuration is not done. If you migrate this project you will get error message saying that Migration was unable to create this file. But this is not going to affect further use of model. Model will be OK and user can make changes to it from IDE, generate source, build it, etc without any problem.&lt;br /&gt;
&lt;br /&gt;
Although this error is not going to affect the functionality of the model, there is a work around for this. Before migrating your model, just open up the model in your old IDE setup. Launch &amp;quot;SAFplus Platform Component Configuration&amp;quot; dialog from the Clovis menu. Press OK. Now just migrate the model with new IDE setup, you will not get this error. Bug has been raised for this and it will be fixed in next release.&lt;br /&gt;
&lt;br /&gt;
=='''Known Issues'''==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the known issues in the current release and provides the associated workarounds. These issues arise due to deviation from the normal functioning of the system or as a result of an unexpected behavior of a component or a service.&lt;br /&gt;
&lt;br /&gt;
===Known Issues of OpenClovis SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
Following are the known issues for OpenClovis SAFplus Platform:&lt;br /&gt;
&lt;br /&gt;
*'''Infrastructure and Communications'''&lt;br /&gt;
** '''TIPC address:''' TIPC with 1.5.12 versions was found to give problems (link unstable) when you have 2 different TIPC netids configured for the same TIPC address. This issue is not seen with the 1.7.x TIPC releases, but in general we recommend you to keep the TIPC addresses unique and not collide with the same addresses on nodes configured with different TIPC netids. One of the symptoms  of this is that the TIPC link between 2 machine starts going UP and DOWN continuously when there is another machine in the network, whose TIPC address is conflicting with address of one of those 2 machines. The behavior can be observed through continuous execution of command &amp;quot;tipc-config -l&amp;quot; or through &amp;quot;dmesg&amp;quot;.&lt;br /&gt;
** In general, TIPC 1.5.XX has been found to be unstable, especially under high multicast load, and should not be used in production environments.&lt;br /&gt;
&lt;br /&gt;
** '''Bug ID #7269'''  A cluster having a mixture of 32bit little endian, 32bit big endian and 64 bit little endian machines/nodes may find that the GMS service in inadvertently terminates.&lt;br /&gt;
*** '''Workaround''' - None&lt;br /&gt;
** '''aspinfo known issues:''' (1) On some systems, especially systems with Python version 2.3, aspinfo can be slow to respond. (2) Some corner cases may not be properly handled and aspinfo may prematurely exit, dumping its Python stack.&lt;br /&gt;
&lt;br /&gt;
* '''System Management'''&lt;br /&gt;
** '''Bug ID #7313''' If an Alarm Server is restarted after it published an alarm, it won't allow to clear/publish that alarm again.&lt;br /&gt;
*** '''Workaround''' - Currently there is no workaround.&lt;br /&gt;
&lt;br /&gt;
* '''SAF Compliance'''&lt;br /&gt;
** '''Deviation from SAF in Event Service:''' Event Service does not yet support Event Retention as specified in SAF specification. The retention time specified in the clEventPublish() API would have no effect.&lt;br /&gt;
** '''Bug in SAF specificaion B11:''' The clEventDataGet() API of Event Service is in compliance with the SAF specification B11. This allows the user to either allocate memory for the event payload or obtain it from the API by passing a pointer. The latter is not possible with this API as the argument needs to be a pointer to a pointer which is not the case. As per the new specification and the recommended way the user is always required to allocate and free the memory.&lt;br /&gt;
&lt;br /&gt;
===Known Issues of OpenClovis IDE===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Bug ID # 6543: X Error in Ubuntu Installation.''' Starting the IDE in '''Ubuntu''' installation may result some X errors in the console. This is not an IDE issue, this will not affect any of the IDE functionalities.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Workaround''' - See the ''Limitations'' section of the ''OpenClovis IDE User Guide''.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''SNMP MIB Enumerated Integer Construct Limitations''': During SNMP code generation all enumerated integer labels are converted to &amp;lt;code&amp;gt;#define&amp;lt;/code&amp;gt; statements. The constant names used in these statements are the enumerated integer labels converted to upper case. Because of this the all labels used within an enumerated integer construct must be unique regardless of case.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;'''SNMP MIB V1 TRAP-TYPE Construct Not Supported''': Due to an issue in the Net-SNMP mib2c compiler code generation for MIBs using the V1 TRAP-TYPE construct does not work properly.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Workaround''' - To generate trap code from an SNMP MIB use the SNMP V2 NOTIFICATION-TYPE construct.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Known Issues of Install Package===&lt;br /&gt;
&lt;br /&gt;
* '''Bug ID # 6749: Potential conflict with net-snmp package on local system''': In certain rare instances, building OpenHPI from the included third-party packages during SDK installation fails owing to a conflict with an already-installed version of NetSNMP on the system.  In these instances, it is recommended that NetSNMP be removed from the local system before installing OpenClovis SDK, and that it be reinstalled after completing the SDK installation.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Red Hat Enterprise 4''': On a Red Hat Enterprise Linux 4 system, the 'Development Tools' subset of packages must be installed to cover the requirements for installing OpenClovis SDK.  In general, an installation with the default package set contains all requirements for installation.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Fedora Core 6''': On a Fedora Core 6 system, installation of OpenClovis SAFplus Platform automatically builds and installs the TIPC opensource package.  To build TIPC, the kernel headers must be present and so these are automatically installed (by our ./preinstall-fedora-core.sh script) using the &amp;quot;yum install kernel-devel&amp;quot; command.  On rare configurations, this command does not work correctly.  It is supposed to install headers so that the symbolic link located at &amp;quot;/lib/modules/`uname -r`/build&amp;quot; points to a valid directory of Linux header files.  However, on some systems this symbolic link points to &amp;quot;/usr/src/kernels/2.6.22.14-72.fc6-i586&amp;quot; but the headers are actually installed in &amp;quot;/usr/src/kernels/2.6.22.14-72.fc6-i686&amp;quot;  (note 'i586' vs 'i686').  To resolve this problem, change the symbolic link to point to the correct directory name, and then restart the OpenClovis SAFplus Platform installation.&lt;br /&gt;
&lt;br /&gt;
* '''Configuring TIPC and assigning the SAFplus Platform node address''' to an OpenClovis SAFplus Platform is done by SAFplus Platform start up script. But if manual configuration of TIPC is allowed.  Misconfiguration (such as assigning 2 nodes the same TIPC address) will result in an unstable system. When this happens the whole system (all the SAFplus Platform nodes including the ones which are already up and running properly) have to be brought down, the TIPC kernel driver unloaded (to remove its configuration) and the system restarted.&lt;br /&gt;
&lt;br /&gt;
* '''Installation of SQLite using Preinstall script''': The Preinstall script installs SQLite by default as database engine. It locates SQLite - if it is already installed - without verifying version number. If its version is older than 3.3.13, then SAFplus Platform will fail to start.&lt;br /&gt;
** '''Workaround''' - Use SQLite 3.3.13 or newer. The source code can be downloaded from http://www.sqlite.org/download.html. The user can install the latest version of SQLite if its not present in the repository.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Solaris 10/SPARC (beta)''': Installation of OpenClovis SAFplus Platform requires the following third party packages installed via either installation media or using pkgadd with packages obtained from http://www.sunfreeware.com/.  Missing third-party packages may cause unpredictable behavior during installation and SDK use.&lt;br /&gt;
** db-4.2.52&lt;br /&gt;
** fileutils&lt;br /&gt;
** flex&lt;br /&gt;
** gcc-3.4.2&lt;br /&gt;
** gdbm-1.8.3&lt;br /&gt;
** glib-2.14.1&lt;br /&gt;
** gmake&lt;br /&gt;
** gtar&lt;br /&gt;
** libintl&lt;br /&gt;
** libiconv&lt;br /&gt;
** ncurses&lt;br /&gt;
** openssl&lt;br /&gt;
** pkgconfig&lt;br /&gt;
** python-2.5.1&lt;br /&gt;
** readline&lt;br /&gt;
** snprintf&lt;br /&gt;
** tipc-solaris-1.7.5 or SUNWtipc&lt;br /&gt;
** SUNWbtool&lt;br /&gt;
** SUNWsprot&lt;br /&gt;
** SUNWhea&lt;br /&gt;
** wget&lt;br /&gt;
&lt;br /&gt;
=='''Environment Related Observation'''==&lt;br /&gt;
&lt;br /&gt;
* '''Bug ID #7549''' When SAFplus Platform is running in non simulation mode, if SAFplus Platform is started from one sandbox, then it can be stopped/zapped from another sandbox.&lt;br /&gt;
&lt;br /&gt;
===Enabled Firewall Can Cause SAFplus Platform to Shutdown===&lt;br /&gt;
The enablement of a firewall on a system running a deployed SAFplus Platform image can cause the software to shutdown. An indication that you may be running into this problem is if you see an entry similar to the following in your log file (in the log file it is one line):&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Wed Sep 26 15:06:54 2007   (SCNodeI0.10499 : GMS.---.---.00036 :  ERROR)&lt;br /&gt;
   [clGmsEngine.c:448] No nodes in the cluster view to run leader &lt;br /&gt;
   electionLeader Election Aborted&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
To resolve this problem disable all filtering in the Netfilter framework by issuing the following command.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -F&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reusing A Project Area With New Version of OpenClovis SDK===&lt;br /&gt;
Every Project Area is associated with an installation of OpenClovis SDK at a given location.  If one elects to reinstall the SDK at a different location or install a newer version at a different location, the project area will stay associated with the original SDK location.  This allows one to work with multiple versions of the SDK simultaneously.&lt;br /&gt;
In order to use an existing project area with a different or moved installation of OpenClovis SDK, remove the &amp;lt;code&amp;gt;.config&amp;lt;/code&amp;gt; file from your project area directory and re-run &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt; as you normally would to work with a model.&lt;br /&gt;
&lt;br /&gt;
===Running Multiple SAFplus Platform Clusters in the same Subnet===&lt;br /&gt;
If you are running multiple SAFplus Platform clusters within the same subnet, please ensure that the &amp;lt;code&amp;gt;TIPC network ID&amp;lt;/code&amp;gt; selected for each cluster is unique.&lt;br /&gt;
&lt;br /&gt;
=='''Documentation Issues'''==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the known issues with the OpenClovis Documentation shipped along with the product.&lt;br /&gt;
&lt;br /&gt;
* Formatting issues&lt;br /&gt;
** Following cross-references pointing to a heading, the PDF viewer will jump to the end of the previous page if the heading is on the top of a page.&lt;br /&gt;
** Firefox web browsers sometimes do not correctly jump to intra-page anchors when the user clicks on a reference. This is a known issue with Firefox. The workaround is to click on Back button and then on the reference again. The browser jumps to the correct position for the 2nd time.&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/relnotes</id>
		<title>Doc:latest/relnotes</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/relnotes"/>
				<updated>2011-10-24T19:32:51Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* Known Issues of OpenClovis SAFplus Platform */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Preface'''==&lt;br /&gt;
&lt;br /&gt;
Welcome to ''OpenClovis Release Notes''. This document provides information about the details of the platforms on which OpenClovis SAFplus Availability/Scalability Platform (the SAFplus Platform for short) and Integrated Development Environment (IDE) have been tested and validated for SDK Release 6.0. It contains the additional features and enhancements of the product since the previous release. It also summarizes the known issues and limitations of the product and provides workaround wherever applicable.&lt;br /&gt;
&lt;br /&gt;
===Key Topics===&lt;br /&gt;
&lt;br /&gt;
''OpenClovis Release Notes'' covers the following topics in details:&lt;br /&gt;
*Tested Platforms&lt;br /&gt;
*What Is New&lt;br /&gt;
*Migration To Latest Version&lt;br /&gt;
*Known Issues&lt;br /&gt;
*Environment Related Observation&lt;br /&gt;
*Documentation Issues&lt;br /&gt;
&lt;br /&gt;
===Audience===&lt;br /&gt;
&lt;br /&gt;
''OpenClovis Release Notes'' addresses system integrators, designers, and system architects. To use SAFplus Platform, you must be aware of the fundamentals of operation, management, and configuration of telecom and networking domains. You must also be familiar with C programming, UML notations, and have basic knowledge of Linux.&lt;br /&gt;
&lt;br /&gt;
===Documentation Conventions===&lt;br /&gt;
&lt;br /&gt;
This guide uses different fonts and symbols to differentiate between document elements and types of information. These conventions are summarized in the following table.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;  width=&amp;quot;680&amp;quot;&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Notation &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Description&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|style=&amp;quot;color:black&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;Code&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
This font denotes the C code provided in various examples.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|Cross reference&lt;br /&gt;
|&lt;br /&gt;
This font denotes a hyperlink. You can click on the hyperlink text to access the reference location, which can be either a section within the User Guide or a URL link. A cross reference refers to a section name and accesses the first page of that section.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''Bold Text''' &lt;br /&gt;
|&lt;br /&gt;
Menu items and button names.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''''Italic Text''''' &lt;br /&gt;
|&lt;br /&gt;
Variables for which you enter values.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]This indicates the presence of notes or annotations, related to the context of the document.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Caution.png]]This indicates that certain precautionary measures must be taken before performing a particular task.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Info.png]]This indicates that additional information is provided to you.&lt;br /&gt;
&lt;br /&gt;
===Related Documents===&lt;br /&gt;
&lt;br /&gt;
For additional information about OpenClovis products, refer to the following guides:&lt;br /&gt;
* '''SAFplus Platform SA Forum Compliance''' describes the level of compliance of OpenClovis SAFplus Platform and its Application Programming Interface (API) with the relevant Service Availability Forum Specifications.&lt;br /&gt;
* '''SAFplus Platform Installation Guide''' provides the system requirements, installation procedure for OpenClovis SAFplus Platform, IDE, and the Evaluation System.&lt;br /&gt;
* '''SAFplus Platform Sample Application Tutorial''' explains the steps to create and build a sample model using OpenClovis IDE and OpenClovis SAFplus Platform. It also provides troubleshooting information for this process. This provides the logical first step in understanding the SAFplus Platform offering.&lt;br /&gt;
* '''SAFplus Platform Evaluation System User Guide''' provides all the required information to configure and run the sample models packaged within the Evaluation System. This document also provides good understanding of OpenClovis SAFplus Platform's functionality. This is the natural follow on to the ''OpenClovis Sample Application Tutorial'' as it builds on the example created in that document. &lt;br /&gt;
* '''SAFplus Platform SDK User Guide''' provides information about SAFplus Availability/Scalability Platform architecture, various SAFplus Platform components, and their interactions. This guide helps you to configure the OpenClovis SAFplus Platform components, compile, and execute the SAFplus Platform code to build your custom application.&lt;br /&gt;
* '''SAFplus Platform IDE User Guide''' describes the usage of Integrated Development Environment (IDE), a graphical development environment that complements the SAFplus Platform. This guide helps you to understand how to use the various features of the IDE to build the application.&lt;br /&gt;
* '''SAFplus Platform Log Tool User Guide''' provides information about the usage of OpenClovis Log Tool. OpenClovis Log Tool is an interactive utility that allows you to view binary log files in a readable format and hence monitor system errors, warnings, and other log information. Log Tool allows you to format the &amp;lt;code&amp;gt;.log&amp;lt;/code&amp;gt; files and filter them to view the required entries.&lt;br /&gt;
* '''SAFplus Platform API Reference Guide''' is provided for each component. It describes the Application Programming Interface (API), Service Model, and Management Information Model of the various OpenClovis Application Service Platform (SAFplus Platform) services. It helps the developer to understand the capabilities of the SAFplus Platform services and the APIs provided by these services.&lt;br /&gt;
* '''SAFplus Platform Console Reference Guide''' provides details about managing applications built on SAFplus Platform using the SAFplus Platform runtime debug console commands. SAFplus Platform Console commands can be used to manage, monitor, and test your application.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Online Technical Support===&lt;br /&gt;
&lt;br /&gt;
OpenClovis customers and partners can register on our Web site and receive personalized services and information. If you need any support or assistance while working on OpenClovis products, you can access the following: URL: http://www.openclovis.com. Send your queries to: support@openclovis.com. Open source community support is available at: http://www.openclovis.org/forum.&lt;br /&gt;
&lt;br /&gt;
===Documentation Feedback===&lt;br /&gt;
&lt;br /&gt;
We are interested in hearing from our customers on the documentation provided with the product. Let us know your comments and suggestions on improving the documentation at OpenClovis Inc. Send your comments to: support@openclovis.com. Post your feedback on documentation in the page on our documentation wiki located at [http://help.openclovis.com http://help.openclovis.com].&lt;br /&gt;
&lt;br /&gt;
=='''Tested Platforms'''==&lt;br /&gt;
&lt;br /&gt;
This chapter provides the details of the platforms on which OpenClovis SAFplus Platform have been tested and validated.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Tested Platform Configurations''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;150&amp;quot;| Platform&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Configuration&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Hardware&lt;br /&gt;
|&lt;br /&gt;
* ATCA 5U Chassis - Schroff, ASIS&lt;br /&gt;
* ATCA 12U Chassis - Schroff, Sanmina, HP, Sun Netra, Radisys, Huawei Tecal Server&lt;br /&gt;
* Pigeon Point Systems ShMM300 and ShMM500 based Shelf Controllers&lt;br /&gt;
* Radisys Promentum 60x0 and its 2100 Switch/Shelf Controller blades&lt;br /&gt;
* CPU Blades:&lt;br /&gt;
** Intel Xeon based server cards&lt;br /&gt;
** Intel Pentium and Xeon based desktops and rack mount servers (RMS)&lt;br /&gt;
** Intel Itanium based RMS&lt;br /&gt;
** AMD Opteron based ATCA cards&lt;br /&gt;
** AMD Opteron and Athlon based desktops&lt;br /&gt;
** PowerPC based AMCs&lt;br /&gt;
** PowerPC based desktops&lt;br /&gt;
** Huawei Tecal BH23&lt;br /&gt;
** Sun 3020 and 3090&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Software&lt;br /&gt;
|&lt;br /&gt;
* Wind River PNE-LE 1.2 (2.6.10 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 1.3 (2.6.14 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 1.4 (2.6.14 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 2.0 (2.6.21 kernel) on CPU blades&lt;br /&gt;
* MontaVista Linux Carrier Grade Edition 5.0 (2.6.21 kernel)on CPU Blades&lt;br /&gt;
* QNX Neutrino RTOS 6.3.2&lt;br /&gt;
* Pigeon Point Systems Shelf Manager version 2.2.1 on ShMM300, ShMM500&lt;br /&gt;
* SCM software version 1.7 on ATCA 2100 Shelf Manager&lt;br /&gt;
* OpenHPI 2.8.1 and 2.10.2&lt;br /&gt;
* Radisys HPI Client Library (HCL) version 1.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For more details on the hardware and software requirements and the steps to install OpenClovis SAFplus Platform and IDE, refer to ''OpenClovis Installation Guide''.&lt;br /&gt;
&lt;br /&gt;
=='''What Is New'''==&lt;br /&gt;
&lt;br /&gt;
This chapter outlines the new features and enhancements provided by OpenClovis SAFplus Platform and IDE for Release 5.0.&lt;br /&gt;
&lt;br /&gt;
===Features of OpenClovis SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
====General Features====&lt;br /&gt;
&lt;br /&gt;
* '''Support for Wind River PNELE 2.0''': OpenClovis SDK can seamlessly build SAFplus Platform and binaries for Wind River Platform for Network Equipment Linux Edition 2.0 on all supported SDK platforms, either using the build tool-chain of OpenClovis or of the development environment of Wind River.&lt;br /&gt;
&lt;br /&gt;
====High Availability (HA)====&lt;br /&gt;
&lt;br /&gt;
*'''ISSU - In Service Software Upgrade'''&lt;br /&gt;
Supports middleware upgrade in a rolling (in-service) or single-step mode.&lt;br /&gt;
&lt;br /&gt;
'''Single-Step'''&lt;br /&gt;
For deployment of non-backwards compatible software, or rapid deployment of software.  This method stops the relevant services on all nodes (causing an outage) and then upgrades that software and restarts.  Note that services are stopped at various granularity levels depending on what is being upgraded.  In other words, application A can be taken out-of-service and upgraded across the cluster without affecting application B running on the same nodes.&lt;br /&gt;
&lt;br /&gt;
'''Inservice Rolling'''&lt;br /&gt;
This is the most commonly known telecom quality upgrade method.  For deployment of backwards-compatible software across the cluster, this method stops service in one &amp;quot;upgrade unit&amp;quot; at a time, upgrades the software and restarts before stopping the next &amp;quot;upgrade unit&amp;quot;.  This process continues iteratively until the entire cluster is upgraded.  Since the available redundant capacity takes over for the unit being upgraded service will be unaffected.&lt;br /&gt;
&lt;br /&gt;
====Infrastructure and Communications====&lt;br /&gt;
&lt;br /&gt;
====Group Membership Service (GMS) over TIPC====&lt;br /&gt;
&lt;br /&gt;
By default GMS/openais is now compiled to run over TIPC.&lt;br /&gt;
&lt;br /&gt;
====SAF Message Service====&lt;br /&gt;
&lt;br /&gt;
SAF messaging data types and APIs supported by OpenClovis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''classes/types:'''&lt;br /&gt;
&lt;br /&gt;
*SaMsgMessageT&lt;br /&gt;
*SaMsgHandleT&lt;br /&gt;
*SaMsgQueueStatusT&lt;br /&gt;
*SaMsgQueueHandleT&lt;br /&gt;
*SaMsgSenderIdT&lt;br /&gt;
*SaMsgQueueCreationAttributesT&lt;br /&gt;
*SaMsgQueueOpenFlagsT&lt;br /&gt;
*SaMsgQueueGroupPolicyT&lt;br /&gt;
*SaMsgQueueGroupNotificationBufferT&lt;br /&gt;
*SaMsgQueueGroupNotificationT&lt;br /&gt;
*SaMsgQueueUsageT&lt;br /&gt;
*SaMsgCallbacksT&lt;br /&gt;
*SaMsgMessageReceivedCallbackT&lt;br /&gt;
&lt;br /&gt;
*'''APIs:'''&lt;br /&gt;
&lt;br /&gt;
*saMsgMessageSend&lt;br /&gt;
*saMsgMessageSendAsync&lt;br /&gt;
*saMsgQueueOpen&lt;br /&gt;
*saMsgQueueClose&lt;br /&gt;
*saMsgQueueStatusGet&lt;br /&gt;
*saMsgMessageGet&lt;br /&gt;
*saMsgMessageDataFree&lt;br /&gt;
*saMsgQueueGroupCreate&lt;br /&gt;
*saMsgQueueGroupInsert&lt;br /&gt;
*saMsgQueueGroupTrack&lt;br /&gt;
*saMsgQueueGroupNotificationFree&lt;br /&gt;
*saMsgInitialize&lt;br /&gt;
*saMsgFinalize&lt;br /&gt;
*saMsgDispatch&lt;br /&gt;
&lt;br /&gt;
====SAF Component cleanup script support====&lt;br /&gt;
&lt;br /&gt;
5.0 introduces support to configure cleanup commands for SA-AWARE components using the Openclovis IDE. The cleanup command is invoked by AMF on component cleanup or abrupt terminations.&lt;br /&gt;
&lt;br /&gt;
===System Management===&lt;br /&gt;
&lt;br /&gt;
*Support of net-snmp 5.4.2.&lt;br /&gt;
*SNMP Traps in 64 Bit architectures.&lt;br /&gt;
&lt;br /&gt;
===Platform Management===&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform provides pre-integrated support for commonly used ATCA platforms. All service affecting events reported by the shelf manager via HPI are intercepted and service on affected hardware is migrated to standby equipment, ensuring continuity of service. &lt;br /&gt;
&lt;br /&gt;
This support is provided with the '''Platform Support Package (PSP)''' for Piegon Point Shelf manager 500ShMM via openHPI. &lt;br /&gt;
&lt;br /&gt;
PSP is available as a separate product, please contact OpenClovis Sales for further information.&lt;br /&gt;
&lt;br /&gt;
===Features of OpenClovis IDE===&lt;br /&gt;
&lt;br /&gt;
* '''Running SAFplus Platform without manageability components''': IDE is having the support for enable/disable SAFplus Platform components. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
* '''AMF Clean-up script''': IDE is having support to specify the cleanup command in SAF Component. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
* '''Versioning the Configuration Files''': IDE is having support for versioning the configuration files.&lt;br /&gt;
* '''SAF Messaging''': IDE is having support to enable the SAF messaging. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform Run-Time Director===&lt;br /&gt;
&lt;br /&gt;
A new product, the SAFplus Platform Run-Time Director(ARD), provides cluster management of the SAFplus Platform via a web interface.  This new product is available separately, please contact OpenClovis for demonstration and evaluation.  The ARD has the following features:&lt;br /&gt;
&lt;br /&gt;
* Software Distribution:  Allows individual applications to be packaged in a &amp;quot;bundle&amp;quot; and be deployed to any set of nodes in the cluster.&lt;br /&gt;
* Inservice Software Upgrade: Supports application upgrade in a rolling (in-service) or single-step mode. &lt;br /&gt;
* WYSIWYG: Provides intuitive cluster management via an HTTP (web) interface.&lt;br /&gt;
* AJAX: Displays all SAF AMF entities and their current status -- uses asynchronous Javascript requests to dynamically update browser when changes occur.&lt;br /&gt;
* Dynamic AMF:  Allows modification of AMF entity state and supports creation/deletion of AMF entities.&lt;br /&gt;
* High Availability:  The ARD runs in unprotected or 2N redundancy mode.&lt;br /&gt;
* Python AMF API:  Provides an easy-to-use CLI/programmatic API for cluster management&lt;br /&gt;
* Easy installation:  The ARD can install itself into a running SAFplus Platform model, and therefore requires no changes to your existing model.&lt;br /&gt;
* Extensible: The ARD is built on top of TurboGears, a popular open source web mega-framework.  Thus it provides a basis and example for your custom SaaS or EMS project.&lt;br /&gt;
* Integration of Platform Support Package (PSP), provides chassis configuration through OpenHPI.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Documentation===&lt;br /&gt;
&lt;br /&gt;
* OpenClovis Documentation is provided in two formats now, PDF and HTML. They both contain the same information.&lt;br /&gt;
* A new ''OpenClovis SA Forum Compliance'' document has been added&lt;br /&gt;
* As a courtesy, all relevant SA Forum specifications are supplied as part of our OpenClovis documentation package (only in PDF format).&lt;br /&gt;
* A new ''OpenClovis Sample Application Tutorial'' has been added, replacing the former Modeling Tutorial. The new document provides explanation for the various steps involved in creating and running a new application.&lt;br /&gt;
* The ''OpenClovis SDK User Guide'' has been extended to cover many additional topics, including:&lt;br /&gt;
** Communication infrastructure&lt;br /&gt;
** Hardware platform support&lt;br /&gt;
** How to debug SAFplus Platform based applications&lt;br /&gt;
** Build and deployment&lt;br /&gt;
* The ''OpenClovis API Reference Guide'' has been significantly revised:&lt;br /&gt;
** Numerous coding examples&lt;br /&gt;
** New reference pages for API error codes for easy lookup&lt;br /&gt;
** HTML version of API Refernce Guide is heavily cross-referenced, allowing easy navigation between the various programming construcs&lt;br /&gt;
* New, complete ''OpenClovis SAFplus Platform Console Reference Guide'' as a separate document&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]From this release, the ''Debug CLI'' has been renamed to ''SAFplus Platform Console''.&lt;br /&gt;
&lt;br /&gt;
=='''Migration To Latest Version'''==&lt;br /&gt;
&lt;br /&gt;
Migration of a project or model from an earlier version of the OpenClovis IDE to the most recent version is performed automatically when the model it opened for the first time in the newer vesion. The IDE auto-detects the project's version and changes the internal files so that the information is in valid format and can be read by the current version. It also provides an option to create a backup of the project while performing the migration. For more information, refer to ''OpenClovis IDE User Guide'', Section ''Migrating Project''. IDE supports migration from R2.3 and above.&lt;br /&gt;
&lt;br /&gt;
Any issues regarding migration from a previous version of the IDE are documented below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Change in Log File Locations===&lt;br /&gt;
&lt;br /&gt;
As of release 3.0 all SAFplus Platform runtime log files are created in the &amp;lt;code&amp;gt;var/log&amp;lt;/code&amp;gt; subdirectory of the SAFplus Platform install directory. It is recommended that you update existing models to also use this directory. To update an existing model edit the clLog.xml file in the model's src/config directory. Change all references of '''.:log''' in the &amp;lt;code&amp;gt;&amp;lt;fileLocation&amp;gt;&amp;lt;/code&amp;gt; elements&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;fileLocation&amp;gt;.:log&amp;lt;/fileLocation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to '''.:var/log'''&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;fileLocation&amp;gt;.:var/log&amp;lt;/fileLocation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the model is rebuilt and deployed these new settings will take effect.&lt;br /&gt;
&lt;br /&gt;
===gmsConfig.xml file===&lt;br /&gt;
&lt;br /&gt;
Models of R2.3 may not contain the gmsConfig.xml file if GMS configuration is not done. If you migrate this project you will get error message saying that Migration was unable to create this file. But this is not going to affect further use of model. Model will be OK and user can make changes to it from IDE, generate source, build it, etc without any problem.&lt;br /&gt;
&lt;br /&gt;
Although this error is not going to affect the functionality of the model, there is a work around for this. Before migrating your model, just open up the model in your old IDE setup. Launch &amp;quot;SAFplus Platform Component Configuration&amp;quot; dialog from the Clovis menu. Press OK. Now just migrate the model with new IDE setup, you will not get this error. Bug has been raised for this and it will be fixed in next release.&lt;br /&gt;
&lt;br /&gt;
=='''Known Issues'''==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the known issues in the current release and provides the associated workarounds. These issues arise due to deviation from the normal functioning of the system or as a result of an unexpected behavior of a component or a service.&lt;br /&gt;
&lt;br /&gt;
===Known Issues of OpenClovis SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
Following are the known issues for OpenClovis SAFplus Platform:&lt;br /&gt;
&lt;br /&gt;
*'''Infrastructure and Communications'''&lt;br /&gt;
** '''TIPC address:''' TIPC with 1.5.12 versions was found to give problems (link unstable) when you have 2 different TIPC netids configured for the same TIPC address. This issue is not seen with the 1.7.x TIPC releases, but in general we recommend you to keep the TIPC addresses unique and not collide with the same addresses on nodes configured with different TIPC netids. One of the symptoms  of this is that the TIPC link between 2 machine starts going UP and DOWN continuously when there is another machine in the network, whose TIPC address is conflicting with address of one of those 2 machines. The behavior can be observed through continuous execution of command &amp;quot;tipc-config -l&amp;quot; or through &amp;quot;dmesg&amp;quot;.&lt;br /&gt;
** In general, TIPC 1.5.XX has been found to be unstable, especially under high multicast load, and should not be used in production environments.&lt;br /&gt;
&lt;br /&gt;
** '''Bug ID #7269'''  A cluster having a mixture of 32bit little endian, 32bit big endian and 64 bit little endian machines/nodes may find that the GMS service in inadvertently terminates.&lt;br /&gt;
*** '''Workaround''' - None&lt;br /&gt;
** '''aspinfo known issues:''' (1) On some systems, especially systems with Python version 2.3, aspinfo can be slow to respond. (2) Some corner cases may not be properly handled and aspinfo may prematurely exit, dumping its Python stack.&lt;br /&gt;
&lt;br /&gt;
 '''System Management'''&lt;br /&gt;
** '''Bug ID #7313''' If an Alarm Server is restarted after it published an alarm, it won't allow to clear/publish that alarm again.&lt;br /&gt;
*** '''Workaround''' - Currently there is no workaround.&lt;br /&gt;
&lt;br /&gt;
* '''SAF Compliance'''&lt;br /&gt;
** '''Deviation from SAF in Event Service:''' Event Service does not yet support Event Retention as specified in SAF specification. The retention time specified in the clEventPublish() API would have no effect.&lt;br /&gt;
** '''Bug in SAF specificaion B11:''' The clEventDataGet() API of Event Service is in compliance with the SAF specification B11. This allows the user to either allocate memory for the event payload or obtain it from the API by passing a pointer. The latter is not possible with this API as the argument needs to be a pointer to a pointer which is not the case. As per the new specification and the recommended way the user is always required to allocate and free the memory.&lt;br /&gt;
&lt;br /&gt;
===Known Issues of OpenClovis IDE===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Bug ID # 6543: X Error in Ubuntu Installation.''' Starting the IDE in '''Ubuntu''' installation may result some X errors in the console. This is not an IDE issue, this will not affect any of the IDE functionalities.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Workaround''' - See the ''Limitations'' section of the ''OpenClovis IDE User Guide''.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''SNMP MIB Enumerated Integer Construct Limitations''': During SNMP code generation all enumerated integer labels are converted to &amp;lt;code&amp;gt;#define&amp;lt;/code&amp;gt; statements. The constant names used in these statements are the enumerated integer labels converted to upper case. Because of this the all labels used within an enumerated integer construct must be unique regardless of case.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;'''SNMP MIB V1 TRAP-TYPE Construct Not Supported''': Due to an issue in the Net-SNMP mib2c compiler code generation for MIBs using the V1 TRAP-TYPE construct does not work properly.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Workaround''' - To generate trap code from an SNMP MIB use the SNMP V2 NOTIFICATION-TYPE construct.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Known Issues of Install Package===&lt;br /&gt;
&lt;br /&gt;
* '''Bug ID # 6749: Potential conflict with net-snmp package on local system''': In certain rare instances, building OpenHPI from the included third-party packages during SDK installation fails owing to a conflict with an already-installed version of NetSNMP on the system.  In these instances, it is recommended that NetSNMP be removed from the local system before installing OpenClovis SDK, and that it be reinstalled after completing the SDK installation.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Red Hat Enterprise 4''': On a Red Hat Enterprise Linux 4 system, the 'Development Tools' subset of packages must be installed to cover the requirements for installing OpenClovis SDK.  In general, an installation with the default package set contains all requirements for installation.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Fedora Core 6''': On a Fedora Core 6 system, installation of OpenClovis SAFplus Platform automatically builds and installs the TIPC opensource package.  To build TIPC, the kernel headers must be present and so these are automatically installed (by our ./preinstall-fedora-core.sh script) using the &amp;quot;yum install kernel-devel&amp;quot; command.  On rare configurations, this command does not work correctly.  It is supposed to install headers so that the symbolic link located at &amp;quot;/lib/modules/`uname -r`/build&amp;quot; points to a valid directory of Linux header files.  However, on some systems this symbolic link points to &amp;quot;/usr/src/kernels/2.6.22.14-72.fc6-i586&amp;quot; but the headers are actually installed in &amp;quot;/usr/src/kernels/2.6.22.14-72.fc6-i686&amp;quot;  (note 'i586' vs 'i686').  To resolve this problem, change the symbolic link to point to the correct directory name, and then restart the OpenClovis SAFplus Platform installation.&lt;br /&gt;
&lt;br /&gt;
* '''Configuring TIPC and assigning the SAFplus Platform node address''' to an OpenClovis SAFplus Platform is done by SAFplus Platform start up script. But if manual configuration of TIPC is allowed.  Misconfiguration (such as assigning 2 nodes the same TIPC address) will result in an unstable system. When this happens the whole system (all the SAFplus Platform nodes including the ones which are already up and running properly) have to be brought down, the TIPC kernel driver unloaded (to remove its configuration) and the system restarted.&lt;br /&gt;
&lt;br /&gt;
* '''Installation of SQLite using Preinstall script''': The Preinstall script installs SQLite by default as database engine. It locates SQLite - if it is already installed - without verifying version number. If its version is older than 3.3.13, then SAFplus Platform will fail to start.&lt;br /&gt;
** '''Workaround''' - Use SQLite 3.3.13 or newer. The source code can be downloaded from http://www.sqlite.org/download.html. The user can install the latest version of SQLite if its not present in the repository.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Solaris 10/SPARC (beta)''': Installation of OpenClovis SAFplus Platform requires the following third party packages installed via either installation media or using pkgadd with packages obtained from http://www.sunfreeware.com/.  Missing third-party packages may cause unpredictable behavior during installation and SDK use.&lt;br /&gt;
** db-4.2.52&lt;br /&gt;
** fileutils&lt;br /&gt;
** flex&lt;br /&gt;
** gcc-3.4.2&lt;br /&gt;
** gdbm-1.8.3&lt;br /&gt;
** glib-2.14.1&lt;br /&gt;
** gmake&lt;br /&gt;
** gtar&lt;br /&gt;
** libintl&lt;br /&gt;
** libiconv&lt;br /&gt;
** ncurses&lt;br /&gt;
** openssl&lt;br /&gt;
** pkgconfig&lt;br /&gt;
** python-2.5.1&lt;br /&gt;
** readline&lt;br /&gt;
** snprintf&lt;br /&gt;
** tipc-solaris-1.7.5 or SUNWtipc&lt;br /&gt;
** SUNWbtool&lt;br /&gt;
** SUNWsprot&lt;br /&gt;
** SUNWhea&lt;br /&gt;
** wget&lt;br /&gt;
&lt;br /&gt;
=='''Environment Related Observation'''==&lt;br /&gt;
&lt;br /&gt;
* '''Bug ID #7549''' When SAFplus Platform is running in non simulation mode, if SAFplus Platform is started from one sandbox, then it can be stopped/zapped from another sandbox.&lt;br /&gt;
&lt;br /&gt;
===Enabled Firewall Can Cause SAFplus Platform to Shutdown===&lt;br /&gt;
The enablement of a firewall on a system running a deployed SAFplus Platform image can cause the software to shutdown. An indication that you may be running into this problem is if you see an entry similar to the following in your log file (in the log file it is one line):&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Wed Sep 26 15:06:54 2007   (SCNodeI0.10499 : GMS.---.---.00036 :  ERROR)&lt;br /&gt;
   [clGmsEngine.c:448] No nodes in the cluster view to run leader &lt;br /&gt;
   electionLeader Election Aborted&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
To resolve this problem disable all filtering in the Netfilter framework by issuing the following command.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -F&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reusing A Project Area With New Version of OpenClovis SDK===&lt;br /&gt;
Every Project Area is associated with an installation of OpenClovis SDK at a given location.  If one elects to reinstall the SDK at a different location or install a newer version at a different location, the project area will stay associated with the original SDK location.  This allows one to work with multiple versions of the SDK simultaneously.&lt;br /&gt;
In order to use an existing project area with a different or moved installation of OpenClovis SDK, remove the &amp;lt;code&amp;gt;.config&amp;lt;/code&amp;gt; file from your project area directory and re-run &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt; as you normally would to work with a model.&lt;br /&gt;
&lt;br /&gt;
===Running Multiple SAFplus Platform Clusters in the same Subnet===&lt;br /&gt;
If you are running multiple SAFplus Platform clusters within the same subnet, please ensure that the &amp;lt;code&amp;gt;TIPC network ID&amp;lt;/code&amp;gt; selected for each cluster is unique.&lt;br /&gt;
&lt;br /&gt;
=='''Documentation Issues'''==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the known issues with the OpenClovis Documentation shipped along with the product.&lt;br /&gt;
&lt;br /&gt;
* Formatting issues&lt;br /&gt;
** Following cross-references pointing to a heading, the PDF viewer will jump to the end of the previous page if the heading is on the top of a page.&lt;br /&gt;
** Firefox web browsers sometimes do not correctly jump to intra-page anchors when the user clicks on a reference. This is a known issue with Firefox. The workaround is to click on Back button and then on the reference again. The browser jumps to the correct position for the 2nd time.&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/relnotes</id>
		<title>Doc:latest/relnotes</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/relnotes"/>
				<updated>2011-10-24T19:32:38Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* Known Issues of OpenClovis SAFplus Platform */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Preface'''==&lt;br /&gt;
&lt;br /&gt;
Welcome to ''OpenClovis Release Notes''. This document provides information about the details of the platforms on which OpenClovis SAFplus Availability/Scalability Platform (the SAFplus Platform for short) and Integrated Development Environment (IDE) have been tested and validated for SDK Release 6.0. It contains the additional features and enhancements of the product since the previous release. It also summarizes the known issues and limitations of the product and provides workaround wherever applicable.&lt;br /&gt;
&lt;br /&gt;
===Key Topics===&lt;br /&gt;
&lt;br /&gt;
''OpenClovis Release Notes'' covers the following topics in details:&lt;br /&gt;
*Tested Platforms&lt;br /&gt;
*What Is New&lt;br /&gt;
*Migration To Latest Version&lt;br /&gt;
*Known Issues&lt;br /&gt;
*Environment Related Observation&lt;br /&gt;
*Documentation Issues&lt;br /&gt;
&lt;br /&gt;
===Audience===&lt;br /&gt;
&lt;br /&gt;
''OpenClovis Release Notes'' addresses system integrators, designers, and system architects. To use SAFplus Platform, you must be aware of the fundamentals of operation, management, and configuration of telecom and networking domains. You must also be familiar with C programming, UML notations, and have basic knowledge of Linux.&lt;br /&gt;
&lt;br /&gt;
===Documentation Conventions===&lt;br /&gt;
&lt;br /&gt;
This guide uses different fonts and symbols to differentiate between document elements and types of information. These conventions are summarized in the following table.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;  width=&amp;quot;680&amp;quot;&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Notation &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Description&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|style=&amp;quot;color:black&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;Code&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
This font denotes the C code provided in various examples.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|Cross reference&lt;br /&gt;
|&lt;br /&gt;
This font denotes a hyperlink. You can click on the hyperlink text to access the reference location, which can be either a section within the User Guide or a URL link. A cross reference refers to a section name and accesses the first page of that section.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''Bold Text''' &lt;br /&gt;
|&lt;br /&gt;
Menu items and button names.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''''Italic Text''''' &lt;br /&gt;
|&lt;br /&gt;
Variables for which you enter values.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]This indicates the presence of notes or annotations, related to the context of the document.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Caution.png]]This indicates that certain precautionary measures must be taken before performing a particular task.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Info.png]]This indicates that additional information is provided to you.&lt;br /&gt;
&lt;br /&gt;
===Related Documents===&lt;br /&gt;
&lt;br /&gt;
For additional information about OpenClovis products, refer to the following guides:&lt;br /&gt;
* '''SAFplus Platform SA Forum Compliance''' describes the level of compliance of OpenClovis SAFplus Platform and its Application Programming Interface (API) with the relevant Service Availability Forum Specifications.&lt;br /&gt;
* '''SAFplus Platform Installation Guide''' provides the system requirements, installation procedure for OpenClovis SAFplus Platform, IDE, and the Evaluation System.&lt;br /&gt;
* '''SAFplus Platform Sample Application Tutorial''' explains the steps to create and build a sample model using OpenClovis IDE and OpenClovis SAFplus Platform. It also provides troubleshooting information for this process. This provides the logical first step in understanding the SAFplus Platform offering.&lt;br /&gt;
* '''SAFplus Platform Evaluation System User Guide''' provides all the required information to configure and run the sample models packaged within the Evaluation System. This document also provides good understanding of OpenClovis SAFplus Platform's functionality. This is the natural follow on to the ''OpenClovis Sample Application Tutorial'' as it builds on the example created in that document. &lt;br /&gt;
* '''SAFplus Platform SDK User Guide''' provides information about SAFplus Availability/Scalability Platform architecture, various SAFplus Platform components, and their interactions. This guide helps you to configure the OpenClovis SAFplus Platform components, compile, and execute the SAFplus Platform code to build your custom application.&lt;br /&gt;
* '''SAFplus Platform IDE User Guide''' describes the usage of Integrated Development Environment (IDE), a graphical development environment that complements the SAFplus Platform. This guide helps you to understand how to use the various features of the IDE to build the application.&lt;br /&gt;
* '''SAFplus Platform Log Tool User Guide''' provides information about the usage of OpenClovis Log Tool. OpenClovis Log Tool is an interactive utility that allows you to view binary log files in a readable format and hence monitor system errors, warnings, and other log information. Log Tool allows you to format the &amp;lt;code&amp;gt;.log&amp;lt;/code&amp;gt; files and filter them to view the required entries.&lt;br /&gt;
* '''SAFplus Platform API Reference Guide''' is provided for each component. It describes the Application Programming Interface (API), Service Model, and Management Information Model of the various OpenClovis Application Service Platform (SAFplus Platform) services. It helps the developer to understand the capabilities of the SAFplus Platform services and the APIs provided by these services.&lt;br /&gt;
* '''SAFplus Platform Console Reference Guide''' provides details about managing applications built on SAFplus Platform using the SAFplus Platform runtime debug console commands. SAFplus Platform Console commands can be used to manage, monitor, and test your application.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Online Technical Support===&lt;br /&gt;
&lt;br /&gt;
OpenClovis customers and partners can register on our Web site and receive personalized services and information. If you need any support or assistance while working on OpenClovis products, you can access the following: URL: http://www.openclovis.com. Send your queries to: support@openclovis.com. Open source community support is available at: http://www.openclovis.org/forum.&lt;br /&gt;
&lt;br /&gt;
===Documentation Feedback===&lt;br /&gt;
&lt;br /&gt;
We are interested in hearing from our customers on the documentation provided with the product. Let us know your comments and suggestions on improving the documentation at OpenClovis Inc. Send your comments to: support@openclovis.com. Post your feedback on documentation in the page on our documentation wiki located at [http://help.openclovis.com http://help.openclovis.com].&lt;br /&gt;
&lt;br /&gt;
=='''Tested Platforms'''==&lt;br /&gt;
&lt;br /&gt;
This chapter provides the details of the platforms on which OpenClovis SAFplus Platform have been tested and validated.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Tested Platform Configurations''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;150&amp;quot;| Platform&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Configuration&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Hardware&lt;br /&gt;
|&lt;br /&gt;
* ATCA 5U Chassis - Schroff, ASIS&lt;br /&gt;
* ATCA 12U Chassis - Schroff, Sanmina, HP, Sun Netra, Radisys, Huawei Tecal Server&lt;br /&gt;
* Pigeon Point Systems ShMM300 and ShMM500 based Shelf Controllers&lt;br /&gt;
* Radisys Promentum 60x0 and its 2100 Switch/Shelf Controller blades&lt;br /&gt;
* CPU Blades:&lt;br /&gt;
** Intel Xeon based server cards&lt;br /&gt;
** Intel Pentium and Xeon based desktops and rack mount servers (RMS)&lt;br /&gt;
** Intel Itanium based RMS&lt;br /&gt;
** AMD Opteron based ATCA cards&lt;br /&gt;
** AMD Opteron and Athlon based desktops&lt;br /&gt;
** PowerPC based AMCs&lt;br /&gt;
** PowerPC based desktops&lt;br /&gt;
** Huawei Tecal BH23&lt;br /&gt;
** Sun 3020 and 3090&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Software&lt;br /&gt;
|&lt;br /&gt;
* Wind River PNE-LE 1.2 (2.6.10 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 1.3 (2.6.14 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 1.4 (2.6.14 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 2.0 (2.6.21 kernel) on CPU blades&lt;br /&gt;
* MontaVista Linux Carrier Grade Edition 5.0 (2.6.21 kernel)on CPU Blades&lt;br /&gt;
* QNX Neutrino RTOS 6.3.2&lt;br /&gt;
* Pigeon Point Systems Shelf Manager version 2.2.1 on ShMM300, ShMM500&lt;br /&gt;
* SCM software version 1.7 on ATCA 2100 Shelf Manager&lt;br /&gt;
* OpenHPI 2.8.1 and 2.10.2&lt;br /&gt;
* Radisys HPI Client Library (HCL) version 1.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For more details on the hardware and software requirements and the steps to install OpenClovis SAFplus Platform and IDE, refer to ''OpenClovis Installation Guide''.&lt;br /&gt;
&lt;br /&gt;
=='''What Is New'''==&lt;br /&gt;
&lt;br /&gt;
This chapter outlines the new features and enhancements provided by OpenClovis SAFplus Platform and IDE for Release 5.0.&lt;br /&gt;
&lt;br /&gt;
===Features of OpenClovis SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
====General Features====&lt;br /&gt;
&lt;br /&gt;
* '''Support for Wind River PNELE 2.0''': OpenClovis SDK can seamlessly build SAFplus Platform and binaries for Wind River Platform for Network Equipment Linux Edition 2.0 on all supported SDK platforms, either using the build tool-chain of OpenClovis or of the development environment of Wind River.&lt;br /&gt;
&lt;br /&gt;
====High Availability (HA)====&lt;br /&gt;
&lt;br /&gt;
*'''ISSU - In Service Software Upgrade'''&lt;br /&gt;
Supports middleware upgrade in a rolling (in-service) or single-step mode.&lt;br /&gt;
&lt;br /&gt;
'''Single-Step'''&lt;br /&gt;
For deployment of non-backwards compatible software, or rapid deployment of software.  This method stops the relevant services on all nodes (causing an outage) and then upgrades that software and restarts.  Note that services are stopped at various granularity levels depending on what is being upgraded.  In other words, application A can be taken out-of-service and upgraded across the cluster without affecting application B running on the same nodes.&lt;br /&gt;
&lt;br /&gt;
'''Inservice Rolling'''&lt;br /&gt;
This is the most commonly known telecom quality upgrade method.  For deployment of backwards-compatible software across the cluster, this method stops service in one &amp;quot;upgrade unit&amp;quot; at a time, upgrades the software and restarts before stopping the next &amp;quot;upgrade unit&amp;quot;.  This process continues iteratively until the entire cluster is upgraded.  Since the available redundant capacity takes over for the unit being upgraded service will be unaffected.&lt;br /&gt;
&lt;br /&gt;
====Infrastructure and Communications====&lt;br /&gt;
&lt;br /&gt;
====Group Membership Service (GMS) over TIPC====&lt;br /&gt;
&lt;br /&gt;
By default GMS/openais is now compiled to run over TIPC.&lt;br /&gt;
&lt;br /&gt;
====SAF Message Service====&lt;br /&gt;
&lt;br /&gt;
SAF messaging data types and APIs supported by OpenClovis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''classes/types:'''&lt;br /&gt;
&lt;br /&gt;
*SaMsgMessageT&lt;br /&gt;
*SaMsgHandleT&lt;br /&gt;
*SaMsgQueueStatusT&lt;br /&gt;
*SaMsgQueueHandleT&lt;br /&gt;
*SaMsgSenderIdT&lt;br /&gt;
*SaMsgQueueCreationAttributesT&lt;br /&gt;
*SaMsgQueueOpenFlagsT&lt;br /&gt;
*SaMsgQueueGroupPolicyT&lt;br /&gt;
*SaMsgQueueGroupNotificationBufferT&lt;br /&gt;
*SaMsgQueueGroupNotificationT&lt;br /&gt;
*SaMsgQueueUsageT&lt;br /&gt;
*SaMsgCallbacksT&lt;br /&gt;
*SaMsgMessageReceivedCallbackT&lt;br /&gt;
&lt;br /&gt;
*'''APIs:'''&lt;br /&gt;
&lt;br /&gt;
*saMsgMessageSend&lt;br /&gt;
*saMsgMessageSendAsync&lt;br /&gt;
*saMsgQueueOpen&lt;br /&gt;
*saMsgQueueClose&lt;br /&gt;
*saMsgQueueStatusGet&lt;br /&gt;
*saMsgMessageGet&lt;br /&gt;
*saMsgMessageDataFree&lt;br /&gt;
*saMsgQueueGroupCreate&lt;br /&gt;
*saMsgQueueGroupInsert&lt;br /&gt;
*saMsgQueueGroupTrack&lt;br /&gt;
*saMsgQueueGroupNotificationFree&lt;br /&gt;
*saMsgInitialize&lt;br /&gt;
*saMsgFinalize&lt;br /&gt;
*saMsgDispatch&lt;br /&gt;
&lt;br /&gt;
====SAF Component cleanup script support====&lt;br /&gt;
&lt;br /&gt;
5.0 introduces support to configure cleanup commands for SA-AWARE components using the Openclovis IDE. The cleanup command is invoked by AMF on component cleanup or abrupt terminations.&lt;br /&gt;
&lt;br /&gt;
===System Management===&lt;br /&gt;
&lt;br /&gt;
*Support of net-snmp 5.4.2.&lt;br /&gt;
*SNMP Traps in 64 Bit architectures.&lt;br /&gt;
&lt;br /&gt;
===Platform Management===&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform provides pre-integrated support for commonly used ATCA platforms. All service affecting events reported by the shelf manager via HPI are intercepted and service on affected hardware is migrated to standby equipment, ensuring continuity of service. &lt;br /&gt;
&lt;br /&gt;
This support is provided with the '''Platform Support Package (PSP)''' for Piegon Point Shelf manager 500ShMM via openHPI. &lt;br /&gt;
&lt;br /&gt;
PSP is available as a separate product, please contact OpenClovis Sales for further information.&lt;br /&gt;
&lt;br /&gt;
===Features of OpenClovis IDE===&lt;br /&gt;
&lt;br /&gt;
* '''Running SAFplus Platform without manageability components''': IDE is having the support for enable/disable SAFplus Platform components. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
* '''AMF Clean-up script''': IDE is having support to specify the cleanup command in SAF Component. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
* '''Versioning the Configuration Files''': IDE is having support for versioning the configuration files.&lt;br /&gt;
* '''SAF Messaging''': IDE is having support to enable the SAF messaging. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform Run-Time Director===&lt;br /&gt;
&lt;br /&gt;
A new product, the SAFplus Platform Run-Time Director(ARD), provides cluster management of the SAFplus Platform via a web interface.  This new product is available separately, please contact OpenClovis for demonstration and evaluation.  The ARD has the following features:&lt;br /&gt;
&lt;br /&gt;
* Software Distribution:  Allows individual applications to be packaged in a &amp;quot;bundle&amp;quot; and be deployed to any set of nodes in the cluster.&lt;br /&gt;
* Inservice Software Upgrade: Supports application upgrade in a rolling (in-service) or single-step mode. &lt;br /&gt;
* WYSIWYG: Provides intuitive cluster management via an HTTP (web) interface.&lt;br /&gt;
* AJAX: Displays all SAF AMF entities and their current status -- uses asynchronous Javascript requests to dynamically update browser when changes occur.&lt;br /&gt;
* Dynamic AMF:  Allows modification of AMF entity state and supports creation/deletion of AMF entities.&lt;br /&gt;
* High Availability:  The ARD runs in unprotected or 2N redundancy mode.&lt;br /&gt;
* Python AMF API:  Provides an easy-to-use CLI/programmatic API for cluster management&lt;br /&gt;
* Easy installation:  The ARD can install itself into a running SAFplus Platform model, and therefore requires no changes to your existing model.&lt;br /&gt;
* Extensible: The ARD is built on top of TurboGears, a popular open source web mega-framework.  Thus it provides a basis and example for your custom SaaS or EMS project.&lt;br /&gt;
* Integration of Platform Support Package (PSP), provides chassis configuration through OpenHPI.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Documentation===&lt;br /&gt;
&lt;br /&gt;
* OpenClovis Documentation is provided in two formats now, PDF and HTML. They both contain the same information.&lt;br /&gt;
* A new ''OpenClovis SA Forum Compliance'' document has been added&lt;br /&gt;
* As a courtesy, all relevant SA Forum specifications are supplied as part of our OpenClovis documentation package (only in PDF format).&lt;br /&gt;
* A new ''OpenClovis Sample Application Tutorial'' has been added, replacing the former Modeling Tutorial. The new document provides explanation for the various steps involved in creating and running a new application.&lt;br /&gt;
* The ''OpenClovis SDK User Guide'' has been extended to cover many additional topics, including:&lt;br /&gt;
** Communication infrastructure&lt;br /&gt;
** Hardware platform support&lt;br /&gt;
** How to debug SAFplus Platform based applications&lt;br /&gt;
** Build and deployment&lt;br /&gt;
* The ''OpenClovis API Reference Guide'' has been significantly revised:&lt;br /&gt;
** Numerous coding examples&lt;br /&gt;
** New reference pages for API error codes for easy lookup&lt;br /&gt;
** HTML version of API Refernce Guide is heavily cross-referenced, allowing easy navigation between the various programming construcs&lt;br /&gt;
* New, complete ''OpenClovis SAFplus Platform Console Reference Guide'' as a separate document&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]From this release, the ''Debug CLI'' has been renamed to ''SAFplus Platform Console''.&lt;br /&gt;
&lt;br /&gt;
=='''Migration To Latest Version'''==&lt;br /&gt;
&lt;br /&gt;
Migration of a project or model from an earlier version of the OpenClovis IDE to the most recent version is performed automatically when the model it opened for the first time in the newer vesion. The IDE auto-detects the project's version and changes the internal files so that the information is in valid format and can be read by the current version. It also provides an option to create a backup of the project while performing the migration. For more information, refer to ''OpenClovis IDE User Guide'', Section ''Migrating Project''. IDE supports migration from R2.3 and above.&lt;br /&gt;
&lt;br /&gt;
Any issues regarding migration from a previous version of the IDE are documented below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Change in Log File Locations===&lt;br /&gt;
&lt;br /&gt;
As of release 3.0 all SAFplus Platform runtime log files are created in the &amp;lt;code&amp;gt;var/log&amp;lt;/code&amp;gt; subdirectory of the SAFplus Platform install directory. It is recommended that you update existing models to also use this directory. To update an existing model edit the clLog.xml file in the model's src/config directory. Change all references of '''.:log''' in the &amp;lt;code&amp;gt;&amp;lt;fileLocation&amp;gt;&amp;lt;/code&amp;gt; elements&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;fileLocation&amp;gt;.:log&amp;lt;/fileLocation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to '''.:var/log'''&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;fileLocation&amp;gt;.:var/log&amp;lt;/fileLocation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the model is rebuilt and deployed these new settings will take effect.&lt;br /&gt;
&lt;br /&gt;
===gmsConfig.xml file===&lt;br /&gt;
&lt;br /&gt;
Models of R2.3 may not contain the gmsConfig.xml file if GMS configuration is not done. If you migrate this project you will get error message saying that Migration was unable to create this file. But this is not going to affect further use of model. Model will be OK and user can make changes to it from IDE, generate source, build it, etc without any problem.&lt;br /&gt;
&lt;br /&gt;
Although this error is not going to affect the functionality of the model, there is a work around for this. Before migrating your model, just open up the model in your old IDE setup. Launch &amp;quot;SAFplus Platform Component Configuration&amp;quot; dialog from the Clovis menu. Press OK. Now just migrate the model with new IDE setup, you will not get this error. Bug has been raised for this and it will be fixed in next release.&lt;br /&gt;
&lt;br /&gt;
=='''Known Issues'''==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the known issues in the current release and provides the associated workarounds. These issues arise due to deviation from the normal functioning of the system or as a result of an unexpected behavior of a component or a service.&lt;br /&gt;
&lt;br /&gt;
===Known Issues of OpenClovis SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
Following are the known issues for OpenClovis SAFplus Platform:&lt;br /&gt;
&lt;br /&gt;
*'''Infrastructure and Communications'''&lt;br /&gt;
** '''TIPC address:''' TIPC with 1.5.12 versions was found to give problems (link unstable) when you have 2 different TIPC netids configured for the same TIPC address. This issue is not seen with the 1.7.x TIPC releases, but in general we recommend you to keep the TIPC addresses unique and not collide with the same addresses on nodes configured with different TIPC netids. One of the symptoms  of this is that the TIPC link between 2 machine starts going UP and DOWN continuously when there is another machine in the network, whose TIPC address is conflicting with address of one of those 2 machines. The behavior can be observed through continuous execution of command &amp;quot;tipc-config -l&amp;quot; or through &amp;quot;dmesg&amp;quot;.&lt;br /&gt;
** In general, TIPC 1.5.XX has been found to be unstable, especially under high multicast load, and should not be used in production environments.&lt;br /&gt;
&lt;br /&gt;
** '''Bug ID #7269'''  A cluster having a mixture of 32bit little endian, 32bit big endian and 64 bit little endian machines/nodes may find that the GMS service in inadvertently terminates.&lt;br /&gt;
*** '''Workaround''' - None&lt;br /&gt;
** '''aspinfo known issues:''' (1) On some systems, especially systems with Python version 2.3, aspinfo can be slow to respond. (2) Some corner cases may not be properly handled and aspinfo may prematurely exit, dumping its Python stack.&lt;br /&gt;
&lt;br /&gt;
* '''Platform Management'''&lt;br /&gt;
&lt;br /&gt;
* '''System Management'''&lt;br /&gt;
** '''Bug ID #7313''' If an Alarm Server is restarted after it published an alarm, it won't allow to clear/publish that alarm again.&lt;br /&gt;
*** '''Workaround''' - Currently there is no workaround.&lt;br /&gt;
&lt;br /&gt;
* '''SAF Compliance'''&lt;br /&gt;
** '''Deviation from SAF in Event Service:''' Event Service does not yet support Event Retention as specified in SAF specification. The retention time specified in the clEventPublish() API would have no effect.&lt;br /&gt;
** '''Bug in SAF specificaion B11:''' The clEventDataGet() API of Event Service is in compliance with the SAF specification B11. This allows the user to either allocate memory for the event payload or obtain it from the API by passing a pointer. The latter is not possible with this API as the argument needs to be a pointer to a pointer which is not the case. As per the new specification and the recommended way the user is always required to allocate and free the memory.&lt;br /&gt;
&lt;br /&gt;
===Known Issues of OpenClovis IDE===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Bug ID # 6543: X Error in Ubuntu Installation.''' Starting the IDE in '''Ubuntu''' installation may result some X errors in the console. This is not an IDE issue, this will not affect any of the IDE functionalities.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Workaround''' - See the ''Limitations'' section of the ''OpenClovis IDE User Guide''.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''SNMP MIB Enumerated Integer Construct Limitations''': During SNMP code generation all enumerated integer labels are converted to &amp;lt;code&amp;gt;#define&amp;lt;/code&amp;gt; statements. The constant names used in these statements are the enumerated integer labels converted to upper case. Because of this the all labels used within an enumerated integer construct must be unique regardless of case.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;'''SNMP MIB V1 TRAP-TYPE Construct Not Supported''': Due to an issue in the Net-SNMP mib2c compiler code generation for MIBs using the V1 TRAP-TYPE construct does not work properly.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Workaround''' - To generate trap code from an SNMP MIB use the SNMP V2 NOTIFICATION-TYPE construct.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Known Issues of Install Package===&lt;br /&gt;
&lt;br /&gt;
* '''Bug ID # 6749: Potential conflict with net-snmp package on local system''': In certain rare instances, building OpenHPI from the included third-party packages during SDK installation fails owing to a conflict with an already-installed version of NetSNMP on the system.  In these instances, it is recommended that NetSNMP be removed from the local system before installing OpenClovis SDK, and that it be reinstalled after completing the SDK installation.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Red Hat Enterprise 4''': On a Red Hat Enterprise Linux 4 system, the 'Development Tools' subset of packages must be installed to cover the requirements for installing OpenClovis SDK.  In general, an installation with the default package set contains all requirements for installation.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Fedora Core 6''': On a Fedora Core 6 system, installation of OpenClovis SAFplus Platform automatically builds and installs the TIPC opensource package.  To build TIPC, the kernel headers must be present and so these are automatically installed (by our ./preinstall-fedora-core.sh script) using the &amp;quot;yum install kernel-devel&amp;quot; command.  On rare configurations, this command does not work correctly.  It is supposed to install headers so that the symbolic link located at &amp;quot;/lib/modules/`uname -r`/build&amp;quot; points to a valid directory of Linux header files.  However, on some systems this symbolic link points to &amp;quot;/usr/src/kernels/2.6.22.14-72.fc6-i586&amp;quot; but the headers are actually installed in &amp;quot;/usr/src/kernels/2.6.22.14-72.fc6-i686&amp;quot;  (note 'i586' vs 'i686').  To resolve this problem, change the symbolic link to point to the correct directory name, and then restart the OpenClovis SAFplus Platform installation.&lt;br /&gt;
&lt;br /&gt;
* '''Configuring TIPC and assigning the SAFplus Platform node address''' to an OpenClovis SAFplus Platform is done by SAFplus Platform start up script. But if manual configuration of TIPC is allowed.  Misconfiguration (such as assigning 2 nodes the same TIPC address) will result in an unstable system. When this happens the whole system (all the SAFplus Platform nodes including the ones which are already up and running properly) have to be brought down, the TIPC kernel driver unloaded (to remove its configuration) and the system restarted.&lt;br /&gt;
&lt;br /&gt;
* '''Installation of SQLite using Preinstall script''': The Preinstall script installs SQLite by default as database engine. It locates SQLite - if it is already installed - without verifying version number. If its version is older than 3.3.13, then SAFplus Platform will fail to start.&lt;br /&gt;
** '''Workaround''' - Use SQLite 3.3.13 or newer. The source code can be downloaded from http://www.sqlite.org/download.html. The user can install the latest version of SQLite if its not present in the repository.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Solaris 10/SPARC (beta)''': Installation of OpenClovis SAFplus Platform requires the following third party packages installed via either installation media or using pkgadd with packages obtained from http://www.sunfreeware.com/.  Missing third-party packages may cause unpredictable behavior during installation and SDK use.&lt;br /&gt;
** db-4.2.52&lt;br /&gt;
** fileutils&lt;br /&gt;
** flex&lt;br /&gt;
** gcc-3.4.2&lt;br /&gt;
** gdbm-1.8.3&lt;br /&gt;
** glib-2.14.1&lt;br /&gt;
** gmake&lt;br /&gt;
** gtar&lt;br /&gt;
** libintl&lt;br /&gt;
** libiconv&lt;br /&gt;
** ncurses&lt;br /&gt;
** openssl&lt;br /&gt;
** pkgconfig&lt;br /&gt;
** python-2.5.1&lt;br /&gt;
** readline&lt;br /&gt;
** snprintf&lt;br /&gt;
** tipc-solaris-1.7.5 or SUNWtipc&lt;br /&gt;
** SUNWbtool&lt;br /&gt;
** SUNWsprot&lt;br /&gt;
** SUNWhea&lt;br /&gt;
** wget&lt;br /&gt;
&lt;br /&gt;
=='''Environment Related Observation'''==&lt;br /&gt;
&lt;br /&gt;
* '''Bug ID #7549''' When SAFplus Platform is running in non simulation mode, if SAFplus Platform is started from one sandbox, then it can be stopped/zapped from another sandbox.&lt;br /&gt;
&lt;br /&gt;
===Enabled Firewall Can Cause SAFplus Platform to Shutdown===&lt;br /&gt;
The enablement of a firewall on a system running a deployed SAFplus Platform image can cause the software to shutdown. An indication that you may be running into this problem is if you see an entry similar to the following in your log file (in the log file it is one line):&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Wed Sep 26 15:06:54 2007   (SCNodeI0.10499 : GMS.---.---.00036 :  ERROR)&lt;br /&gt;
   [clGmsEngine.c:448] No nodes in the cluster view to run leader &lt;br /&gt;
   electionLeader Election Aborted&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
To resolve this problem disable all filtering in the Netfilter framework by issuing the following command.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -F&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reusing A Project Area With New Version of OpenClovis SDK===&lt;br /&gt;
Every Project Area is associated with an installation of OpenClovis SDK at a given location.  If one elects to reinstall the SDK at a different location or install a newer version at a different location, the project area will stay associated with the original SDK location.  This allows one to work with multiple versions of the SDK simultaneously.&lt;br /&gt;
In order to use an existing project area with a different or moved installation of OpenClovis SDK, remove the &amp;lt;code&amp;gt;.config&amp;lt;/code&amp;gt; file from your project area directory and re-run &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt; as you normally would to work with a model.&lt;br /&gt;
&lt;br /&gt;
===Running Multiple SAFplus Platform Clusters in the same Subnet===&lt;br /&gt;
If you are running multiple SAFplus Platform clusters within the same subnet, please ensure that the &amp;lt;code&amp;gt;TIPC network ID&amp;lt;/code&amp;gt; selected for each cluster is unique.&lt;br /&gt;
&lt;br /&gt;
=='''Documentation Issues'''==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the known issues with the OpenClovis Documentation shipped along with the product.&lt;br /&gt;
&lt;br /&gt;
* Formatting issues&lt;br /&gt;
** Following cross-references pointing to a heading, the PDF viewer will jump to the end of the previous page if the heading is on the top of a page.&lt;br /&gt;
** Firefox web browsers sometimes do not correctly jump to intra-page anchors when the user clicks on a reference. This is a known issue with Firefox. The workaround is to click on Back button and then on the reference again. The browser jumps to the correct position for the 2nd time.&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/relnotes</id>
		<title>Doc:latest/relnotes</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/relnotes"/>
				<updated>2011-10-24T19:32:08Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* Known Issues of OpenClovis SAFplus Platform */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Preface'''==&lt;br /&gt;
&lt;br /&gt;
Welcome to ''OpenClovis Release Notes''. This document provides information about the details of the platforms on which OpenClovis SAFplus Availability/Scalability Platform (the SAFplus Platform for short) and Integrated Development Environment (IDE) have been tested and validated for SDK Release 6.0. It contains the additional features and enhancements of the product since the previous release. It also summarizes the known issues and limitations of the product and provides workaround wherever applicable.&lt;br /&gt;
&lt;br /&gt;
===Key Topics===&lt;br /&gt;
&lt;br /&gt;
''OpenClovis Release Notes'' covers the following topics in details:&lt;br /&gt;
*Tested Platforms&lt;br /&gt;
*What Is New&lt;br /&gt;
*Migration To Latest Version&lt;br /&gt;
*Known Issues&lt;br /&gt;
*Environment Related Observation&lt;br /&gt;
*Documentation Issues&lt;br /&gt;
&lt;br /&gt;
===Audience===&lt;br /&gt;
&lt;br /&gt;
''OpenClovis Release Notes'' addresses system integrators, designers, and system architects. To use SAFplus Platform, you must be aware of the fundamentals of operation, management, and configuration of telecom and networking domains. You must also be familiar with C programming, UML notations, and have basic knowledge of Linux.&lt;br /&gt;
&lt;br /&gt;
===Documentation Conventions===&lt;br /&gt;
&lt;br /&gt;
This guide uses different fonts and symbols to differentiate between document elements and types of information. These conventions are summarized in the following table.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;  width=&amp;quot;680&amp;quot;&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Notation &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Description&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|style=&amp;quot;color:black&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;Code&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
This font denotes the C code provided in various examples.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|Cross reference&lt;br /&gt;
|&lt;br /&gt;
This font denotes a hyperlink. You can click on the hyperlink text to access the reference location, which can be either a section within the User Guide or a URL link. A cross reference refers to a section name and accesses the first page of that section.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''Bold Text''' &lt;br /&gt;
|&lt;br /&gt;
Menu items and button names.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''''Italic Text''''' &lt;br /&gt;
|&lt;br /&gt;
Variables for which you enter values.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]This indicates the presence of notes or annotations, related to the context of the document.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Caution.png]]This indicates that certain precautionary measures must be taken before performing a particular task.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Info.png]]This indicates that additional information is provided to you.&lt;br /&gt;
&lt;br /&gt;
===Related Documents===&lt;br /&gt;
&lt;br /&gt;
For additional information about OpenClovis products, refer to the following guides:&lt;br /&gt;
* '''SAFplus Platform SA Forum Compliance''' describes the level of compliance of OpenClovis SAFplus Platform and its Application Programming Interface (API) with the relevant Service Availability Forum Specifications.&lt;br /&gt;
* '''SAFplus Platform Installation Guide''' provides the system requirements, installation procedure for OpenClovis SAFplus Platform, IDE, and the Evaluation System.&lt;br /&gt;
* '''SAFplus Platform Sample Application Tutorial''' explains the steps to create and build a sample model using OpenClovis IDE and OpenClovis SAFplus Platform. It also provides troubleshooting information for this process. This provides the logical first step in understanding the SAFplus Platform offering.&lt;br /&gt;
* '''SAFplus Platform Evaluation System User Guide''' provides all the required information to configure and run the sample models packaged within the Evaluation System. This document also provides good understanding of OpenClovis SAFplus Platform's functionality. This is the natural follow on to the ''OpenClovis Sample Application Tutorial'' as it builds on the example created in that document. &lt;br /&gt;
* '''SAFplus Platform SDK User Guide''' provides information about SAFplus Availability/Scalability Platform architecture, various SAFplus Platform components, and their interactions. This guide helps you to configure the OpenClovis SAFplus Platform components, compile, and execute the SAFplus Platform code to build your custom application.&lt;br /&gt;
* '''SAFplus Platform IDE User Guide''' describes the usage of Integrated Development Environment (IDE), a graphical development environment that complements the SAFplus Platform. This guide helps you to understand how to use the various features of the IDE to build the application.&lt;br /&gt;
* '''SAFplus Platform Log Tool User Guide''' provides information about the usage of OpenClovis Log Tool. OpenClovis Log Tool is an interactive utility that allows you to view binary log files in a readable format and hence monitor system errors, warnings, and other log information. Log Tool allows you to format the &amp;lt;code&amp;gt;.log&amp;lt;/code&amp;gt; files and filter them to view the required entries.&lt;br /&gt;
* '''SAFplus Platform API Reference Guide''' is provided for each component. It describes the Application Programming Interface (API), Service Model, and Management Information Model of the various OpenClovis Application Service Platform (SAFplus Platform) services. It helps the developer to understand the capabilities of the SAFplus Platform services and the APIs provided by these services.&lt;br /&gt;
* '''SAFplus Platform Console Reference Guide''' provides details about managing applications built on SAFplus Platform using the SAFplus Platform runtime debug console commands. SAFplus Platform Console commands can be used to manage, monitor, and test your application.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Online Technical Support===&lt;br /&gt;
&lt;br /&gt;
OpenClovis customers and partners can register on our Web site and receive personalized services and information. If you need any support or assistance while working on OpenClovis products, you can access the following: URL: http://www.openclovis.com. Send your queries to: support@openclovis.com. Open source community support is available at: http://www.openclovis.org/forum.&lt;br /&gt;
&lt;br /&gt;
===Documentation Feedback===&lt;br /&gt;
&lt;br /&gt;
We are interested in hearing from our customers on the documentation provided with the product. Let us know your comments and suggestions on improving the documentation at OpenClovis Inc. Send your comments to: support@openclovis.com. Post your feedback on documentation in the page on our documentation wiki located at [http://help.openclovis.com http://help.openclovis.com].&lt;br /&gt;
&lt;br /&gt;
=='''Tested Platforms'''==&lt;br /&gt;
&lt;br /&gt;
This chapter provides the details of the platforms on which OpenClovis SAFplus Platform have been tested and validated.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Tested Platform Configurations''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;150&amp;quot;| Platform&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Configuration&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Hardware&lt;br /&gt;
|&lt;br /&gt;
* ATCA 5U Chassis - Schroff, ASIS&lt;br /&gt;
* ATCA 12U Chassis - Schroff, Sanmina, HP, Sun Netra, Radisys, Huawei Tecal Server&lt;br /&gt;
* Pigeon Point Systems ShMM300 and ShMM500 based Shelf Controllers&lt;br /&gt;
* Radisys Promentum 60x0 and its 2100 Switch/Shelf Controller blades&lt;br /&gt;
* CPU Blades:&lt;br /&gt;
** Intel Xeon based server cards&lt;br /&gt;
** Intel Pentium and Xeon based desktops and rack mount servers (RMS)&lt;br /&gt;
** Intel Itanium based RMS&lt;br /&gt;
** AMD Opteron based ATCA cards&lt;br /&gt;
** AMD Opteron and Athlon based desktops&lt;br /&gt;
** PowerPC based AMCs&lt;br /&gt;
** PowerPC based desktops&lt;br /&gt;
** Huawei Tecal BH23&lt;br /&gt;
** Sun 3020 and 3090&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Software&lt;br /&gt;
|&lt;br /&gt;
* Wind River PNE-LE 1.2 (2.6.10 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 1.3 (2.6.14 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 1.4 (2.6.14 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 2.0 (2.6.21 kernel) on CPU blades&lt;br /&gt;
* MontaVista Linux Carrier Grade Edition 5.0 (2.6.21 kernel)on CPU Blades&lt;br /&gt;
* QNX Neutrino RTOS 6.3.2&lt;br /&gt;
* Pigeon Point Systems Shelf Manager version 2.2.1 on ShMM300, ShMM500&lt;br /&gt;
* SCM software version 1.7 on ATCA 2100 Shelf Manager&lt;br /&gt;
* OpenHPI 2.8.1 and 2.10.2&lt;br /&gt;
* Radisys HPI Client Library (HCL) version 1.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For more details on the hardware and software requirements and the steps to install OpenClovis SAFplus Platform and IDE, refer to ''OpenClovis Installation Guide''.&lt;br /&gt;
&lt;br /&gt;
=='''What Is New'''==&lt;br /&gt;
&lt;br /&gt;
This chapter outlines the new features and enhancements provided by OpenClovis SAFplus Platform and IDE for Release 5.0.&lt;br /&gt;
&lt;br /&gt;
===Features of OpenClovis SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
====General Features====&lt;br /&gt;
&lt;br /&gt;
* '''Support for Wind River PNELE 2.0''': OpenClovis SDK can seamlessly build SAFplus Platform and binaries for Wind River Platform for Network Equipment Linux Edition 2.0 on all supported SDK platforms, either using the build tool-chain of OpenClovis or of the development environment of Wind River.&lt;br /&gt;
&lt;br /&gt;
====High Availability (HA)====&lt;br /&gt;
&lt;br /&gt;
*'''ISSU - In Service Software Upgrade'''&lt;br /&gt;
Supports middleware upgrade in a rolling (in-service) or single-step mode.&lt;br /&gt;
&lt;br /&gt;
'''Single-Step'''&lt;br /&gt;
For deployment of non-backwards compatible software, or rapid deployment of software.  This method stops the relevant services on all nodes (causing an outage) and then upgrades that software and restarts.  Note that services are stopped at various granularity levels depending on what is being upgraded.  In other words, application A can be taken out-of-service and upgraded across the cluster without affecting application B running on the same nodes.&lt;br /&gt;
&lt;br /&gt;
'''Inservice Rolling'''&lt;br /&gt;
This is the most commonly known telecom quality upgrade method.  For deployment of backwards-compatible software across the cluster, this method stops service in one &amp;quot;upgrade unit&amp;quot; at a time, upgrades the software and restarts before stopping the next &amp;quot;upgrade unit&amp;quot;.  This process continues iteratively until the entire cluster is upgraded.  Since the available redundant capacity takes over for the unit being upgraded service will be unaffected.&lt;br /&gt;
&lt;br /&gt;
====Infrastructure and Communications====&lt;br /&gt;
&lt;br /&gt;
====Group Membership Service (GMS) over TIPC====&lt;br /&gt;
&lt;br /&gt;
By default GMS/openais is now compiled to run over TIPC.&lt;br /&gt;
&lt;br /&gt;
====SAF Message Service====&lt;br /&gt;
&lt;br /&gt;
SAF messaging data types and APIs supported by OpenClovis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''classes/types:'''&lt;br /&gt;
&lt;br /&gt;
*SaMsgMessageT&lt;br /&gt;
*SaMsgHandleT&lt;br /&gt;
*SaMsgQueueStatusT&lt;br /&gt;
*SaMsgQueueHandleT&lt;br /&gt;
*SaMsgSenderIdT&lt;br /&gt;
*SaMsgQueueCreationAttributesT&lt;br /&gt;
*SaMsgQueueOpenFlagsT&lt;br /&gt;
*SaMsgQueueGroupPolicyT&lt;br /&gt;
*SaMsgQueueGroupNotificationBufferT&lt;br /&gt;
*SaMsgQueueGroupNotificationT&lt;br /&gt;
*SaMsgQueueUsageT&lt;br /&gt;
*SaMsgCallbacksT&lt;br /&gt;
*SaMsgMessageReceivedCallbackT&lt;br /&gt;
&lt;br /&gt;
*'''APIs:'''&lt;br /&gt;
&lt;br /&gt;
*saMsgMessageSend&lt;br /&gt;
*saMsgMessageSendAsync&lt;br /&gt;
*saMsgQueueOpen&lt;br /&gt;
*saMsgQueueClose&lt;br /&gt;
*saMsgQueueStatusGet&lt;br /&gt;
*saMsgMessageGet&lt;br /&gt;
*saMsgMessageDataFree&lt;br /&gt;
*saMsgQueueGroupCreate&lt;br /&gt;
*saMsgQueueGroupInsert&lt;br /&gt;
*saMsgQueueGroupTrack&lt;br /&gt;
*saMsgQueueGroupNotificationFree&lt;br /&gt;
*saMsgInitialize&lt;br /&gt;
*saMsgFinalize&lt;br /&gt;
*saMsgDispatch&lt;br /&gt;
&lt;br /&gt;
====SAF Component cleanup script support====&lt;br /&gt;
&lt;br /&gt;
5.0 introduces support to configure cleanup commands for SA-AWARE components using the Openclovis IDE. The cleanup command is invoked by AMF on component cleanup or abrupt terminations.&lt;br /&gt;
&lt;br /&gt;
===System Management===&lt;br /&gt;
&lt;br /&gt;
*Support of net-snmp 5.4.2.&lt;br /&gt;
*SNMP Traps in 64 Bit architectures.&lt;br /&gt;
&lt;br /&gt;
===Platform Management===&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform provides pre-integrated support for commonly used ATCA platforms. All service affecting events reported by the shelf manager via HPI are intercepted and service on affected hardware is migrated to standby equipment, ensuring continuity of service. &lt;br /&gt;
&lt;br /&gt;
This support is provided with the '''Platform Support Package (PSP)''' for Piegon Point Shelf manager 500ShMM via openHPI. &lt;br /&gt;
&lt;br /&gt;
PSP is available as a separate product, please contact OpenClovis Sales for further information.&lt;br /&gt;
&lt;br /&gt;
===Features of OpenClovis IDE===&lt;br /&gt;
&lt;br /&gt;
* '''Running SAFplus Platform without manageability components''': IDE is having the support for enable/disable SAFplus Platform components. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
* '''AMF Clean-up script''': IDE is having support to specify the cleanup command in SAF Component. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
* '''Versioning the Configuration Files''': IDE is having support for versioning the configuration files.&lt;br /&gt;
* '''SAF Messaging''': IDE is having support to enable the SAF messaging. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform Run-Time Director===&lt;br /&gt;
&lt;br /&gt;
A new product, the SAFplus Platform Run-Time Director(ARD), provides cluster management of the SAFplus Platform via a web interface.  This new product is available separately, please contact OpenClovis for demonstration and evaluation.  The ARD has the following features:&lt;br /&gt;
&lt;br /&gt;
* Software Distribution:  Allows individual applications to be packaged in a &amp;quot;bundle&amp;quot; and be deployed to any set of nodes in the cluster.&lt;br /&gt;
* Inservice Software Upgrade: Supports application upgrade in a rolling (in-service) or single-step mode. &lt;br /&gt;
* WYSIWYG: Provides intuitive cluster management via an HTTP (web) interface.&lt;br /&gt;
* AJAX: Displays all SAF AMF entities and their current status -- uses asynchronous Javascript requests to dynamically update browser when changes occur.&lt;br /&gt;
* Dynamic AMF:  Allows modification of AMF entity state and supports creation/deletion of AMF entities.&lt;br /&gt;
* High Availability:  The ARD runs in unprotected or 2N redundancy mode.&lt;br /&gt;
* Python AMF API:  Provides an easy-to-use CLI/programmatic API for cluster management&lt;br /&gt;
* Easy installation:  The ARD can install itself into a running SAFplus Platform model, and therefore requires no changes to your existing model.&lt;br /&gt;
* Extensible: The ARD is built on top of TurboGears, a popular open source web mega-framework.  Thus it provides a basis and example for your custom SaaS or EMS project.&lt;br /&gt;
* Integration of Platform Support Package (PSP), provides chassis configuration through OpenHPI.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Documentation===&lt;br /&gt;
&lt;br /&gt;
* OpenClovis Documentation is provided in two formats now, PDF and HTML. They both contain the same information.&lt;br /&gt;
* A new ''OpenClovis SA Forum Compliance'' document has been added&lt;br /&gt;
* As a courtesy, all relevant SA Forum specifications are supplied as part of our OpenClovis documentation package (only in PDF format).&lt;br /&gt;
* A new ''OpenClovis Sample Application Tutorial'' has been added, replacing the former Modeling Tutorial. The new document provides explanation for the various steps involved in creating and running a new application.&lt;br /&gt;
* The ''OpenClovis SDK User Guide'' has been extended to cover many additional topics, including:&lt;br /&gt;
** Communication infrastructure&lt;br /&gt;
** Hardware platform support&lt;br /&gt;
** How to debug SAFplus Platform based applications&lt;br /&gt;
** Build and deployment&lt;br /&gt;
* The ''OpenClovis API Reference Guide'' has been significantly revised:&lt;br /&gt;
** Numerous coding examples&lt;br /&gt;
** New reference pages for API error codes for easy lookup&lt;br /&gt;
** HTML version of API Refernce Guide is heavily cross-referenced, allowing easy navigation between the various programming construcs&lt;br /&gt;
* New, complete ''OpenClovis SAFplus Platform Console Reference Guide'' as a separate document&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]From this release, the ''Debug CLI'' has been renamed to ''SAFplus Platform Console''.&lt;br /&gt;
&lt;br /&gt;
=='''Migration To Latest Version'''==&lt;br /&gt;
&lt;br /&gt;
Migration of a project or model from an earlier version of the OpenClovis IDE to the most recent version is performed automatically when the model it opened for the first time in the newer vesion. The IDE auto-detects the project's version and changes the internal files so that the information is in valid format and can be read by the current version. It also provides an option to create a backup of the project while performing the migration. For more information, refer to ''OpenClovis IDE User Guide'', Section ''Migrating Project''. IDE supports migration from R2.3 and above.&lt;br /&gt;
&lt;br /&gt;
Any issues regarding migration from a previous version of the IDE are documented below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Change in Log File Locations===&lt;br /&gt;
&lt;br /&gt;
As of release 3.0 all SAFplus Platform runtime log files are created in the &amp;lt;code&amp;gt;var/log&amp;lt;/code&amp;gt; subdirectory of the SAFplus Platform install directory. It is recommended that you update existing models to also use this directory. To update an existing model edit the clLog.xml file in the model's src/config directory. Change all references of '''.:log''' in the &amp;lt;code&amp;gt;&amp;lt;fileLocation&amp;gt;&amp;lt;/code&amp;gt; elements&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;fileLocation&amp;gt;.:log&amp;lt;/fileLocation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to '''.:var/log'''&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;fileLocation&amp;gt;.:var/log&amp;lt;/fileLocation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the model is rebuilt and deployed these new settings will take effect.&lt;br /&gt;
&lt;br /&gt;
===gmsConfig.xml file===&lt;br /&gt;
&lt;br /&gt;
Models of R2.3 may not contain the gmsConfig.xml file if GMS configuration is not done. If you migrate this project you will get error message saying that Migration was unable to create this file. But this is not going to affect further use of model. Model will be OK and user can make changes to it from IDE, generate source, build it, etc without any problem.&lt;br /&gt;
&lt;br /&gt;
Although this error is not going to affect the functionality of the model, there is a work around for this. Before migrating your model, just open up the model in your old IDE setup. Launch &amp;quot;SAFplus Platform Component Configuration&amp;quot; dialog from the Clovis menu. Press OK. Now just migrate the model with new IDE setup, you will not get this error. Bug has been raised for this and it will be fixed in next release.&lt;br /&gt;
&lt;br /&gt;
=='''Known Issues'''==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the known issues in the current release and provides the associated workarounds. These issues arise due to deviation from the normal functioning of the system or as a result of an unexpected behavior of a component or a service.&lt;br /&gt;
&lt;br /&gt;
===Known Issues of OpenClovis SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
Following are the known issues for OpenClovis SAFplus Platform:&lt;br /&gt;
&lt;br /&gt;
*'''Infrastructure and Communications'''&lt;br /&gt;
** '''TIPC address:''' TIPC with 1.5.12 versions was found to give problems (link unstable) when you have 2 different TIPC netids configured for the same TIPC address. This issue is not seen with the 1.7.x TIPC releases, but in general we recommend you to keep the TIPC addresses unique and not collide with the same addresses on nodes configured with different TIPC netids. One of the symptoms  of this is that the TIPC link between 2 machine starts going UP and DOWN continuously when there is another machine in the network, whose TIPC address is conflicting with address of one of those 2 machines. The behavior can be observed through continuous execution of command &amp;quot;tipc-config -l&amp;quot; or through &amp;quot;dmesg&amp;quot;.&lt;br /&gt;
** In general, TIPC 1.5.XX has been found to be unstable, especially under high multicast load, and should not be used in production environments.&lt;br /&gt;
&lt;br /&gt;
** '''Bug ID #7269'''  A cluster having a mixture of 32bit little endian, 32bit big endian and 64 bit little endian machines/nodes may find that the GMS service in inadvertently terminates.&lt;br /&gt;
*** '''Workaround''' - None&lt;br /&gt;
** '''aspinfo known issues:''' (1) On some systems, especially systems with Python version 2.3, aspinfo can be slow to respond. (2) Some corner cases may not be properly handled and aspinfo may prematurely exit, dumping its Python stack.&lt;br /&gt;
&lt;br /&gt;
* '''Platform Management'''&lt;br /&gt;
** '''Bug ID #7569''' No network connectivity to Shelf Management Module manifests as HPI version mismatch error in Chassis Manager and potentially corrupts openhpi uid map file.&lt;br /&gt;
*** '''Workaround''' - If you see this error, check network connectivity to the Shelf Management Module's IP address from the node running Chassis Manager.  If you still see this error after ensuring connectivity, delete the openhpi_uid.map file found in your SAFplus Platform sandbox's varpath, typically &amp;lt;code&amp;gt;/root/asp/var/run/openhpi_uid.map&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* '''System Management'''&lt;br /&gt;
** '''Bug ID #7313''' If an Alarm Server is restarted after it published an alarm, it won't allow to clear/publish that alarm again.&lt;br /&gt;
*** '''Workaround''' - Currently there is no workaround.&lt;br /&gt;
&lt;br /&gt;
* '''SAF Compliance'''&lt;br /&gt;
** '''Deviation from SAF in Event Service:''' Event Service does not yet support Event Retention as specified in SAF specification. The retention time specified in the clEventPublish() API would have no effect.&lt;br /&gt;
** '''Bug in SAF specificaion B11:''' The clEventDataGet() API of Event Service is in compliance with the SAF specification B11. This allows the user to either allocate memory for the event payload or obtain it from the API by passing a pointer. The latter is not possible with this API as the argument needs to be a pointer to a pointer which is not the case. As per the new specification and the recommended way the user is always required to allocate and free the memory.&lt;br /&gt;
&lt;br /&gt;
===Known Issues of OpenClovis IDE===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Bug ID # 6543: X Error in Ubuntu Installation.''' Starting the IDE in '''Ubuntu''' installation may result some X errors in the console. This is not an IDE issue, this will not affect any of the IDE functionalities.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Workaround''' - See the ''Limitations'' section of the ''OpenClovis IDE User Guide''.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''SNMP MIB Enumerated Integer Construct Limitations''': During SNMP code generation all enumerated integer labels are converted to &amp;lt;code&amp;gt;#define&amp;lt;/code&amp;gt; statements. The constant names used in these statements are the enumerated integer labels converted to upper case. Because of this the all labels used within an enumerated integer construct must be unique regardless of case.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;'''SNMP MIB V1 TRAP-TYPE Construct Not Supported''': Due to an issue in the Net-SNMP mib2c compiler code generation for MIBs using the V1 TRAP-TYPE construct does not work properly.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Workaround''' - To generate trap code from an SNMP MIB use the SNMP V2 NOTIFICATION-TYPE construct.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Known Issues of Install Package===&lt;br /&gt;
&lt;br /&gt;
* '''Bug ID # 6749: Potential conflict with net-snmp package on local system''': In certain rare instances, building OpenHPI from the included third-party packages during SDK installation fails owing to a conflict with an already-installed version of NetSNMP on the system.  In these instances, it is recommended that NetSNMP be removed from the local system before installing OpenClovis SDK, and that it be reinstalled after completing the SDK installation.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Red Hat Enterprise 4''': On a Red Hat Enterprise Linux 4 system, the 'Development Tools' subset of packages must be installed to cover the requirements for installing OpenClovis SDK.  In general, an installation with the default package set contains all requirements for installation.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Fedora Core 6''': On a Fedora Core 6 system, installation of OpenClovis SAFplus Platform automatically builds and installs the TIPC opensource package.  To build TIPC, the kernel headers must be present and so these are automatically installed (by our ./preinstall-fedora-core.sh script) using the &amp;quot;yum install kernel-devel&amp;quot; command.  On rare configurations, this command does not work correctly.  It is supposed to install headers so that the symbolic link located at &amp;quot;/lib/modules/`uname -r`/build&amp;quot; points to a valid directory of Linux header files.  However, on some systems this symbolic link points to &amp;quot;/usr/src/kernels/2.6.22.14-72.fc6-i586&amp;quot; but the headers are actually installed in &amp;quot;/usr/src/kernels/2.6.22.14-72.fc6-i686&amp;quot;  (note 'i586' vs 'i686').  To resolve this problem, change the symbolic link to point to the correct directory name, and then restart the OpenClovis SAFplus Platform installation.&lt;br /&gt;
&lt;br /&gt;
* '''Configuring TIPC and assigning the SAFplus Platform node address''' to an OpenClovis SAFplus Platform is done by SAFplus Platform start up script. But if manual configuration of TIPC is allowed.  Misconfiguration (such as assigning 2 nodes the same TIPC address) will result in an unstable system. When this happens the whole system (all the SAFplus Platform nodes including the ones which are already up and running properly) have to be brought down, the TIPC kernel driver unloaded (to remove its configuration) and the system restarted.&lt;br /&gt;
&lt;br /&gt;
* '''Installation of SQLite using Preinstall script''': The Preinstall script installs SQLite by default as database engine. It locates SQLite - if it is already installed - without verifying version number. If its version is older than 3.3.13, then SAFplus Platform will fail to start.&lt;br /&gt;
** '''Workaround''' - Use SQLite 3.3.13 or newer. The source code can be downloaded from http://www.sqlite.org/download.html. The user can install the latest version of SQLite if its not present in the repository.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Solaris 10/SPARC (beta)''': Installation of OpenClovis SAFplus Platform requires the following third party packages installed via either installation media or using pkgadd with packages obtained from http://www.sunfreeware.com/.  Missing third-party packages may cause unpredictable behavior during installation and SDK use.&lt;br /&gt;
** db-4.2.52&lt;br /&gt;
** fileutils&lt;br /&gt;
** flex&lt;br /&gt;
** gcc-3.4.2&lt;br /&gt;
** gdbm-1.8.3&lt;br /&gt;
** glib-2.14.1&lt;br /&gt;
** gmake&lt;br /&gt;
** gtar&lt;br /&gt;
** libintl&lt;br /&gt;
** libiconv&lt;br /&gt;
** ncurses&lt;br /&gt;
** openssl&lt;br /&gt;
** pkgconfig&lt;br /&gt;
** python-2.5.1&lt;br /&gt;
** readline&lt;br /&gt;
** snprintf&lt;br /&gt;
** tipc-solaris-1.7.5 or SUNWtipc&lt;br /&gt;
** SUNWbtool&lt;br /&gt;
** SUNWsprot&lt;br /&gt;
** SUNWhea&lt;br /&gt;
** wget&lt;br /&gt;
&lt;br /&gt;
=='''Environment Related Observation'''==&lt;br /&gt;
&lt;br /&gt;
* '''Bug ID #7549''' When SAFplus Platform is running in non simulation mode, if SAFplus Platform is started from one sandbox, then it can be stopped/zapped from another sandbox.&lt;br /&gt;
&lt;br /&gt;
===Enabled Firewall Can Cause SAFplus Platform to Shutdown===&lt;br /&gt;
The enablement of a firewall on a system running a deployed SAFplus Platform image can cause the software to shutdown. An indication that you may be running into this problem is if you see an entry similar to the following in your log file (in the log file it is one line):&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Wed Sep 26 15:06:54 2007   (SCNodeI0.10499 : GMS.---.---.00036 :  ERROR)&lt;br /&gt;
   [clGmsEngine.c:448] No nodes in the cluster view to run leader &lt;br /&gt;
   electionLeader Election Aborted&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
To resolve this problem disable all filtering in the Netfilter framework by issuing the following command.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -F&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reusing A Project Area With New Version of OpenClovis SDK===&lt;br /&gt;
Every Project Area is associated with an installation of OpenClovis SDK at a given location.  If one elects to reinstall the SDK at a different location or install a newer version at a different location, the project area will stay associated with the original SDK location.  This allows one to work with multiple versions of the SDK simultaneously.&lt;br /&gt;
In order to use an existing project area with a different or moved installation of OpenClovis SDK, remove the &amp;lt;code&amp;gt;.config&amp;lt;/code&amp;gt; file from your project area directory and re-run &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt; as you normally would to work with a model.&lt;br /&gt;
&lt;br /&gt;
===Running Multiple SAFplus Platform Clusters in the same Subnet===&lt;br /&gt;
If you are running multiple SAFplus Platform clusters within the same subnet, please ensure that the &amp;lt;code&amp;gt;TIPC network ID&amp;lt;/code&amp;gt; selected for each cluster is unique.&lt;br /&gt;
&lt;br /&gt;
=='''Documentation Issues'''==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the known issues with the OpenClovis Documentation shipped along with the product.&lt;br /&gt;
&lt;br /&gt;
* Formatting issues&lt;br /&gt;
** Following cross-references pointing to a heading, the PDF viewer will jump to the end of the previous page if the heading is on the top of a page.&lt;br /&gt;
** Firefox web browsers sometimes do not correctly jump to intra-page anchors when the user clicks on a reference. This is a known issue with Firefox. The workaround is to click on Back button and then on the reference again. The browser jumps to the correct position for the 2nd time.&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/relnotes</id>
		<title>Doc:latest/relnotes</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/relnotes"/>
				<updated>2011-10-24T19:30:56Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* Known Issues of OpenClovis IDE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Preface'''==&lt;br /&gt;
&lt;br /&gt;
Welcome to ''OpenClovis Release Notes''. This document provides information about the details of the platforms on which OpenClovis SAFplus Availability/Scalability Platform (the SAFplus Platform for short) and Integrated Development Environment (IDE) have been tested and validated for SDK Release 6.0. It contains the additional features and enhancements of the product since the previous release. It also summarizes the known issues and limitations of the product and provides workaround wherever applicable.&lt;br /&gt;
&lt;br /&gt;
===Key Topics===&lt;br /&gt;
&lt;br /&gt;
''OpenClovis Release Notes'' covers the following topics in details:&lt;br /&gt;
*Tested Platforms&lt;br /&gt;
*What Is New&lt;br /&gt;
*Migration To Latest Version&lt;br /&gt;
*Known Issues&lt;br /&gt;
*Environment Related Observation&lt;br /&gt;
*Documentation Issues&lt;br /&gt;
&lt;br /&gt;
===Audience===&lt;br /&gt;
&lt;br /&gt;
''OpenClovis Release Notes'' addresses system integrators, designers, and system architects. To use SAFplus Platform, you must be aware of the fundamentals of operation, management, and configuration of telecom and networking domains. You must also be familiar with C programming, UML notations, and have basic knowledge of Linux.&lt;br /&gt;
&lt;br /&gt;
===Documentation Conventions===&lt;br /&gt;
&lt;br /&gt;
This guide uses different fonts and symbols to differentiate between document elements and types of information. These conventions are summarized in the following table.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;  width=&amp;quot;680&amp;quot;&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Notation &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Description&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|style=&amp;quot;color:black&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;Code&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
This font denotes the C code provided in various examples.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|Cross reference&lt;br /&gt;
|&lt;br /&gt;
This font denotes a hyperlink. You can click on the hyperlink text to access the reference location, which can be either a section within the User Guide or a URL link. A cross reference refers to a section name and accesses the first page of that section.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''Bold Text''' &lt;br /&gt;
|&lt;br /&gt;
Menu items and button names.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''''Italic Text''''' &lt;br /&gt;
|&lt;br /&gt;
Variables for which you enter values.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]This indicates the presence of notes or annotations, related to the context of the document.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Caution.png]]This indicates that certain precautionary measures must be taken before performing a particular task.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Info.png]]This indicates that additional information is provided to you.&lt;br /&gt;
&lt;br /&gt;
===Related Documents===&lt;br /&gt;
&lt;br /&gt;
For additional information about OpenClovis products, refer to the following guides:&lt;br /&gt;
* '''SAFplus Platform SA Forum Compliance''' describes the level of compliance of OpenClovis SAFplus Platform and its Application Programming Interface (API) with the relevant Service Availability Forum Specifications.&lt;br /&gt;
* '''SAFplus Platform Installation Guide''' provides the system requirements, installation procedure for OpenClovis SAFplus Platform, IDE, and the Evaluation System.&lt;br /&gt;
* '''SAFplus Platform Sample Application Tutorial''' explains the steps to create and build a sample model using OpenClovis IDE and OpenClovis SAFplus Platform. It also provides troubleshooting information for this process. This provides the logical first step in understanding the SAFplus Platform offering.&lt;br /&gt;
* '''SAFplus Platform Evaluation System User Guide''' provides all the required information to configure and run the sample models packaged within the Evaluation System. This document also provides good understanding of OpenClovis SAFplus Platform's functionality. This is the natural follow on to the ''OpenClovis Sample Application Tutorial'' as it builds on the example created in that document. &lt;br /&gt;
* '''SAFplus Platform SDK User Guide''' provides information about SAFplus Availability/Scalability Platform architecture, various SAFplus Platform components, and their interactions. This guide helps you to configure the OpenClovis SAFplus Platform components, compile, and execute the SAFplus Platform code to build your custom application.&lt;br /&gt;
* '''SAFplus Platform IDE User Guide''' describes the usage of Integrated Development Environment (IDE), a graphical development environment that complements the SAFplus Platform. This guide helps you to understand how to use the various features of the IDE to build the application.&lt;br /&gt;
* '''SAFplus Platform Log Tool User Guide''' provides information about the usage of OpenClovis Log Tool. OpenClovis Log Tool is an interactive utility that allows you to view binary log files in a readable format and hence monitor system errors, warnings, and other log information. Log Tool allows you to format the &amp;lt;code&amp;gt;.log&amp;lt;/code&amp;gt; files and filter them to view the required entries.&lt;br /&gt;
* '''SAFplus Platform API Reference Guide''' is provided for each component. It describes the Application Programming Interface (API), Service Model, and Management Information Model of the various OpenClovis Application Service Platform (SAFplus Platform) services. It helps the developer to understand the capabilities of the SAFplus Platform services and the APIs provided by these services.&lt;br /&gt;
* '''SAFplus Platform Console Reference Guide''' provides details about managing applications built on SAFplus Platform using the SAFplus Platform runtime debug console commands. SAFplus Platform Console commands can be used to manage, monitor, and test your application.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Online Technical Support===&lt;br /&gt;
&lt;br /&gt;
OpenClovis customers and partners can register on our Web site and receive personalized services and information. If you need any support or assistance while working on OpenClovis products, you can access the following: URL: http://www.openclovis.com. Send your queries to: support@openclovis.com. Open source community support is available at: http://www.openclovis.org/forum.&lt;br /&gt;
&lt;br /&gt;
===Documentation Feedback===&lt;br /&gt;
&lt;br /&gt;
We are interested in hearing from our customers on the documentation provided with the product. Let us know your comments and suggestions on improving the documentation at OpenClovis Inc. Send your comments to: support@openclovis.com. Post your feedback on documentation in the page on our documentation wiki located at [http://help.openclovis.com http://help.openclovis.com].&lt;br /&gt;
&lt;br /&gt;
=='''Tested Platforms'''==&lt;br /&gt;
&lt;br /&gt;
This chapter provides the details of the platforms on which OpenClovis SAFplus Platform have been tested and validated.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Tested Platform Configurations''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;150&amp;quot;| Platform&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Configuration&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Hardware&lt;br /&gt;
|&lt;br /&gt;
* ATCA 5U Chassis - Schroff, ASIS&lt;br /&gt;
* ATCA 12U Chassis - Schroff, Sanmina, HP, Sun Netra, Radisys, Huawei Tecal Server&lt;br /&gt;
* Pigeon Point Systems ShMM300 and ShMM500 based Shelf Controllers&lt;br /&gt;
* Radisys Promentum 60x0 and its 2100 Switch/Shelf Controller blades&lt;br /&gt;
* CPU Blades:&lt;br /&gt;
** Intel Xeon based server cards&lt;br /&gt;
** Intel Pentium and Xeon based desktops and rack mount servers (RMS)&lt;br /&gt;
** Intel Itanium based RMS&lt;br /&gt;
** AMD Opteron based ATCA cards&lt;br /&gt;
** AMD Opteron and Athlon based desktops&lt;br /&gt;
** PowerPC based AMCs&lt;br /&gt;
** PowerPC based desktops&lt;br /&gt;
** Huawei Tecal BH23&lt;br /&gt;
** Sun 3020 and 3090&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Software&lt;br /&gt;
|&lt;br /&gt;
* Wind River PNE-LE 1.2 (2.6.10 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 1.3 (2.6.14 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 1.4 (2.6.14 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 2.0 (2.6.21 kernel) on CPU blades&lt;br /&gt;
* MontaVista Linux Carrier Grade Edition 5.0 (2.6.21 kernel)on CPU Blades&lt;br /&gt;
* QNX Neutrino RTOS 6.3.2&lt;br /&gt;
* Pigeon Point Systems Shelf Manager version 2.2.1 on ShMM300, ShMM500&lt;br /&gt;
* SCM software version 1.7 on ATCA 2100 Shelf Manager&lt;br /&gt;
* OpenHPI 2.8.1 and 2.10.2&lt;br /&gt;
* Radisys HPI Client Library (HCL) version 1.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For more details on the hardware and software requirements and the steps to install OpenClovis SAFplus Platform and IDE, refer to ''OpenClovis Installation Guide''.&lt;br /&gt;
&lt;br /&gt;
=='''What Is New'''==&lt;br /&gt;
&lt;br /&gt;
This chapter outlines the new features and enhancements provided by OpenClovis SAFplus Platform and IDE for Release 5.0.&lt;br /&gt;
&lt;br /&gt;
===Features of OpenClovis SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
====General Features====&lt;br /&gt;
&lt;br /&gt;
* '''Support for Wind River PNELE 2.0''': OpenClovis SDK can seamlessly build SAFplus Platform and binaries for Wind River Platform for Network Equipment Linux Edition 2.0 on all supported SDK platforms, either using the build tool-chain of OpenClovis or of the development environment of Wind River.&lt;br /&gt;
&lt;br /&gt;
====High Availability (HA)====&lt;br /&gt;
&lt;br /&gt;
*'''ISSU - In Service Software Upgrade'''&lt;br /&gt;
Supports middleware upgrade in a rolling (in-service) or single-step mode.&lt;br /&gt;
&lt;br /&gt;
'''Single-Step'''&lt;br /&gt;
For deployment of non-backwards compatible software, or rapid deployment of software.  This method stops the relevant services on all nodes (causing an outage) and then upgrades that software and restarts.  Note that services are stopped at various granularity levels depending on what is being upgraded.  In other words, application A can be taken out-of-service and upgraded across the cluster without affecting application B running on the same nodes.&lt;br /&gt;
&lt;br /&gt;
'''Inservice Rolling'''&lt;br /&gt;
This is the most commonly known telecom quality upgrade method.  For deployment of backwards-compatible software across the cluster, this method stops service in one &amp;quot;upgrade unit&amp;quot; at a time, upgrades the software and restarts before stopping the next &amp;quot;upgrade unit&amp;quot;.  This process continues iteratively until the entire cluster is upgraded.  Since the available redundant capacity takes over for the unit being upgraded service will be unaffected.&lt;br /&gt;
&lt;br /&gt;
====Infrastructure and Communications====&lt;br /&gt;
&lt;br /&gt;
====Group Membership Service (GMS) over TIPC====&lt;br /&gt;
&lt;br /&gt;
By default GMS/openais is now compiled to run over TIPC.&lt;br /&gt;
&lt;br /&gt;
====SAF Message Service====&lt;br /&gt;
&lt;br /&gt;
SAF messaging data types and APIs supported by OpenClovis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''classes/types:'''&lt;br /&gt;
&lt;br /&gt;
*SaMsgMessageT&lt;br /&gt;
*SaMsgHandleT&lt;br /&gt;
*SaMsgQueueStatusT&lt;br /&gt;
*SaMsgQueueHandleT&lt;br /&gt;
*SaMsgSenderIdT&lt;br /&gt;
*SaMsgQueueCreationAttributesT&lt;br /&gt;
*SaMsgQueueOpenFlagsT&lt;br /&gt;
*SaMsgQueueGroupPolicyT&lt;br /&gt;
*SaMsgQueueGroupNotificationBufferT&lt;br /&gt;
*SaMsgQueueGroupNotificationT&lt;br /&gt;
*SaMsgQueueUsageT&lt;br /&gt;
*SaMsgCallbacksT&lt;br /&gt;
*SaMsgMessageReceivedCallbackT&lt;br /&gt;
&lt;br /&gt;
*'''APIs:'''&lt;br /&gt;
&lt;br /&gt;
*saMsgMessageSend&lt;br /&gt;
*saMsgMessageSendAsync&lt;br /&gt;
*saMsgQueueOpen&lt;br /&gt;
*saMsgQueueClose&lt;br /&gt;
*saMsgQueueStatusGet&lt;br /&gt;
*saMsgMessageGet&lt;br /&gt;
*saMsgMessageDataFree&lt;br /&gt;
*saMsgQueueGroupCreate&lt;br /&gt;
*saMsgQueueGroupInsert&lt;br /&gt;
*saMsgQueueGroupTrack&lt;br /&gt;
*saMsgQueueGroupNotificationFree&lt;br /&gt;
*saMsgInitialize&lt;br /&gt;
*saMsgFinalize&lt;br /&gt;
*saMsgDispatch&lt;br /&gt;
&lt;br /&gt;
====SAF Component cleanup script support====&lt;br /&gt;
&lt;br /&gt;
5.0 introduces support to configure cleanup commands for SA-AWARE components using the Openclovis IDE. The cleanup command is invoked by AMF on component cleanup or abrupt terminations.&lt;br /&gt;
&lt;br /&gt;
===System Management===&lt;br /&gt;
&lt;br /&gt;
*Support of net-snmp 5.4.2.&lt;br /&gt;
*SNMP Traps in 64 Bit architectures.&lt;br /&gt;
&lt;br /&gt;
===Platform Management===&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform provides pre-integrated support for commonly used ATCA platforms. All service affecting events reported by the shelf manager via HPI are intercepted and service on affected hardware is migrated to standby equipment, ensuring continuity of service. &lt;br /&gt;
&lt;br /&gt;
This support is provided with the '''Platform Support Package (PSP)''' for Piegon Point Shelf manager 500ShMM via openHPI. &lt;br /&gt;
&lt;br /&gt;
PSP is available as a separate product, please contact OpenClovis Sales for further information.&lt;br /&gt;
&lt;br /&gt;
===Features of OpenClovis IDE===&lt;br /&gt;
&lt;br /&gt;
* '''Running SAFplus Platform without manageability components''': IDE is having the support for enable/disable SAFplus Platform components. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
* '''AMF Clean-up script''': IDE is having support to specify the cleanup command in SAF Component. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
* '''Versioning the Configuration Files''': IDE is having support for versioning the configuration files.&lt;br /&gt;
* '''SAF Messaging''': IDE is having support to enable the SAF messaging. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform Run-Time Director===&lt;br /&gt;
&lt;br /&gt;
A new product, the SAFplus Platform Run-Time Director(ARD), provides cluster management of the SAFplus Platform via a web interface.  This new product is available separately, please contact OpenClovis for demonstration and evaluation.  The ARD has the following features:&lt;br /&gt;
&lt;br /&gt;
* Software Distribution:  Allows individual applications to be packaged in a &amp;quot;bundle&amp;quot; and be deployed to any set of nodes in the cluster.&lt;br /&gt;
* Inservice Software Upgrade: Supports application upgrade in a rolling (in-service) or single-step mode. &lt;br /&gt;
* WYSIWYG: Provides intuitive cluster management via an HTTP (web) interface.&lt;br /&gt;
* AJAX: Displays all SAF AMF entities and their current status -- uses asynchronous Javascript requests to dynamically update browser when changes occur.&lt;br /&gt;
* Dynamic AMF:  Allows modification of AMF entity state and supports creation/deletion of AMF entities.&lt;br /&gt;
* High Availability:  The ARD runs in unprotected or 2N redundancy mode.&lt;br /&gt;
* Python AMF API:  Provides an easy-to-use CLI/programmatic API for cluster management&lt;br /&gt;
* Easy installation:  The ARD can install itself into a running SAFplus Platform model, and therefore requires no changes to your existing model.&lt;br /&gt;
* Extensible: The ARD is built on top of TurboGears, a popular open source web mega-framework.  Thus it provides a basis and example for your custom SaaS or EMS project.&lt;br /&gt;
* Integration of Platform Support Package (PSP), provides chassis configuration through OpenHPI.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Documentation===&lt;br /&gt;
&lt;br /&gt;
* OpenClovis Documentation is provided in two formats now, PDF and HTML. They both contain the same information.&lt;br /&gt;
* A new ''OpenClovis SA Forum Compliance'' document has been added&lt;br /&gt;
* As a courtesy, all relevant SA Forum specifications are supplied as part of our OpenClovis documentation package (only in PDF format).&lt;br /&gt;
* A new ''OpenClovis Sample Application Tutorial'' has been added, replacing the former Modeling Tutorial. The new document provides explanation for the various steps involved in creating and running a new application.&lt;br /&gt;
* The ''OpenClovis SDK User Guide'' has been extended to cover many additional topics, including:&lt;br /&gt;
** Communication infrastructure&lt;br /&gt;
** Hardware platform support&lt;br /&gt;
** How to debug SAFplus Platform based applications&lt;br /&gt;
** Build and deployment&lt;br /&gt;
* The ''OpenClovis API Reference Guide'' has been significantly revised:&lt;br /&gt;
** Numerous coding examples&lt;br /&gt;
** New reference pages for API error codes for easy lookup&lt;br /&gt;
** HTML version of API Refernce Guide is heavily cross-referenced, allowing easy navigation between the various programming construcs&lt;br /&gt;
* New, complete ''OpenClovis SAFplus Platform Console Reference Guide'' as a separate document&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]From this release, the ''Debug CLI'' has been renamed to ''SAFplus Platform Console''.&lt;br /&gt;
&lt;br /&gt;
=='''Migration To Latest Version'''==&lt;br /&gt;
&lt;br /&gt;
Migration of a project or model from an earlier version of the OpenClovis IDE to the most recent version is performed automatically when the model it opened for the first time in the newer vesion. The IDE auto-detects the project's version and changes the internal files so that the information is in valid format and can be read by the current version. It also provides an option to create a backup of the project while performing the migration. For more information, refer to ''OpenClovis IDE User Guide'', Section ''Migrating Project''. IDE supports migration from R2.3 and above.&lt;br /&gt;
&lt;br /&gt;
Any issues regarding migration from a previous version of the IDE are documented below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Change in Log File Locations===&lt;br /&gt;
&lt;br /&gt;
As of release 3.0 all SAFplus Platform runtime log files are created in the &amp;lt;code&amp;gt;var/log&amp;lt;/code&amp;gt; subdirectory of the SAFplus Platform install directory. It is recommended that you update existing models to also use this directory. To update an existing model edit the clLog.xml file in the model's src/config directory. Change all references of '''.:log''' in the &amp;lt;code&amp;gt;&amp;lt;fileLocation&amp;gt;&amp;lt;/code&amp;gt; elements&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;fileLocation&amp;gt;.:log&amp;lt;/fileLocation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to '''.:var/log'''&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;fileLocation&amp;gt;.:var/log&amp;lt;/fileLocation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the model is rebuilt and deployed these new settings will take effect.&lt;br /&gt;
&lt;br /&gt;
===gmsConfig.xml file===&lt;br /&gt;
&lt;br /&gt;
Models of R2.3 may not contain the gmsConfig.xml file if GMS configuration is not done. If you migrate this project you will get error message saying that Migration was unable to create this file. But this is not going to affect further use of model. Model will be OK and user can make changes to it from IDE, generate source, build it, etc without any problem.&lt;br /&gt;
&lt;br /&gt;
Although this error is not going to affect the functionality of the model, there is a work around for this. Before migrating your model, just open up the model in your old IDE setup. Launch &amp;quot;SAFplus Platform Component Configuration&amp;quot; dialog from the Clovis menu. Press OK. Now just migrate the model with new IDE setup, you will not get this error. Bug has been raised for this and it will be fixed in next release.&lt;br /&gt;
&lt;br /&gt;
=='''Known Issues'''==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the known issues in the current release and provides the associated workarounds. These issues arise due to deviation from the normal functioning of the system or as a result of an unexpected behavior of a component or a service.&lt;br /&gt;
&lt;br /&gt;
===Known Issues of OpenClovis SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
Following are the known issues for OpenClovis SAFplus Platform:&lt;br /&gt;
&lt;br /&gt;
*'''Infrastructure and Communications'''&lt;br /&gt;
** '''TIPC address:''' TIPC with 1.5.12 versions was found to give problems (link unstable) when you have 2 different TIPC netids configured for the same TIPC address. This issue is not seen with the 1.7.x TIPC releases, but in general we recommend you to keep the TIPC addresses unique and not collide with the same addresses on nodes configured with different TIPC netids. One of the symptoms  of this is that the TIPC link between 2 machine starts going UP and DOWN continuously when there is another machine in the network, whose TIPC address is conflicting with address of one of those 2 machines. The behavior can be observed through continuous execution of command &amp;quot;tipc-config -l&amp;quot; or through &amp;quot;dmesg&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
** '''Bug ID #7269'''  A cluster having a mixture of 32bit little endian, 32bit big endian and 64 bit little endian machines/nodes may find that the GMS service in inadvertently terminates.&lt;br /&gt;
*** '''Workaround''' - None&lt;br /&gt;
** '''aspinfo known issues:''' (1) On some systems, especially systems with Python version 2.3, aspinfo can be slow to respond. (2) Some corner cases may not be properly handled and aspinfo may prematurely exit, dumping its Python stack.&lt;br /&gt;
&lt;br /&gt;
* '''Platform Management'''&lt;br /&gt;
** '''Bug ID #7569''' No network connectivity to Shelf Management Module manifests as HPI version mismatch error in Chassis Manager and potentially corrupts openhpi uid map file.&lt;br /&gt;
*** '''Workaround''' - If you see this error, check network connectivity to the Shelf Management Module's IP address from the node running Chassis Manager.  If you still see this error after ensuring connectivity, delete the openhpi_uid.map file found in your SAFplus Platform sandbox's varpath, typically &amp;lt;code&amp;gt;/root/asp/var/run/openhpi_uid.map&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* '''System Management'''&lt;br /&gt;
** '''Bug ID #7313''' If an Alarm Server is restarted after it published an alarm, it won't allow to clear/publish that alarm again.&lt;br /&gt;
*** '''Workaround''' - Currently there is no workaround.&lt;br /&gt;
&lt;br /&gt;
* '''SAF Compliance'''&lt;br /&gt;
** '''Deviation from SAF in Event Service:''' Event Service does not yet support Event Retention as specified in SAF specification. The retention time specified in the clEventPublish() API would have no effect.&lt;br /&gt;
** '''Bug in SAF specificaion B11:''' The clEventDataGet() API of Event Service is in compliance with the SAF specification B11. This allows the user to either allocate memory for the event payload or obtain it from the API by passing a pointer. The latter is not possible with this API as the argument needs to be a pointer to a pointer which is not the case. As per the new specification and the recommended way the user is always required to allocate and free the memory.&lt;br /&gt;
&lt;br /&gt;
===Known Issues of OpenClovis IDE===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Bug ID # 6543: X Error in Ubuntu Installation.''' Starting the IDE in '''Ubuntu''' installation may result some X errors in the console. This is not an IDE issue, this will not affect any of the IDE functionalities.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Workaround''' - See the ''Limitations'' section of the ''OpenClovis IDE User Guide''.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''SNMP MIB Enumerated Integer Construct Limitations''': During SNMP code generation all enumerated integer labels are converted to &amp;lt;code&amp;gt;#define&amp;lt;/code&amp;gt; statements. The constant names used in these statements are the enumerated integer labels converted to upper case. Because of this the all labels used within an enumerated integer construct must be unique regardless of case.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;'''SNMP MIB V1 TRAP-TYPE Construct Not Supported''': Due to an issue in the Net-SNMP mib2c compiler code generation for MIBs using the V1 TRAP-TYPE construct does not work properly.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Workaround''' - To generate trap code from an SNMP MIB use the SNMP V2 NOTIFICATION-TYPE construct.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Known Issues of Install Package===&lt;br /&gt;
&lt;br /&gt;
* '''Bug ID # 6749: Potential conflict with net-snmp package on local system''': In certain rare instances, building OpenHPI from the included third-party packages during SDK installation fails owing to a conflict with an already-installed version of NetSNMP on the system.  In these instances, it is recommended that NetSNMP be removed from the local system before installing OpenClovis SDK, and that it be reinstalled after completing the SDK installation.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Red Hat Enterprise 4''': On a Red Hat Enterprise Linux 4 system, the 'Development Tools' subset of packages must be installed to cover the requirements for installing OpenClovis SDK.  In general, an installation with the default package set contains all requirements for installation.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Fedora Core 6''': On a Fedora Core 6 system, installation of OpenClovis SAFplus Platform automatically builds and installs the TIPC opensource package.  To build TIPC, the kernel headers must be present and so these are automatically installed (by our ./preinstall-fedora-core.sh script) using the &amp;quot;yum install kernel-devel&amp;quot; command.  On rare configurations, this command does not work correctly.  It is supposed to install headers so that the symbolic link located at &amp;quot;/lib/modules/`uname -r`/build&amp;quot; points to a valid directory of Linux header files.  However, on some systems this symbolic link points to &amp;quot;/usr/src/kernels/2.6.22.14-72.fc6-i586&amp;quot; but the headers are actually installed in &amp;quot;/usr/src/kernels/2.6.22.14-72.fc6-i686&amp;quot;  (note 'i586' vs 'i686').  To resolve this problem, change the symbolic link to point to the correct directory name, and then restart the OpenClovis SAFplus Platform installation.&lt;br /&gt;
&lt;br /&gt;
* '''Configuring TIPC and assigning the SAFplus Platform node address''' to an OpenClovis SAFplus Platform is done by SAFplus Platform start up script. But if manual configuration of TIPC is allowed.  Misconfiguration (such as assigning 2 nodes the same TIPC address) will result in an unstable system. When this happens the whole system (all the SAFplus Platform nodes including the ones which are already up and running properly) have to be brought down, the TIPC kernel driver unloaded (to remove its configuration) and the system restarted.&lt;br /&gt;
&lt;br /&gt;
* '''Installation of SQLite using Preinstall script''': The Preinstall script installs SQLite by default as database engine. It locates SQLite - if it is already installed - without verifying version number. If its version is older than 3.3.13, then SAFplus Platform will fail to start.&lt;br /&gt;
** '''Workaround''' - Use SQLite 3.3.13 or newer. The source code can be downloaded from http://www.sqlite.org/download.html. The user can install the latest version of SQLite if its not present in the repository.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Solaris 10/SPARC (beta)''': Installation of OpenClovis SAFplus Platform requires the following third party packages installed via either installation media or using pkgadd with packages obtained from http://www.sunfreeware.com/.  Missing third-party packages may cause unpredictable behavior during installation and SDK use.&lt;br /&gt;
** db-4.2.52&lt;br /&gt;
** fileutils&lt;br /&gt;
** flex&lt;br /&gt;
** gcc-3.4.2&lt;br /&gt;
** gdbm-1.8.3&lt;br /&gt;
** glib-2.14.1&lt;br /&gt;
** gmake&lt;br /&gt;
** gtar&lt;br /&gt;
** libintl&lt;br /&gt;
** libiconv&lt;br /&gt;
** ncurses&lt;br /&gt;
** openssl&lt;br /&gt;
** pkgconfig&lt;br /&gt;
** python-2.5.1&lt;br /&gt;
** readline&lt;br /&gt;
** snprintf&lt;br /&gt;
** tipc-solaris-1.7.5 or SUNWtipc&lt;br /&gt;
** SUNWbtool&lt;br /&gt;
** SUNWsprot&lt;br /&gt;
** SUNWhea&lt;br /&gt;
** wget&lt;br /&gt;
&lt;br /&gt;
=='''Environment Related Observation'''==&lt;br /&gt;
&lt;br /&gt;
* '''Bug ID #7549''' When SAFplus Platform is running in non simulation mode, if SAFplus Platform is started from one sandbox, then it can be stopped/zapped from another sandbox.&lt;br /&gt;
&lt;br /&gt;
===Enabled Firewall Can Cause SAFplus Platform to Shutdown===&lt;br /&gt;
The enablement of a firewall on a system running a deployed SAFplus Platform image can cause the software to shutdown. An indication that you may be running into this problem is if you see an entry similar to the following in your log file (in the log file it is one line):&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Wed Sep 26 15:06:54 2007   (SCNodeI0.10499 : GMS.---.---.00036 :  ERROR)&lt;br /&gt;
   [clGmsEngine.c:448] No nodes in the cluster view to run leader &lt;br /&gt;
   electionLeader Election Aborted&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
To resolve this problem disable all filtering in the Netfilter framework by issuing the following command.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -F&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reusing A Project Area With New Version of OpenClovis SDK===&lt;br /&gt;
Every Project Area is associated with an installation of OpenClovis SDK at a given location.  If one elects to reinstall the SDK at a different location or install a newer version at a different location, the project area will stay associated with the original SDK location.  This allows one to work with multiple versions of the SDK simultaneously.&lt;br /&gt;
In order to use an existing project area with a different or moved installation of OpenClovis SDK, remove the &amp;lt;code&amp;gt;.config&amp;lt;/code&amp;gt; file from your project area directory and re-run &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt; as you normally would to work with a model.&lt;br /&gt;
&lt;br /&gt;
===Running Multiple SAFplus Platform Clusters in the same Subnet===&lt;br /&gt;
If you are running multiple SAFplus Platform clusters within the same subnet, please ensure that the &amp;lt;code&amp;gt;TIPC network ID&amp;lt;/code&amp;gt; selected for each cluster is unique.&lt;br /&gt;
&lt;br /&gt;
=='''Documentation Issues'''==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the known issues with the OpenClovis Documentation shipped along with the product.&lt;br /&gt;
&lt;br /&gt;
* Formatting issues&lt;br /&gt;
** Following cross-references pointing to a heading, the PDF viewer will jump to the end of the previous page if the heading is on the top of a page.&lt;br /&gt;
** Firefox web browsers sometimes do not correctly jump to intra-page anchors when the user clicks on a reference. This is a known issue with Firefox. The workaround is to click on Back button and then on the reference again. The browser jumps to the correct position for the 2nd time.&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/relnotes</id>
		<title>Doc:latest/relnotes</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/relnotes"/>
				<updated>2011-10-24T19:29:55Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* Known Issues of Install Package */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Preface'''==&lt;br /&gt;
&lt;br /&gt;
Welcome to ''OpenClovis Release Notes''. This document provides information about the details of the platforms on which OpenClovis SAFplus Availability/Scalability Platform (the SAFplus Platform for short) and Integrated Development Environment (IDE) have been tested and validated for SDK Release 6.0. It contains the additional features and enhancements of the product since the previous release. It also summarizes the known issues and limitations of the product and provides workaround wherever applicable.&lt;br /&gt;
&lt;br /&gt;
===Key Topics===&lt;br /&gt;
&lt;br /&gt;
''OpenClovis Release Notes'' covers the following topics in details:&lt;br /&gt;
*Tested Platforms&lt;br /&gt;
*What Is New&lt;br /&gt;
*Migration To Latest Version&lt;br /&gt;
*Known Issues&lt;br /&gt;
*Environment Related Observation&lt;br /&gt;
*Documentation Issues&lt;br /&gt;
&lt;br /&gt;
===Audience===&lt;br /&gt;
&lt;br /&gt;
''OpenClovis Release Notes'' addresses system integrators, designers, and system architects. To use SAFplus Platform, you must be aware of the fundamentals of operation, management, and configuration of telecom and networking domains. You must also be familiar with C programming, UML notations, and have basic knowledge of Linux.&lt;br /&gt;
&lt;br /&gt;
===Documentation Conventions===&lt;br /&gt;
&lt;br /&gt;
This guide uses different fonts and symbols to differentiate between document elements and types of information. These conventions are summarized in the following table.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;  width=&amp;quot;680&amp;quot;&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Notation &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Description&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|style=&amp;quot;color:black&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;Code&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
This font denotes the C code provided in various examples.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|Cross reference&lt;br /&gt;
|&lt;br /&gt;
This font denotes a hyperlink. You can click on the hyperlink text to access the reference location, which can be either a section within the User Guide or a URL link. A cross reference refers to a section name and accesses the first page of that section.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''Bold Text''' &lt;br /&gt;
|&lt;br /&gt;
Menu items and button names.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''''Italic Text''''' &lt;br /&gt;
|&lt;br /&gt;
Variables for which you enter values.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]This indicates the presence of notes or annotations, related to the context of the document.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Caution.png]]This indicates that certain precautionary measures must be taken before performing a particular task.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Info.png]]This indicates that additional information is provided to you.&lt;br /&gt;
&lt;br /&gt;
===Related Documents===&lt;br /&gt;
&lt;br /&gt;
For additional information about OpenClovis products, refer to the following guides:&lt;br /&gt;
* '''SAFplus Platform SA Forum Compliance''' describes the level of compliance of OpenClovis SAFplus Platform and its Application Programming Interface (API) with the relevant Service Availability Forum Specifications.&lt;br /&gt;
* '''SAFplus Platform Installation Guide''' provides the system requirements, installation procedure for OpenClovis SAFplus Platform, IDE, and the Evaluation System.&lt;br /&gt;
* '''SAFplus Platform Sample Application Tutorial''' explains the steps to create and build a sample model using OpenClovis IDE and OpenClovis SAFplus Platform. It also provides troubleshooting information for this process. This provides the logical first step in understanding the SAFplus Platform offering.&lt;br /&gt;
* '''SAFplus Platform Evaluation System User Guide''' provides all the required information to configure and run the sample models packaged within the Evaluation System. This document also provides good understanding of OpenClovis SAFplus Platform's functionality. This is the natural follow on to the ''OpenClovis Sample Application Tutorial'' as it builds on the example created in that document. &lt;br /&gt;
* '''SAFplus Platform SDK User Guide''' provides information about SAFplus Availability/Scalability Platform architecture, various SAFplus Platform components, and their interactions. This guide helps you to configure the OpenClovis SAFplus Platform components, compile, and execute the SAFplus Platform code to build your custom application.&lt;br /&gt;
* '''SAFplus Platform IDE User Guide''' describes the usage of Integrated Development Environment (IDE), a graphical development environment that complements the SAFplus Platform. This guide helps you to understand how to use the various features of the IDE to build the application.&lt;br /&gt;
* '''SAFplus Platform Log Tool User Guide''' provides information about the usage of OpenClovis Log Tool. OpenClovis Log Tool is an interactive utility that allows you to view binary log files in a readable format and hence monitor system errors, warnings, and other log information. Log Tool allows you to format the &amp;lt;code&amp;gt;.log&amp;lt;/code&amp;gt; files and filter them to view the required entries.&lt;br /&gt;
* '''SAFplus Platform API Reference Guide''' is provided for each component. It describes the Application Programming Interface (API), Service Model, and Management Information Model of the various OpenClovis Application Service Platform (SAFplus Platform) services. It helps the developer to understand the capabilities of the SAFplus Platform services and the APIs provided by these services.&lt;br /&gt;
* '''SAFplus Platform Console Reference Guide''' provides details about managing applications built on SAFplus Platform using the SAFplus Platform runtime debug console commands. SAFplus Platform Console commands can be used to manage, monitor, and test your application.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Online Technical Support===&lt;br /&gt;
&lt;br /&gt;
OpenClovis customers and partners can register on our Web site and receive personalized services and information. If you need any support or assistance while working on OpenClovis products, you can access the following: URL: http://www.openclovis.com. Send your queries to: support@openclovis.com. Open source community support is available at: http://www.openclovis.org/forum.&lt;br /&gt;
&lt;br /&gt;
===Documentation Feedback===&lt;br /&gt;
&lt;br /&gt;
We are interested in hearing from our customers on the documentation provided with the product. Let us know your comments and suggestions on improving the documentation at OpenClovis Inc. Send your comments to: support@openclovis.com. Post your feedback on documentation in the page on our documentation wiki located at [http://help.openclovis.com http://help.openclovis.com].&lt;br /&gt;
&lt;br /&gt;
=='''Tested Platforms'''==&lt;br /&gt;
&lt;br /&gt;
This chapter provides the details of the platforms on which OpenClovis SAFplus Platform have been tested and validated.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Tested Platform Configurations''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;150&amp;quot;| Platform&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Configuration&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Hardware&lt;br /&gt;
|&lt;br /&gt;
* ATCA 5U Chassis - Schroff, ASIS&lt;br /&gt;
* ATCA 12U Chassis - Schroff, Sanmina, HP, Sun Netra, Radisys, Huawei Tecal Server&lt;br /&gt;
* Pigeon Point Systems ShMM300 and ShMM500 based Shelf Controllers&lt;br /&gt;
* Radisys Promentum 60x0 and its 2100 Switch/Shelf Controller blades&lt;br /&gt;
* CPU Blades:&lt;br /&gt;
** Intel Xeon based server cards&lt;br /&gt;
** Intel Pentium and Xeon based desktops and rack mount servers (RMS)&lt;br /&gt;
** Intel Itanium based RMS&lt;br /&gt;
** AMD Opteron based ATCA cards&lt;br /&gt;
** AMD Opteron and Athlon based desktops&lt;br /&gt;
** PowerPC based AMCs&lt;br /&gt;
** PowerPC based desktops&lt;br /&gt;
** Huawei Tecal BH23&lt;br /&gt;
** Sun 3020 and 3090&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Software&lt;br /&gt;
|&lt;br /&gt;
* Wind River PNE-LE 1.2 (2.6.10 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 1.3 (2.6.14 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 1.4 (2.6.14 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 2.0 (2.6.21 kernel) on CPU blades&lt;br /&gt;
* MontaVista Linux Carrier Grade Edition 5.0 (2.6.21 kernel)on CPU Blades&lt;br /&gt;
* QNX Neutrino RTOS 6.3.2&lt;br /&gt;
* Pigeon Point Systems Shelf Manager version 2.2.1 on ShMM300, ShMM500&lt;br /&gt;
* SCM software version 1.7 on ATCA 2100 Shelf Manager&lt;br /&gt;
* OpenHPI 2.8.1 and 2.10.2&lt;br /&gt;
* Radisys HPI Client Library (HCL) version 1.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For more details on the hardware and software requirements and the steps to install OpenClovis SAFplus Platform and IDE, refer to ''OpenClovis Installation Guide''.&lt;br /&gt;
&lt;br /&gt;
=='''What Is New'''==&lt;br /&gt;
&lt;br /&gt;
This chapter outlines the new features and enhancements provided by OpenClovis SAFplus Platform and IDE for Release 5.0.&lt;br /&gt;
&lt;br /&gt;
===Features of OpenClovis SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
====General Features====&lt;br /&gt;
&lt;br /&gt;
* '''Support for Wind River PNELE 2.0''': OpenClovis SDK can seamlessly build SAFplus Platform and binaries for Wind River Platform for Network Equipment Linux Edition 2.0 on all supported SDK platforms, either using the build tool-chain of OpenClovis or of the development environment of Wind River.&lt;br /&gt;
&lt;br /&gt;
====High Availability (HA)====&lt;br /&gt;
&lt;br /&gt;
*'''ISSU - In Service Software Upgrade'''&lt;br /&gt;
Supports middleware upgrade in a rolling (in-service) or single-step mode.&lt;br /&gt;
&lt;br /&gt;
'''Single-Step'''&lt;br /&gt;
For deployment of non-backwards compatible software, or rapid deployment of software.  This method stops the relevant services on all nodes (causing an outage) and then upgrades that software and restarts.  Note that services are stopped at various granularity levels depending on what is being upgraded.  In other words, application A can be taken out-of-service and upgraded across the cluster without affecting application B running on the same nodes.&lt;br /&gt;
&lt;br /&gt;
'''Inservice Rolling'''&lt;br /&gt;
This is the most commonly known telecom quality upgrade method.  For deployment of backwards-compatible software across the cluster, this method stops service in one &amp;quot;upgrade unit&amp;quot; at a time, upgrades the software and restarts before stopping the next &amp;quot;upgrade unit&amp;quot;.  This process continues iteratively until the entire cluster is upgraded.  Since the available redundant capacity takes over for the unit being upgraded service will be unaffected.&lt;br /&gt;
&lt;br /&gt;
====Infrastructure and Communications====&lt;br /&gt;
&lt;br /&gt;
====Group Membership Service (GMS) over TIPC====&lt;br /&gt;
&lt;br /&gt;
By default GMS/openais is now compiled to run over TIPC.&lt;br /&gt;
&lt;br /&gt;
====SAF Message Service====&lt;br /&gt;
&lt;br /&gt;
SAF messaging data types and APIs supported by OpenClovis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''classes/types:'''&lt;br /&gt;
&lt;br /&gt;
*SaMsgMessageT&lt;br /&gt;
*SaMsgHandleT&lt;br /&gt;
*SaMsgQueueStatusT&lt;br /&gt;
*SaMsgQueueHandleT&lt;br /&gt;
*SaMsgSenderIdT&lt;br /&gt;
*SaMsgQueueCreationAttributesT&lt;br /&gt;
*SaMsgQueueOpenFlagsT&lt;br /&gt;
*SaMsgQueueGroupPolicyT&lt;br /&gt;
*SaMsgQueueGroupNotificationBufferT&lt;br /&gt;
*SaMsgQueueGroupNotificationT&lt;br /&gt;
*SaMsgQueueUsageT&lt;br /&gt;
*SaMsgCallbacksT&lt;br /&gt;
*SaMsgMessageReceivedCallbackT&lt;br /&gt;
&lt;br /&gt;
*'''APIs:'''&lt;br /&gt;
&lt;br /&gt;
*saMsgMessageSend&lt;br /&gt;
*saMsgMessageSendAsync&lt;br /&gt;
*saMsgQueueOpen&lt;br /&gt;
*saMsgQueueClose&lt;br /&gt;
*saMsgQueueStatusGet&lt;br /&gt;
*saMsgMessageGet&lt;br /&gt;
*saMsgMessageDataFree&lt;br /&gt;
*saMsgQueueGroupCreate&lt;br /&gt;
*saMsgQueueGroupInsert&lt;br /&gt;
*saMsgQueueGroupTrack&lt;br /&gt;
*saMsgQueueGroupNotificationFree&lt;br /&gt;
*saMsgInitialize&lt;br /&gt;
*saMsgFinalize&lt;br /&gt;
*saMsgDispatch&lt;br /&gt;
&lt;br /&gt;
====SAF Component cleanup script support====&lt;br /&gt;
&lt;br /&gt;
5.0 introduces support to configure cleanup commands for SA-AWARE components using the Openclovis IDE. The cleanup command is invoked by AMF on component cleanup or abrupt terminations.&lt;br /&gt;
&lt;br /&gt;
===System Management===&lt;br /&gt;
&lt;br /&gt;
*Support of net-snmp 5.4.2.&lt;br /&gt;
*SNMP Traps in 64 Bit architectures.&lt;br /&gt;
&lt;br /&gt;
===Platform Management===&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform provides pre-integrated support for commonly used ATCA platforms. All service affecting events reported by the shelf manager via HPI are intercepted and service on affected hardware is migrated to standby equipment, ensuring continuity of service. &lt;br /&gt;
&lt;br /&gt;
This support is provided with the '''Platform Support Package (PSP)''' for Piegon Point Shelf manager 500ShMM via openHPI. &lt;br /&gt;
&lt;br /&gt;
PSP is available as a separate product, please contact OpenClovis Sales for further information.&lt;br /&gt;
&lt;br /&gt;
===Features of OpenClovis IDE===&lt;br /&gt;
&lt;br /&gt;
* '''Running SAFplus Platform without manageability components''': IDE is having the support for enable/disable SAFplus Platform components. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
* '''AMF Clean-up script''': IDE is having support to specify the cleanup command in SAF Component. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
* '''Versioning the Configuration Files''': IDE is having support for versioning the configuration files.&lt;br /&gt;
* '''SAF Messaging''': IDE is having support to enable the SAF messaging. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform Run-Time Director===&lt;br /&gt;
&lt;br /&gt;
A new product, the SAFplus Platform Run-Time Director(ARD), provides cluster management of the SAFplus Platform via a web interface.  This new product is available separately, please contact OpenClovis for demonstration and evaluation.  The ARD has the following features:&lt;br /&gt;
&lt;br /&gt;
* Software Distribution:  Allows individual applications to be packaged in a &amp;quot;bundle&amp;quot; and be deployed to any set of nodes in the cluster.&lt;br /&gt;
* Inservice Software Upgrade: Supports application upgrade in a rolling (in-service) or single-step mode. &lt;br /&gt;
* WYSIWYG: Provides intuitive cluster management via an HTTP (web) interface.&lt;br /&gt;
* AJAX: Displays all SAF AMF entities and their current status -- uses asynchronous Javascript requests to dynamically update browser when changes occur.&lt;br /&gt;
* Dynamic AMF:  Allows modification of AMF entity state and supports creation/deletion of AMF entities.&lt;br /&gt;
* High Availability:  The ARD runs in unprotected or 2N redundancy mode.&lt;br /&gt;
* Python AMF API:  Provides an easy-to-use CLI/programmatic API for cluster management&lt;br /&gt;
* Easy installation:  The ARD can install itself into a running SAFplus Platform model, and therefore requires no changes to your existing model.&lt;br /&gt;
* Extensible: The ARD is built on top of TurboGears, a popular open source web mega-framework.  Thus it provides a basis and example for your custom SaaS or EMS project.&lt;br /&gt;
* Integration of Platform Support Package (PSP), provides chassis configuration through OpenHPI.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Documentation===&lt;br /&gt;
&lt;br /&gt;
* OpenClovis Documentation is provided in two formats now, PDF and HTML. They both contain the same information.&lt;br /&gt;
* A new ''OpenClovis SA Forum Compliance'' document has been added&lt;br /&gt;
* As a courtesy, all relevant SA Forum specifications are supplied as part of our OpenClovis documentation package (only in PDF format).&lt;br /&gt;
* A new ''OpenClovis Sample Application Tutorial'' has been added, replacing the former Modeling Tutorial. The new document provides explanation for the various steps involved in creating and running a new application.&lt;br /&gt;
* The ''OpenClovis SDK User Guide'' has been extended to cover many additional topics, including:&lt;br /&gt;
** Communication infrastructure&lt;br /&gt;
** Hardware platform support&lt;br /&gt;
** How to debug SAFplus Platform based applications&lt;br /&gt;
** Build and deployment&lt;br /&gt;
* The ''OpenClovis API Reference Guide'' has been significantly revised:&lt;br /&gt;
** Numerous coding examples&lt;br /&gt;
** New reference pages for API error codes for easy lookup&lt;br /&gt;
** HTML version of API Refernce Guide is heavily cross-referenced, allowing easy navigation between the various programming construcs&lt;br /&gt;
* New, complete ''OpenClovis SAFplus Platform Console Reference Guide'' as a separate document&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]From this release, the ''Debug CLI'' has been renamed to ''SAFplus Platform Console''.&lt;br /&gt;
&lt;br /&gt;
=='''Migration To Latest Version'''==&lt;br /&gt;
&lt;br /&gt;
Migration of a project or model from an earlier version of the OpenClovis IDE to the most recent version is performed automatically when the model it opened for the first time in the newer vesion. The IDE auto-detects the project's version and changes the internal files so that the information is in valid format and can be read by the current version. It also provides an option to create a backup of the project while performing the migration. For more information, refer to ''OpenClovis IDE User Guide'', Section ''Migrating Project''. IDE supports migration from R2.3 and above.&lt;br /&gt;
&lt;br /&gt;
Any issues regarding migration from a previous version of the IDE are documented below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Change in Log File Locations===&lt;br /&gt;
&lt;br /&gt;
As of release 3.0 all SAFplus Platform runtime log files are created in the &amp;lt;code&amp;gt;var/log&amp;lt;/code&amp;gt; subdirectory of the SAFplus Platform install directory. It is recommended that you update existing models to also use this directory. To update an existing model edit the clLog.xml file in the model's src/config directory. Change all references of '''.:log''' in the &amp;lt;code&amp;gt;&amp;lt;fileLocation&amp;gt;&amp;lt;/code&amp;gt; elements&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;fileLocation&amp;gt;.:log&amp;lt;/fileLocation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to '''.:var/log'''&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;fileLocation&amp;gt;.:var/log&amp;lt;/fileLocation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the model is rebuilt and deployed these new settings will take effect.&lt;br /&gt;
&lt;br /&gt;
===gmsConfig.xml file===&lt;br /&gt;
&lt;br /&gt;
Models of R2.3 may not contain the gmsConfig.xml file if GMS configuration is not done. If you migrate this project you will get error message saying that Migration was unable to create this file. But this is not going to affect further use of model. Model will be OK and user can make changes to it from IDE, generate source, build it, etc without any problem.&lt;br /&gt;
&lt;br /&gt;
Although this error is not going to affect the functionality of the model, there is a work around for this. Before migrating your model, just open up the model in your old IDE setup. Launch &amp;quot;SAFplus Platform Component Configuration&amp;quot; dialog from the Clovis menu. Press OK. Now just migrate the model with new IDE setup, you will not get this error. Bug has been raised for this and it will be fixed in next release.&lt;br /&gt;
&lt;br /&gt;
=='''Known Issues'''==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the known issues in the current release and provides the associated workarounds. These issues arise due to deviation from the normal functioning of the system or as a result of an unexpected behavior of a component or a service.&lt;br /&gt;
&lt;br /&gt;
===Known Issues of OpenClovis SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
Following are the known issues for OpenClovis SAFplus Platform:&lt;br /&gt;
&lt;br /&gt;
*'''Infrastructure and Communications'''&lt;br /&gt;
** '''TIPC address:''' TIPC with 1.5.12 versions was found to give problems (link unstable) when you have 2 different TIPC netids configured for the same TIPC address. This issue is not seen with the 1.7.x TIPC releases, but in general we recommend you to keep the TIPC addresses unique and not collide with the same addresses on nodes configured with different TIPC netids. One of the symptoms  of this is that the TIPC link between 2 machine starts going UP and DOWN continuously when there is another machine in the network, whose TIPC address is conflicting with address of one of those 2 machines. The behavior can be observed through continuous execution of command &amp;quot;tipc-config -l&amp;quot; or through &amp;quot;dmesg&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
** '''Bug ID #7269'''  A cluster having a mixture of 32bit little endian, 32bit big endian and 64 bit little endian machines/nodes may find that the GMS service in inadvertently terminates.&lt;br /&gt;
*** '''Workaround''' - None&lt;br /&gt;
** '''aspinfo known issues:''' (1) On some systems, especially systems with Python version 2.3, aspinfo can be slow to respond. (2) Some corner cases may not be properly handled and aspinfo may prematurely exit, dumping its Python stack.&lt;br /&gt;
&lt;br /&gt;
* '''Platform Management'''&lt;br /&gt;
** '''Bug ID #7569''' No network connectivity to Shelf Management Module manifests as HPI version mismatch error in Chassis Manager and potentially corrupts openhpi uid map file.&lt;br /&gt;
*** '''Workaround''' - If you see this error, check network connectivity to the Shelf Management Module's IP address from the node running Chassis Manager.  If you still see this error after ensuring connectivity, delete the openhpi_uid.map file found in your SAFplus Platform sandbox's varpath, typically &amp;lt;code&amp;gt;/root/asp/var/run/openhpi_uid.map&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* '''System Management'''&lt;br /&gt;
** '''Bug ID #7313''' If an Alarm Server is restarted after it published an alarm, it won't allow to clear/publish that alarm again.&lt;br /&gt;
*** '''Workaround''' - Currently there is no workaround.&lt;br /&gt;
&lt;br /&gt;
* '''SAF Compliance'''&lt;br /&gt;
** '''Deviation from SAF in Event Service:''' Event Service does not yet support Event Retention as specified in SAF specification. The retention time specified in the clEventPublish() API would have no effect.&lt;br /&gt;
** '''Bug in SAF specificaion B11:''' The clEventDataGet() API of Event Service is in compliance with the SAF specification B11. This allows the user to either allocate memory for the event payload or obtain it from the API by passing a pointer. The latter is not possible with this API as the argument needs to be a pointer to a pointer which is not the case. As per the new specification and the recommended way the user is always required to allocate and free the memory.&lt;br /&gt;
&lt;br /&gt;
===Known Issues of OpenClovis IDE===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Bug ID # 6543: X Error in Ubuntu Installation.''' Starting the IDE in '''Ubuntu''' installation may result some X errors in the console. This is not an IDE issue, this will not affect any of the IDE functionalities.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Workaround''' - See the ''Limitations'' section of the ''OpenClovis IDE User Guide''.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Bug ID # 7247: Configuration of proxy/proxied component relationships does not work reliably.''' The current version of the IDE does not correctly configure a standard SAF proxy/proxied relationship between components in some cases.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Workaround''' - There is no workaround at this time.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Bug ID # 7598: Configuring same directory location for workspace and project-area.''' The current version of IDE does not handle this properly.&lt;br /&gt;
&amp;lt;li&amp;gt;'''SNMP MIB Enumerated Integer Construct Limitations''': During SNMP code generation all enumerated integer labels are converted to &amp;lt;code&amp;gt;#define&amp;lt;/code&amp;gt; statements. The constant names used in these statements are the enumerated integer labels converted to upper case. Because of this the all labels used within an enumerated integer construct must be unique regardless of case.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;'''SNMP MIB V1 TRAP-TYPE Construct Not Supported''': Due to an issue in the Net-SNMP mib2c compiler code generation for MIBs using the V1 TRAP-TYPE construct does not work properly.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Workaround''' - To generate trap code from an SNMP MIB use the SNMP V2 NOTIFICATION-TYPE construct.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Known Issues of Install Package===&lt;br /&gt;
&lt;br /&gt;
* '''Bug ID # 6749: Potential conflict with net-snmp package on local system''': In certain rare instances, building OpenHPI from the included third-party packages during SDK installation fails owing to a conflict with an already-installed version of NetSNMP on the system.  In these instances, it is recommended that NetSNMP be removed from the local system before installing OpenClovis SDK, and that it be reinstalled after completing the SDK installation.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Red Hat Enterprise 4''': On a Red Hat Enterprise Linux 4 system, the 'Development Tools' subset of packages must be installed to cover the requirements for installing OpenClovis SDK.  In general, an installation with the default package set contains all requirements for installation.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Fedora Core 6''': On a Fedora Core 6 system, installation of OpenClovis SAFplus Platform automatically builds and installs the TIPC opensource package.  To build TIPC, the kernel headers must be present and so these are automatically installed (by our ./preinstall-fedora-core.sh script) using the &amp;quot;yum install kernel-devel&amp;quot; command.  On rare configurations, this command does not work correctly.  It is supposed to install headers so that the symbolic link located at &amp;quot;/lib/modules/`uname -r`/build&amp;quot; points to a valid directory of Linux header files.  However, on some systems this symbolic link points to &amp;quot;/usr/src/kernels/2.6.22.14-72.fc6-i586&amp;quot; but the headers are actually installed in &amp;quot;/usr/src/kernels/2.6.22.14-72.fc6-i686&amp;quot;  (note 'i586' vs 'i686').  To resolve this problem, change the symbolic link to point to the correct directory name, and then restart the OpenClovis SAFplus Platform installation.&lt;br /&gt;
&lt;br /&gt;
* '''Configuring TIPC and assigning the SAFplus Platform node address''' to an OpenClovis SAFplus Platform is done by SAFplus Platform start up script. But if manual configuration of TIPC is allowed.  Misconfiguration (such as assigning 2 nodes the same TIPC address) will result in an unstable system. When this happens the whole system (all the SAFplus Platform nodes including the ones which are already up and running properly) have to be brought down, the TIPC kernel driver unloaded (to remove its configuration) and the system restarted.&lt;br /&gt;
&lt;br /&gt;
* '''Installation of SQLite using Preinstall script''': The Preinstall script installs SQLite by default as database engine. It locates SQLite - if it is already installed - without verifying version number. If its version is older than 3.3.13, then SAFplus Platform will fail to start.&lt;br /&gt;
** '''Workaround''' - Use SQLite 3.3.13 or newer. The source code can be downloaded from http://www.sqlite.org/download.html. The user can install the latest version of SQLite if its not present in the repository.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Solaris 10/SPARC (beta)''': Installation of OpenClovis SAFplus Platform requires the following third party packages installed via either installation media or using pkgadd with packages obtained from http://www.sunfreeware.com/.  Missing third-party packages may cause unpredictable behavior during installation and SDK use.&lt;br /&gt;
** db-4.2.52&lt;br /&gt;
** fileutils&lt;br /&gt;
** flex&lt;br /&gt;
** gcc-3.4.2&lt;br /&gt;
** gdbm-1.8.3&lt;br /&gt;
** glib-2.14.1&lt;br /&gt;
** gmake&lt;br /&gt;
** gtar&lt;br /&gt;
** libintl&lt;br /&gt;
** libiconv&lt;br /&gt;
** ncurses&lt;br /&gt;
** openssl&lt;br /&gt;
** pkgconfig&lt;br /&gt;
** python-2.5.1&lt;br /&gt;
** readline&lt;br /&gt;
** snprintf&lt;br /&gt;
** tipc-solaris-1.7.5 or SUNWtipc&lt;br /&gt;
** SUNWbtool&lt;br /&gt;
** SUNWsprot&lt;br /&gt;
** SUNWhea&lt;br /&gt;
** wget&lt;br /&gt;
&lt;br /&gt;
=='''Environment Related Observation'''==&lt;br /&gt;
&lt;br /&gt;
* '''Bug ID #7549''' When SAFplus Platform is running in non simulation mode, if SAFplus Platform is started from one sandbox, then it can be stopped/zapped from another sandbox.&lt;br /&gt;
&lt;br /&gt;
===Enabled Firewall Can Cause SAFplus Platform to Shutdown===&lt;br /&gt;
The enablement of a firewall on a system running a deployed SAFplus Platform image can cause the software to shutdown. An indication that you may be running into this problem is if you see an entry similar to the following in your log file (in the log file it is one line):&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Wed Sep 26 15:06:54 2007   (SCNodeI0.10499 : GMS.---.---.00036 :  ERROR)&lt;br /&gt;
   [clGmsEngine.c:448] No nodes in the cluster view to run leader &lt;br /&gt;
   electionLeader Election Aborted&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
To resolve this problem disable all filtering in the Netfilter framework by issuing the following command.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -F&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reusing A Project Area With New Version of OpenClovis SDK===&lt;br /&gt;
Every Project Area is associated with an installation of OpenClovis SDK at a given location.  If one elects to reinstall the SDK at a different location or install a newer version at a different location, the project area will stay associated with the original SDK location.  This allows one to work with multiple versions of the SDK simultaneously.&lt;br /&gt;
In order to use an existing project area with a different or moved installation of OpenClovis SDK, remove the &amp;lt;code&amp;gt;.config&amp;lt;/code&amp;gt; file from your project area directory and re-run &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt; as you normally would to work with a model.&lt;br /&gt;
&lt;br /&gt;
===Running Multiple SAFplus Platform Clusters in the same Subnet===&lt;br /&gt;
If you are running multiple SAFplus Platform clusters within the same subnet, please ensure that the &amp;lt;code&amp;gt;TIPC network ID&amp;lt;/code&amp;gt; selected for each cluster is unique.&lt;br /&gt;
&lt;br /&gt;
=='''Documentation Issues'''==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the known issues with the OpenClovis Documentation shipped along with the product.&lt;br /&gt;
&lt;br /&gt;
* Formatting issues&lt;br /&gt;
** Following cross-references pointing to a heading, the PDF viewer will jump to the end of the previous page if the heading is on the top of a page.&lt;br /&gt;
** Firefox web browsers sometimes do not correctly jump to intra-page anchors when the user clicks on a reference. This is a known issue with Firefox. The workaround is to click on Back button and then on the reference again. The browser jumps to the correct position for the 2nd time.&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/relnotes</id>
		<title>Doc:latest/relnotes</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/relnotes"/>
				<updated>2011-10-24T19:26:19Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* Running Multiple SAFplus Platform Clusters in the same Subnet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Preface'''==&lt;br /&gt;
&lt;br /&gt;
Welcome to ''OpenClovis Release Notes''. This document provides information about the details of the platforms on which OpenClovis SAFplus Availability/Scalability Platform (the SAFplus Platform for short) and Integrated Development Environment (IDE) have been tested and validated for SDK Release 6.0. It contains the additional features and enhancements of the product since the previous release. It also summarizes the known issues and limitations of the product and provides workaround wherever applicable.&lt;br /&gt;
&lt;br /&gt;
===Key Topics===&lt;br /&gt;
&lt;br /&gt;
''OpenClovis Release Notes'' covers the following topics in details:&lt;br /&gt;
*Tested Platforms&lt;br /&gt;
*What Is New&lt;br /&gt;
*Migration To Latest Version&lt;br /&gt;
*Known Issues&lt;br /&gt;
*Environment Related Observation&lt;br /&gt;
*Documentation Issues&lt;br /&gt;
&lt;br /&gt;
===Audience===&lt;br /&gt;
&lt;br /&gt;
''OpenClovis Release Notes'' addresses system integrators, designers, and system architects. To use SAFplus Platform, you must be aware of the fundamentals of operation, management, and configuration of telecom and networking domains. You must also be familiar with C programming, UML notations, and have basic knowledge of Linux.&lt;br /&gt;
&lt;br /&gt;
===Documentation Conventions===&lt;br /&gt;
&lt;br /&gt;
This guide uses different fonts and symbols to differentiate between document elements and types of information. These conventions are summarized in the following table.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;  width=&amp;quot;680&amp;quot;&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Notation &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Description&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|style=&amp;quot;color:black&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;Code&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
This font denotes the C code provided in various examples.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|Cross reference&lt;br /&gt;
|&lt;br /&gt;
This font denotes a hyperlink. You can click on the hyperlink text to access the reference location, which can be either a section within the User Guide or a URL link. A cross reference refers to a section name and accesses the first page of that section.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''Bold Text''' &lt;br /&gt;
|&lt;br /&gt;
Menu items and button names.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''''Italic Text''''' &lt;br /&gt;
|&lt;br /&gt;
Variables for which you enter values.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]This indicates the presence of notes or annotations, related to the context of the document.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Caution.png]]This indicates that certain precautionary measures must be taken before performing a particular task.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Info.png]]This indicates that additional information is provided to you.&lt;br /&gt;
&lt;br /&gt;
===Related Documents===&lt;br /&gt;
&lt;br /&gt;
For additional information about OpenClovis products, refer to the following guides:&lt;br /&gt;
* '''SAFplus Platform SA Forum Compliance''' describes the level of compliance of OpenClovis SAFplus Platform and its Application Programming Interface (API) with the relevant Service Availability Forum Specifications.&lt;br /&gt;
* '''SAFplus Platform Installation Guide''' provides the system requirements, installation procedure for OpenClovis SAFplus Platform, IDE, and the Evaluation System.&lt;br /&gt;
* '''SAFplus Platform Sample Application Tutorial''' explains the steps to create and build a sample model using OpenClovis IDE and OpenClovis SAFplus Platform. It also provides troubleshooting information for this process. This provides the logical first step in understanding the SAFplus Platform offering.&lt;br /&gt;
* '''SAFplus Platform Evaluation System User Guide''' provides all the required information to configure and run the sample models packaged within the Evaluation System. This document also provides good understanding of OpenClovis SAFplus Platform's functionality. This is the natural follow on to the ''OpenClovis Sample Application Tutorial'' as it builds on the example created in that document. &lt;br /&gt;
* '''SAFplus Platform SDK User Guide''' provides information about SAFplus Availability/Scalability Platform architecture, various SAFplus Platform components, and their interactions. This guide helps you to configure the OpenClovis SAFplus Platform components, compile, and execute the SAFplus Platform code to build your custom application.&lt;br /&gt;
* '''SAFplus Platform IDE User Guide''' describes the usage of Integrated Development Environment (IDE), a graphical development environment that complements the SAFplus Platform. This guide helps you to understand how to use the various features of the IDE to build the application.&lt;br /&gt;
* '''SAFplus Platform Log Tool User Guide''' provides information about the usage of OpenClovis Log Tool. OpenClovis Log Tool is an interactive utility that allows you to view binary log files in a readable format and hence monitor system errors, warnings, and other log information. Log Tool allows you to format the &amp;lt;code&amp;gt;.log&amp;lt;/code&amp;gt; files and filter them to view the required entries.&lt;br /&gt;
* '''SAFplus Platform API Reference Guide''' is provided for each component. It describes the Application Programming Interface (API), Service Model, and Management Information Model of the various OpenClovis Application Service Platform (SAFplus Platform) services. It helps the developer to understand the capabilities of the SAFplus Platform services and the APIs provided by these services.&lt;br /&gt;
* '''SAFplus Platform Console Reference Guide''' provides details about managing applications built on SAFplus Platform using the SAFplus Platform runtime debug console commands. SAFplus Platform Console commands can be used to manage, monitor, and test your application.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Online Technical Support===&lt;br /&gt;
&lt;br /&gt;
OpenClovis customers and partners can register on our Web site and receive personalized services and information. If you need any support or assistance while working on OpenClovis products, you can access the following: URL: http://www.openclovis.com. Send your queries to: support@openclovis.com. Open source community support is available at: http://www.openclovis.org/forum.&lt;br /&gt;
&lt;br /&gt;
===Documentation Feedback===&lt;br /&gt;
&lt;br /&gt;
We are interested in hearing from our customers on the documentation provided with the product. Let us know your comments and suggestions on improving the documentation at OpenClovis Inc. Send your comments to: support@openclovis.com. Post your feedback on documentation in the page on our documentation wiki located at [http://help.openclovis.com http://help.openclovis.com].&lt;br /&gt;
&lt;br /&gt;
=='''Tested Platforms'''==&lt;br /&gt;
&lt;br /&gt;
This chapter provides the details of the platforms on which OpenClovis SAFplus Platform have been tested and validated.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Tested Platform Configurations''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;150&amp;quot;| Platform&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Configuration&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Hardware&lt;br /&gt;
|&lt;br /&gt;
* ATCA 5U Chassis - Schroff, ASIS&lt;br /&gt;
* ATCA 12U Chassis - Schroff, Sanmina, HP, Sun Netra, Radisys, Huawei Tecal Server&lt;br /&gt;
* Pigeon Point Systems ShMM300 and ShMM500 based Shelf Controllers&lt;br /&gt;
* Radisys Promentum 60x0 and its 2100 Switch/Shelf Controller blades&lt;br /&gt;
* CPU Blades:&lt;br /&gt;
** Intel Xeon based server cards&lt;br /&gt;
** Intel Pentium and Xeon based desktops and rack mount servers (RMS)&lt;br /&gt;
** Intel Itanium based RMS&lt;br /&gt;
** AMD Opteron based ATCA cards&lt;br /&gt;
** AMD Opteron and Athlon based desktops&lt;br /&gt;
** PowerPC based AMCs&lt;br /&gt;
** PowerPC based desktops&lt;br /&gt;
** Huawei Tecal BH23&lt;br /&gt;
** Sun 3020 and 3090&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Software&lt;br /&gt;
|&lt;br /&gt;
* Wind River PNE-LE 1.2 (2.6.10 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 1.3 (2.6.14 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 1.4 (2.6.14 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 2.0 (2.6.21 kernel) on CPU blades&lt;br /&gt;
* MontaVista Linux Carrier Grade Edition 5.0 (2.6.21 kernel)on CPU Blades&lt;br /&gt;
* QNX Neutrino RTOS 6.3.2&lt;br /&gt;
* Pigeon Point Systems Shelf Manager version 2.2.1 on ShMM300, ShMM500&lt;br /&gt;
* SCM software version 1.7 on ATCA 2100 Shelf Manager&lt;br /&gt;
* OpenHPI 2.8.1 and 2.10.2&lt;br /&gt;
* Radisys HPI Client Library (HCL) version 1.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For more details on the hardware and software requirements and the steps to install OpenClovis SAFplus Platform and IDE, refer to ''OpenClovis Installation Guide''.&lt;br /&gt;
&lt;br /&gt;
=='''What Is New'''==&lt;br /&gt;
&lt;br /&gt;
This chapter outlines the new features and enhancements provided by OpenClovis SAFplus Platform and IDE for Release 5.0.&lt;br /&gt;
&lt;br /&gt;
===Features of OpenClovis SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
====General Features====&lt;br /&gt;
&lt;br /&gt;
* '''Support for Wind River PNELE 2.0''': OpenClovis SDK can seamlessly build SAFplus Platform and binaries for Wind River Platform for Network Equipment Linux Edition 2.0 on all supported SDK platforms, either using the build tool-chain of OpenClovis or of the development environment of Wind River.&lt;br /&gt;
&lt;br /&gt;
====High Availability (HA)====&lt;br /&gt;
&lt;br /&gt;
*'''ISSU - In Service Software Upgrade'''&lt;br /&gt;
Supports middleware upgrade in a rolling (in-service) or single-step mode.&lt;br /&gt;
&lt;br /&gt;
'''Single-Step'''&lt;br /&gt;
For deployment of non-backwards compatible software, or rapid deployment of software.  This method stops the relevant services on all nodes (causing an outage) and then upgrades that software and restarts.  Note that services are stopped at various granularity levels depending on what is being upgraded.  In other words, application A can be taken out-of-service and upgraded across the cluster without affecting application B running on the same nodes.&lt;br /&gt;
&lt;br /&gt;
'''Inservice Rolling'''&lt;br /&gt;
This is the most commonly known telecom quality upgrade method.  For deployment of backwards-compatible software across the cluster, this method stops service in one &amp;quot;upgrade unit&amp;quot; at a time, upgrades the software and restarts before stopping the next &amp;quot;upgrade unit&amp;quot;.  This process continues iteratively until the entire cluster is upgraded.  Since the available redundant capacity takes over for the unit being upgraded service will be unaffected.&lt;br /&gt;
&lt;br /&gt;
====Infrastructure and Communications====&lt;br /&gt;
&lt;br /&gt;
====Group Membership Service (GMS) over TIPC====&lt;br /&gt;
&lt;br /&gt;
By default GMS/openais is now compiled to run over TIPC.&lt;br /&gt;
&lt;br /&gt;
====SAF Message Service====&lt;br /&gt;
&lt;br /&gt;
SAF messaging data types and APIs supported by OpenClovis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''classes/types:'''&lt;br /&gt;
&lt;br /&gt;
*SaMsgMessageT&lt;br /&gt;
*SaMsgHandleT&lt;br /&gt;
*SaMsgQueueStatusT&lt;br /&gt;
*SaMsgQueueHandleT&lt;br /&gt;
*SaMsgSenderIdT&lt;br /&gt;
*SaMsgQueueCreationAttributesT&lt;br /&gt;
*SaMsgQueueOpenFlagsT&lt;br /&gt;
*SaMsgQueueGroupPolicyT&lt;br /&gt;
*SaMsgQueueGroupNotificationBufferT&lt;br /&gt;
*SaMsgQueueGroupNotificationT&lt;br /&gt;
*SaMsgQueueUsageT&lt;br /&gt;
*SaMsgCallbacksT&lt;br /&gt;
*SaMsgMessageReceivedCallbackT&lt;br /&gt;
&lt;br /&gt;
*'''APIs:'''&lt;br /&gt;
&lt;br /&gt;
*saMsgMessageSend&lt;br /&gt;
*saMsgMessageSendAsync&lt;br /&gt;
*saMsgQueueOpen&lt;br /&gt;
*saMsgQueueClose&lt;br /&gt;
*saMsgQueueStatusGet&lt;br /&gt;
*saMsgMessageGet&lt;br /&gt;
*saMsgMessageDataFree&lt;br /&gt;
*saMsgQueueGroupCreate&lt;br /&gt;
*saMsgQueueGroupInsert&lt;br /&gt;
*saMsgQueueGroupTrack&lt;br /&gt;
*saMsgQueueGroupNotificationFree&lt;br /&gt;
*saMsgInitialize&lt;br /&gt;
*saMsgFinalize&lt;br /&gt;
*saMsgDispatch&lt;br /&gt;
&lt;br /&gt;
====SAF Component cleanup script support====&lt;br /&gt;
&lt;br /&gt;
5.0 introduces support to configure cleanup commands for SA-AWARE components using the Openclovis IDE. The cleanup command is invoked by AMF on component cleanup or abrupt terminations.&lt;br /&gt;
&lt;br /&gt;
===System Management===&lt;br /&gt;
&lt;br /&gt;
*Support of net-snmp 5.4.2.&lt;br /&gt;
*SNMP Traps in 64 Bit architectures.&lt;br /&gt;
&lt;br /&gt;
===Platform Management===&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform provides pre-integrated support for commonly used ATCA platforms. All service affecting events reported by the shelf manager via HPI are intercepted and service on affected hardware is migrated to standby equipment, ensuring continuity of service. &lt;br /&gt;
&lt;br /&gt;
This support is provided with the '''Platform Support Package (PSP)''' for Piegon Point Shelf manager 500ShMM via openHPI. &lt;br /&gt;
&lt;br /&gt;
PSP is available as a separate product, please contact OpenClovis Sales for further information.&lt;br /&gt;
&lt;br /&gt;
===Features of OpenClovis IDE===&lt;br /&gt;
&lt;br /&gt;
* '''Running SAFplus Platform without manageability components''': IDE is having the support for enable/disable SAFplus Platform components. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
* '''AMF Clean-up script''': IDE is having support to specify the cleanup command in SAF Component. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
* '''Versioning the Configuration Files''': IDE is having support for versioning the configuration files.&lt;br /&gt;
* '''SAF Messaging''': IDE is having support to enable the SAF messaging. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform Run-Time Director===&lt;br /&gt;
&lt;br /&gt;
A new product, the SAFplus Platform Run-Time Director(ARD), provides cluster management of the SAFplus Platform via a web interface.  This new product is available separately, please contact OpenClovis for demonstration and evaluation.  The ARD has the following features:&lt;br /&gt;
&lt;br /&gt;
* Software Distribution:  Allows individual applications to be packaged in a &amp;quot;bundle&amp;quot; and be deployed to any set of nodes in the cluster.&lt;br /&gt;
* Inservice Software Upgrade: Supports application upgrade in a rolling (in-service) or single-step mode. &lt;br /&gt;
* WYSIWYG: Provides intuitive cluster management via an HTTP (web) interface.&lt;br /&gt;
* AJAX: Displays all SAF AMF entities and their current status -- uses asynchronous Javascript requests to dynamically update browser when changes occur.&lt;br /&gt;
* Dynamic AMF:  Allows modification of AMF entity state and supports creation/deletion of AMF entities.&lt;br /&gt;
* High Availability:  The ARD runs in unprotected or 2N redundancy mode.&lt;br /&gt;
* Python AMF API:  Provides an easy-to-use CLI/programmatic API for cluster management&lt;br /&gt;
* Easy installation:  The ARD can install itself into a running SAFplus Platform model, and therefore requires no changes to your existing model.&lt;br /&gt;
* Extensible: The ARD is built on top of TurboGears, a popular open source web mega-framework.  Thus it provides a basis and example for your custom SaaS or EMS project.&lt;br /&gt;
* Integration of Platform Support Package (PSP), provides chassis configuration through OpenHPI.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Documentation===&lt;br /&gt;
&lt;br /&gt;
* OpenClovis Documentation is provided in two formats now, PDF and HTML. They both contain the same information.&lt;br /&gt;
* A new ''OpenClovis SA Forum Compliance'' document has been added&lt;br /&gt;
* As a courtesy, all relevant SA Forum specifications are supplied as part of our OpenClovis documentation package (only in PDF format).&lt;br /&gt;
* A new ''OpenClovis Sample Application Tutorial'' has been added, replacing the former Modeling Tutorial. The new document provides explanation for the various steps involved in creating and running a new application.&lt;br /&gt;
* The ''OpenClovis SDK User Guide'' has been extended to cover many additional topics, including:&lt;br /&gt;
** Communication infrastructure&lt;br /&gt;
** Hardware platform support&lt;br /&gt;
** How to debug SAFplus Platform based applications&lt;br /&gt;
** Build and deployment&lt;br /&gt;
* The ''OpenClovis API Reference Guide'' has been significantly revised:&lt;br /&gt;
** Numerous coding examples&lt;br /&gt;
** New reference pages for API error codes for easy lookup&lt;br /&gt;
** HTML version of API Refernce Guide is heavily cross-referenced, allowing easy navigation between the various programming construcs&lt;br /&gt;
* New, complete ''OpenClovis SAFplus Platform Console Reference Guide'' as a separate document&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]From this release, the ''Debug CLI'' has been renamed to ''SAFplus Platform Console''.&lt;br /&gt;
&lt;br /&gt;
=='''Migration To Latest Version'''==&lt;br /&gt;
&lt;br /&gt;
Migration of a project or model from an earlier version of the OpenClovis IDE to the most recent version is performed automatically when the model it opened for the first time in the newer vesion. The IDE auto-detects the project's version and changes the internal files so that the information is in valid format and can be read by the current version. It also provides an option to create a backup of the project while performing the migration. For more information, refer to ''OpenClovis IDE User Guide'', Section ''Migrating Project''. IDE supports migration from R2.3 and above.&lt;br /&gt;
&lt;br /&gt;
Any issues regarding migration from a previous version of the IDE are documented below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Change in Log File Locations===&lt;br /&gt;
&lt;br /&gt;
As of release 3.0 all SAFplus Platform runtime log files are created in the &amp;lt;code&amp;gt;var/log&amp;lt;/code&amp;gt; subdirectory of the SAFplus Platform install directory. It is recommended that you update existing models to also use this directory. To update an existing model edit the clLog.xml file in the model's src/config directory. Change all references of '''.:log''' in the &amp;lt;code&amp;gt;&amp;lt;fileLocation&amp;gt;&amp;lt;/code&amp;gt; elements&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;fileLocation&amp;gt;.:log&amp;lt;/fileLocation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to '''.:var/log'''&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;fileLocation&amp;gt;.:var/log&amp;lt;/fileLocation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the model is rebuilt and deployed these new settings will take effect.&lt;br /&gt;
&lt;br /&gt;
===gmsConfig.xml file===&lt;br /&gt;
&lt;br /&gt;
Models of R2.3 may not contain the gmsConfig.xml file if GMS configuration is not done. If you migrate this project you will get error message saying that Migration was unable to create this file. But this is not going to affect further use of model. Model will be OK and user can make changes to it from IDE, generate source, build it, etc without any problem.&lt;br /&gt;
&lt;br /&gt;
Although this error is not going to affect the functionality of the model, there is a work around for this. Before migrating your model, just open up the model in your old IDE setup. Launch &amp;quot;SAFplus Platform Component Configuration&amp;quot; dialog from the Clovis menu. Press OK. Now just migrate the model with new IDE setup, you will not get this error. Bug has been raised for this and it will be fixed in next release.&lt;br /&gt;
&lt;br /&gt;
=='''Known Issues'''==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the known issues in the current release and provides the associated workarounds. These issues arise due to deviation from the normal functioning of the system or as a result of an unexpected behavior of a component or a service.&lt;br /&gt;
&lt;br /&gt;
===Known Issues of OpenClovis SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
Following are the known issues for OpenClovis SAFplus Platform:&lt;br /&gt;
&lt;br /&gt;
*'''Infrastructure and Communications'''&lt;br /&gt;
** '''TIPC address:''' TIPC with 1.5.12 versions was found to give problems (link unstable) when you have 2 different TIPC netids configured for the same TIPC address. This issue is not seen with the 1.7.x TIPC releases, but in general we recommend you to keep the TIPC addresses unique and not collide with the same addresses on nodes configured with different TIPC netids. One of the symptoms  of this is that the TIPC link between 2 machine starts going UP and DOWN continuously when there is another machine in the network, whose TIPC address is conflicting with address of one of those 2 machines. The behavior can be observed through continuous execution of command &amp;quot;tipc-config -l&amp;quot; or through &amp;quot;dmesg&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
** '''Bug ID #7269'''  A cluster having a mixture of 32bit little endian, 32bit big endian and 64 bit little endian machines/nodes may find that the GMS service in inadvertently terminates.&lt;br /&gt;
*** '''Workaround''' - None&lt;br /&gt;
** '''aspinfo known issues:''' (1) On some systems, especially systems with Python version 2.3, aspinfo can be slow to respond. (2) Some corner cases may not be properly handled and aspinfo may prematurely exit, dumping its Python stack.&lt;br /&gt;
&lt;br /&gt;
* '''Platform Management'''&lt;br /&gt;
** '''Bug ID #7569''' No network connectivity to Shelf Management Module manifests as HPI version mismatch error in Chassis Manager and potentially corrupts openhpi uid map file.&lt;br /&gt;
*** '''Workaround''' - If you see this error, check network connectivity to the Shelf Management Module's IP address from the node running Chassis Manager.  If you still see this error after ensuring connectivity, delete the openhpi_uid.map file found in your SAFplus Platform sandbox's varpath, typically &amp;lt;code&amp;gt;/root/asp/var/run/openhpi_uid.map&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* '''System Management'''&lt;br /&gt;
** '''Bug ID #7313''' If an Alarm Server is restarted after it published an alarm, it won't allow to clear/publish that alarm again.&lt;br /&gt;
*** '''Workaround''' - Currently there is no workaround.&lt;br /&gt;
&lt;br /&gt;
* '''SAF Compliance'''&lt;br /&gt;
** '''Deviation from SAF in Event Service:''' Event Service does not yet support Event Retention as specified in SAF specification. The retention time specified in the clEventPublish() API would have no effect.&lt;br /&gt;
** '''Bug in SAF specificaion B11:''' The clEventDataGet() API of Event Service is in compliance with the SAF specification B11. This allows the user to either allocate memory for the event payload or obtain it from the API by passing a pointer. The latter is not possible with this API as the argument needs to be a pointer to a pointer which is not the case. As per the new specification and the recommended way the user is always required to allocate and free the memory.&lt;br /&gt;
&lt;br /&gt;
===Known Issues of OpenClovis IDE===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Bug ID # 6543: X Error in Ubuntu Installation.''' Starting the IDE in '''Ubuntu''' installation may result some X errors in the console. This is not an IDE issue, this will not affect any of the IDE functionalities.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Workaround''' - See the ''Limitations'' section of the ''OpenClovis IDE User Guide''.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Bug ID # 7247: Configuration of proxy/proxied component relationships does not work reliably.''' The current version of the IDE does not correctly configure a standard SAF proxy/proxied relationship between components in some cases.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Workaround''' - There is no workaround at this time.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Bug ID # 7598: Configuring same directory location for workspace and project-area.''' The current version of IDE does not handle this properly.&lt;br /&gt;
&amp;lt;li&amp;gt;'''SNMP MIB Enumerated Integer Construct Limitations''': During SNMP code generation all enumerated integer labels are converted to &amp;lt;code&amp;gt;#define&amp;lt;/code&amp;gt; statements. The constant names used in these statements are the enumerated integer labels converted to upper case. Because of this the all labels used within an enumerated integer construct must be unique regardless of case.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;'''SNMP MIB V1 TRAP-TYPE Construct Not Supported''': Due to an issue in the Net-SNMP mib2c compiler code generation for MIBs using the V1 TRAP-TYPE construct does not work properly.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Workaround''' - To generate trap code from an SNMP MIB use the SNMP V2 NOTIFICATION-TYPE construct.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Known Issues of Install Package===&lt;br /&gt;
&lt;br /&gt;
* '''Bug ID # 6749: Potential conflict with net-snmp package on local system''': In certain rare instances, building OpenHPI from the included third-party packages during SDK installation fails owing to a conflict with an already-installed version of NetSNMP on the system.  In these instances, it is recommended that NetSNMP be removed from the local system before installing OpenClovis SDK, and that it be reinstalled after completing the SDK installation.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Red Hat Enterprise 4''': On a Red Hat Enterprise Linux 4 system, the 'Development Tools' subset of packages must be installed to cover the requirements for installing OpenClovis SDK.  In general, an installation with the default package set contains all requirements for installation.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Fedora Core 6''': On a Fedora Core 6 system, installation of OpenClovis SAFplus Platform automatically builds and installs the TIPC opensource package.  To build TIPC, the kernel headers must be present and so these are automatically installed (by our ./preinstall-fedora-core.sh script) using the &amp;quot;yum install kernel-devel&amp;quot; command.  On rare configurations, this command does not work correctly.  It is supposed to install headers so that the symbolic link located at &amp;quot;/lib/modules/`uname -r`/build&amp;quot; points to a valid directory of Linux header files.  However, on some systems this symbolic link points to &amp;quot;/usr/src/kernels/2.6.22.14-72.fc6-i586&amp;quot; but the headers are actually installed in &amp;quot;/usr/src/kernels/2.6.22.14-72.fc6-i686&amp;quot;  (note 'i586' vs 'i686').  To resolve this problem, change the symbolic link to point to the correct directory name, and then restart the OpenClovis SAFplus Platform installation.&lt;br /&gt;
&lt;br /&gt;
* '''Configuring TIPC and assigning the SAFplus Platform node address''' to an OpenClovis SAFplus Platform is done pretty well by SAFplus Platform start up script. But if anybody manually configures TIPC and starts SAFplus Platform then there could be miss-configuration, which might end up in an UNSTABLE system. And because of this the whole system (all the SAFplus Platform nodes including the ones which are already up and running properly) have to be brought DOWN and restart the system again.&lt;br /&gt;
&lt;br /&gt;
* '''Installation of SQLite using Preinstall script''': The Preinstall script installs SQLite by default as database engine. It locates SQLite - if it is already installed - without verifying version number. If its version is older than 3.3.13, then SAFplus Platform will fail to start.&lt;br /&gt;
** '''Workaround''' - Use SQLite 3.3.13 or newer. The source code can be downloaded from http://www.sqlite.org/download.html. The user can install the latest version of SQLite if its not present in the repository.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Solaris 10/SPARC (beta)''': Installation of OpenClovis SAFplus Platform requires the following third party packages installed via either installation media or using pkgadd with packages obtained from http://www.sunfreeware.com/.  Missing third-party packages may cause unpredictable behavior during installation and SDK use.&lt;br /&gt;
** db-4.2.52&lt;br /&gt;
** fileutils&lt;br /&gt;
** flex&lt;br /&gt;
** gcc-3.4.2&lt;br /&gt;
** gdbm-1.8.3&lt;br /&gt;
** glib-2.14.1&lt;br /&gt;
** gmake&lt;br /&gt;
** gtar&lt;br /&gt;
** libintl&lt;br /&gt;
** libiconv&lt;br /&gt;
** ncurses&lt;br /&gt;
** openssl&lt;br /&gt;
** pkgconfig&lt;br /&gt;
** python-2.5.1&lt;br /&gt;
** readline&lt;br /&gt;
** snprintf&lt;br /&gt;
** tipc-solaris-1.7.5 or SUNWtipc&lt;br /&gt;
** SUNWbtool&lt;br /&gt;
** SUNWsprot&lt;br /&gt;
** SUNWhea&lt;br /&gt;
** wget&lt;br /&gt;
&lt;br /&gt;
=='''Environment Related Observation'''==&lt;br /&gt;
&lt;br /&gt;
* '''Bug ID #7549''' When SAFplus Platform is running in non simulation mode, if SAFplus Platform is started from one sandbox, then it can be stopped/zapped from another sandbox.&lt;br /&gt;
&lt;br /&gt;
===Enabled Firewall Can Cause SAFplus Platform to Shutdown===&lt;br /&gt;
The enablement of a firewall on a system running a deployed SAFplus Platform image can cause the software to shutdown. An indication that you may be running into this problem is if you see an entry similar to the following in your log file (in the log file it is one line):&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Wed Sep 26 15:06:54 2007   (SCNodeI0.10499 : GMS.---.---.00036 :  ERROR)&lt;br /&gt;
   [clGmsEngine.c:448] No nodes in the cluster view to run leader &lt;br /&gt;
   electionLeader Election Aborted&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
To resolve this problem disable all filtering in the Netfilter framework by issuing the following command.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -F&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reusing A Project Area With New Version of OpenClovis SDK===&lt;br /&gt;
Every Project Area is associated with an installation of OpenClovis SDK at a given location.  If one elects to reinstall the SDK at a different location or install a newer version at a different location, the project area will stay associated with the original SDK location.  This allows one to work with multiple versions of the SDK simultaneously.&lt;br /&gt;
In order to use an existing project area with a different or moved installation of OpenClovis SDK, remove the &amp;lt;code&amp;gt;.config&amp;lt;/code&amp;gt; file from your project area directory and re-run &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt; as you normally would to work with a model.&lt;br /&gt;
&lt;br /&gt;
===Running Multiple SAFplus Platform Clusters in the same Subnet===&lt;br /&gt;
If you are running multiple SAFplus Platform clusters within the same subnet, please ensure that the &amp;lt;code&amp;gt;TIPC network ID&amp;lt;/code&amp;gt; selected for each cluster is unique.&lt;br /&gt;
&lt;br /&gt;
=='''Documentation Issues'''==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the known issues with the OpenClovis Documentation shipped along with the product.&lt;br /&gt;
&lt;br /&gt;
* Formatting issues&lt;br /&gt;
** Following cross-references pointing to a heading, the PDF viewer will jump to the end of the previous page if the heading is on the top of a page.&lt;br /&gt;
** Firefox web browsers sometimes do not correctly jump to intra-page anchors when the user clicks on a reference. This is a known issue with Firefox. The workaround is to click on Back button and then on the reference again. The browser jumps to the correct position for the 2nd time.&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/relnotes</id>
		<title>Doc:latest/relnotes</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/relnotes"/>
				<updated>2011-10-24T19:23:25Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* Preface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Preface'''==&lt;br /&gt;
&lt;br /&gt;
Welcome to ''OpenClovis Release Notes''. This document provides information about the details of the platforms on which OpenClovis SAFplus Availability/Scalability Platform (the SAFplus Platform for short) and Integrated Development Environment (IDE) have been tested and validated for SDK Release 6.0. It contains the additional features and enhancements of the product since the previous release. It also summarizes the known issues and limitations of the product and provides workaround wherever applicable.&lt;br /&gt;
&lt;br /&gt;
===Key Topics===&lt;br /&gt;
&lt;br /&gt;
''OpenClovis Release Notes'' covers the following topics in details:&lt;br /&gt;
*Tested Platforms&lt;br /&gt;
*What Is New&lt;br /&gt;
*Migration To Latest Version&lt;br /&gt;
*Known Issues&lt;br /&gt;
*Environment Related Observation&lt;br /&gt;
*Documentation Issues&lt;br /&gt;
&lt;br /&gt;
===Audience===&lt;br /&gt;
&lt;br /&gt;
''OpenClovis Release Notes'' addresses system integrators, designers, and system architects. To use SAFplus Platform, you must be aware of the fundamentals of operation, management, and configuration of telecom and networking domains. You must also be familiar with C programming, UML notations, and have basic knowledge of Linux.&lt;br /&gt;
&lt;br /&gt;
===Documentation Conventions===&lt;br /&gt;
&lt;br /&gt;
This guide uses different fonts and symbols to differentiate between document elements and types of information. These conventions are summarized in the following table.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;  width=&amp;quot;680&amp;quot;&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Notation &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Description&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|style=&amp;quot;color:black&amp;quot; |&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;Code&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
This font denotes the C code provided in various examples.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|Cross reference&lt;br /&gt;
|&lt;br /&gt;
This font denotes a hyperlink. You can click on the hyperlink text to access the reference location, which can be either a section within the User Guide or a URL link. A cross reference refers to a section name and accesses the first page of that section.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''Bold Text''' &lt;br /&gt;
|&lt;br /&gt;
Menu items and button names.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''''Italic Text''''' &lt;br /&gt;
|&lt;br /&gt;
Variables for which you enter values.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Note.png]]This indicates the presence of notes or annotations, related to the context of the document.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Caution.png]]This indicates that certain precautionary measures must be taken before performing a particular task.&lt;br /&gt;
&amp;lt;br&amp;gt;[[File:OpenClovis_Info.png]]This indicates that additional information is provided to you.&lt;br /&gt;
&lt;br /&gt;
===Related Documents===&lt;br /&gt;
&lt;br /&gt;
For additional information about OpenClovis products, refer to the following guides:&lt;br /&gt;
* '''SAFplus Platform SA Forum Compliance''' describes the level of compliance of OpenClovis SAFplus Platform and its Application Programming Interface (API) with the relevant Service Availability Forum Specifications.&lt;br /&gt;
* '''SAFplus Platform Installation Guide''' provides the system requirements, installation procedure for OpenClovis SAFplus Platform, IDE, and the Evaluation System.&lt;br /&gt;
* '''SAFplus Platform Sample Application Tutorial''' explains the steps to create and build a sample model using OpenClovis IDE and OpenClovis SAFplus Platform. It also provides troubleshooting information for this process. This provides the logical first step in understanding the SAFplus Platform offering.&lt;br /&gt;
* '''SAFplus Platform Evaluation System User Guide''' provides all the required information to configure and run the sample models packaged within the Evaluation System. This document also provides good understanding of OpenClovis SAFplus Platform's functionality. This is the natural follow on to the ''OpenClovis Sample Application Tutorial'' as it builds on the example created in that document. &lt;br /&gt;
* '''SAFplus Platform SDK User Guide''' provides information about SAFplus Availability/Scalability Platform architecture, various SAFplus Platform components, and their interactions. This guide helps you to configure the OpenClovis SAFplus Platform components, compile, and execute the SAFplus Platform code to build your custom application.&lt;br /&gt;
* '''SAFplus Platform IDE User Guide''' describes the usage of Integrated Development Environment (IDE), a graphical development environment that complements the SAFplus Platform. This guide helps you to understand how to use the various features of the IDE to build the application.&lt;br /&gt;
* '''SAFplus Platform Log Tool User Guide''' provides information about the usage of OpenClovis Log Tool. OpenClovis Log Tool is an interactive utility that allows you to view binary log files in a readable format and hence monitor system errors, warnings, and other log information. Log Tool allows you to format the &amp;lt;code&amp;gt;.log&amp;lt;/code&amp;gt; files and filter them to view the required entries.&lt;br /&gt;
* '''SAFplus Platform API Reference Guide''' is provided for each component. It describes the Application Programming Interface (API), Service Model, and Management Information Model of the various OpenClovis Application Service Platform (SAFplus Platform) services. It helps the developer to understand the capabilities of the SAFplus Platform services and the APIs provided by these services.&lt;br /&gt;
* '''SAFplus Platform Console Reference Guide''' provides details about managing applications built on SAFplus Platform using the SAFplus Platform runtime debug console commands. SAFplus Platform Console commands can be used to manage, monitor, and test your application.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Online Technical Support===&lt;br /&gt;
&lt;br /&gt;
OpenClovis customers and partners can register on our Web site and receive personalized services and information. If you need any support or assistance while working on OpenClovis products, you can access the following: URL: http://www.openclovis.com. Send your queries to: support@openclovis.com. Open source community support is available at: http://www.openclovis.org/forum.&lt;br /&gt;
&lt;br /&gt;
===Documentation Feedback===&lt;br /&gt;
&lt;br /&gt;
We are interested in hearing from our customers on the documentation provided with the product. Let us know your comments and suggestions on improving the documentation at OpenClovis Inc. Send your comments to: support@openclovis.com. Post your feedback on documentation in the page on our documentation wiki located at [http://help.openclovis.com http://help.openclovis.com].&lt;br /&gt;
&lt;br /&gt;
=='''Tested Platforms'''==&lt;br /&gt;
&lt;br /&gt;
This chapter provides the details of the platforms on which OpenClovis SAFplus Platform have been tested and validated.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;680&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;bottom&amp;quot; | '''Tested Platform Configurations''' &lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot; width=&amp;quot;150&amp;quot;| Platform&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Configuration&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Hardware&lt;br /&gt;
|&lt;br /&gt;
* ATCA 5U Chassis - Schroff, ASIS&lt;br /&gt;
* ATCA 12U Chassis - Schroff, Sanmina, HP, Sun Netra, Radisys, Huawei Tecal Server&lt;br /&gt;
* Pigeon Point Systems ShMM300 and ShMM500 based Shelf Controllers&lt;br /&gt;
* Radisys Promentum 60x0 and its 2100 Switch/Shelf Controller blades&lt;br /&gt;
* CPU Blades:&lt;br /&gt;
** Intel Xeon based server cards&lt;br /&gt;
** Intel Pentium and Xeon based desktops and rack mount servers (RMS)&lt;br /&gt;
** Intel Itanium based RMS&lt;br /&gt;
** AMD Opteron based ATCA cards&lt;br /&gt;
** AMD Opteron and Athlon based desktops&lt;br /&gt;
** PowerPC based AMCs&lt;br /&gt;
** PowerPC based desktops&lt;br /&gt;
** Huawei Tecal BH23&lt;br /&gt;
** Sun 3020 and 3090&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Software&lt;br /&gt;
|&lt;br /&gt;
* Wind River PNE-LE 1.2 (2.6.10 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 1.3 (2.6.14 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 1.4 (2.6.14 kernel) on CPU blades&lt;br /&gt;
* Wind River PNE-LE 2.0 (2.6.21 kernel) on CPU blades&lt;br /&gt;
* MontaVista Linux Carrier Grade Edition 5.0 (2.6.21 kernel)on CPU Blades&lt;br /&gt;
* QNX Neutrino RTOS 6.3.2&lt;br /&gt;
* Pigeon Point Systems Shelf Manager version 2.2.1 on ShMM300, ShMM500&lt;br /&gt;
* SCM software version 1.7 on ATCA 2100 Shelf Manager&lt;br /&gt;
* OpenHPI 2.8.1 and 2.10.2&lt;br /&gt;
* Radisys HPI Client Library (HCL) version 1.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For more details on the hardware and software requirements and the steps to install OpenClovis SAFplus Platform and IDE, refer to ''OpenClovis Installation Guide''.&lt;br /&gt;
&lt;br /&gt;
=='''What Is New'''==&lt;br /&gt;
&lt;br /&gt;
This chapter outlines the new features and enhancements provided by OpenClovis SAFplus Platform and IDE for Release 5.0.&lt;br /&gt;
&lt;br /&gt;
===Features of OpenClovis SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
====General Features====&lt;br /&gt;
&lt;br /&gt;
* '''Support for Wind River PNELE 2.0''': OpenClovis SDK can seamlessly build SAFplus Platform and binaries for Wind River Platform for Network Equipment Linux Edition 2.0 on all supported SDK platforms, either using the build tool-chain of OpenClovis or of the development environment of Wind River.&lt;br /&gt;
&lt;br /&gt;
====High Availability (HA)====&lt;br /&gt;
&lt;br /&gt;
*'''ISSU - In Service Software Upgrade'''&lt;br /&gt;
Supports middleware upgrade in a rolling (in-service) or single-step mode.&lt;br /&gt;
&lt;br /&gt;
'''Single-Step'''&lt;br /&gt;
For deployment of non-backwards compatible software, or rapid deployment of software.  This method stops the relevant services on all nodes (causing an outage) and then upgrades that software and restarts.  Note that services are stopped at various granularity levels depending on what is being upgraded.  In other words, application A can be taken out-of-service and upgraded across the cluster without affecting application B running on the same nodes.&lt;br /&gt;
&lt;br /&gt;
'''Inservice Rolling'''&lt;br /&gt;
This is the most commonly known telecom quality upgrade method.  For deployment of backwards-compatible software across the cluster, this method stops service in one &amp;quot;upgrade unit&amp;quot; at a time, upgrades the software and restarts before stopping the next &amp;quot;upgrade unit&amp;quot;.  This process continues iteratively until the entire cluster is upgraded.  Since the available redundant capacity takes over for the unit being upgraded service will be unaffected.&lt;br /&gt;
&lt;br /&gt;
====Infrastructure and Communications====&lt;br /&gt;
&lt;br /&gt;
====Group Membership Service (GMS) over TIPC====&lt;br /&gt;
&lt;br /&gt;
By default GMS/openais is now compiled to run over TIPC.&lt;br /&gt;
&lt;br /&gt;
====SAF Message Service====&lt;br /&gt;
&lt;br /&gt;
SAF messaging data types and APIs supported by OpenClovis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''classes/types:'''&lt;br /&gt;
&lt;br /&gt;
*SaMsgMessageT&lt;br /&gt;
*SaMsgHandleT&lt;br /&gt;
*SaMsgQueueStatusT&lt;br /&gt;
*SaMsgQueueHandleT&lt;br /&gt;
*SaMsgSenderIdT&lt;br /&gt;
*SaMsgQueueCreationAttributesT&lt;br /&gt;
*SaMsgQueueOpenFlagsT&lt;br /&gt;
*SaMsgQueueGroupPolicyT&lt;br /&gt;
*SaMsgQueueGroupNotificationBufferT&lt;br /&gt;
*SaMsgQueueGroupNotificationT&lt;br /&gt;
*SaMsgQueueUsageT&lt;br /&gt;
*SaMsgCallbacksT&lt;br /&gt;
*SaMsgMessageReceivedCallbackT&lt;br /&gt;
&lt;br /&gt;
*'''APIs:'''&lt;br /&gt;
&lt;br /&gt;
*saMsgMessageSend&lt;br /&gt;
*saMsgMessageSendAsync&lt;br /&gt;
*saMsgQueueOpen&lt;br /&gt;
*saMsgQueueClose&lt;br /&gt;
*saMsgQueueStatusGet&lt;br /&gt;
*saMsgMessageGet&lt;br /&gt;
*saMsgMessageDataFree&lt;br /&gt;
*saMsgQueueGroupCreate&lt;br /&gt;
*saMsgQueueGroupInsert&lt;br /&gt;
*saMsgQueueGroupTrack&lt;br /&gt;
*saMsgQueueGroupNotificationFree&lt;br /&gt;
*saMsgInitialize&lt;br /&gt;
*saMsgFinalize&lt;br /&gt;
*saMsgDispatch&lt;br /&gt;
&lt;br /&gt;
====SAF Component cleanup script support====&lt;br /&gt;
&lt;br /&gt;
5.0 introduces support to configure cleanup commands for SA-AWARE components using the Openclovis IDE. The cleanup command is invoked by AMF on component cleanup or abrupt terminations.&lt;br /&gt;
&lt;br /&gt;
===System Management===&lt;br /&gt;
&lt;br /&gt;
*Support of net-snmp 5.4.2.&lt;br /&gt;
*SNMP Traps in 64 Bit architectures.&lt;br /&gt;
&lt;br /&gt;
===Platform Management===&lt;br /&gt;
&lt;br /&gt;
OpenClovis SAFplus Platform provides pre-integrated support for commonly used ATCA platforms. All service affecting events reported by the shelf manager via HPI are intercepted and service on affected hardware is migrated to standby equipment, ensuring continuity of service. &lt;br /&gt;
&lt;br /&gt;
This support is provided with the '''Platform Support Package (PSP)''' for Piegon Point Shelf manager 500ShMM via openHPI. &lt;br /&gt;
&lt;br /&gt;
PSP is available as a separate product, please contact OpenClovis Sales for further information.&lt;br /&gt;
&lt;br /&gt;
===Features of OpenClovis IDE===&lt;br /&gt;
&lt;br /&gt;
* '''Running SAFplus Platform without manageability components''': IDE is having the support for enable/disable SAFplus Platform components. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
* '''AMF Clean-up script''': IDE is having support to specify the cleanup command in SAF Component. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
* '''Versioning the Configuration Files''': IDE is having support for versioning the configuration files.&lt;br /&gt;
* '''SAF Messaging''': IDE is having support to enable the SAF messaging. For more information refer to ''OpenClovis IDE User Guide''.&lt;br /&gt;
&lt;br /&gt;
===SAFplus Platform Run-Time Director===&lt;br /&gt;
&lt;br /&gt;
A new product, the SAFplus Platform Run-Time Director(ARD), provides cluster management of the SAFplus Platform via a web interface.  This new product is available separately, please contact OpenClovis for demonstration and evaluation.  The ARD has the following features:&lt;br /&gt;
&lt;br /&gt;
* Software Distribution:  Allows individual applications to be packaged in a &amp;quot;bundle&amp;quot; and be deployed to any set of nodes in the cluster.&lt;br /&gt;
* Inservice Software Upgrade: Supports application upgrade in a rolling (in-service) or single-step mode. &lt;br /&gt;
* WYSIWYG: Provides intuitive cluster management via an HTTP (web) interface.&lt;br /&gt;
* AJAX: Displays all SAF AMF entities and their current status -- uses asynchronous Javascript requests to dynamically update browser when changes occur.&lt;br /&gt;
* Dynamic AMF:  Allows modification of AMF entity state and supports creation/deletion of AMF entities.&lt;br /&gt;
* High Availability:  The ARD runs in unprotected or 2N redundancy mode.&lt;br /&gt;
* Python AMF API:  Provides an easy-to-use CLI/programmatic API for cluster management&lt;br /&gt;
* Easy installation:  The ARD can install itself into a running SAFplus Platform model, and therefore requires no changes to your existing model.&lt;br /&gt;
* Extensible: The ARD is built on top of TurboGears, a popular open source web mega-framework.  Thus it provides a basis and example for your custom SaaS or EMS project.&lt;br /&gt;
* Integration of Platform Support Package (PSP), provides chassis configuration through OpenHPI.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Documentation===&lt;br /&gt;
&lt;br /&gt;
* OpenClovis Documentation is provided in two formats now, PDF and HTML. They both contain the same information.&lt;br /&gt;
* A new ''OpenClovis SA Forum Compliance'' document has been added&lt;br /&gt;
* As a courtesy, all relevant SA Forum specifications are supplied as part of our OpenClovis documentation package (only in PDF format).&lt;br /&gt;
* A new ''OpenClovis Sample Application Tutorial'' has been added, replacing the former Modeling Tutorial. The new document provides explanation for the various steps involved in creating and running a new application.&lt;br /&gt;
* The ''OpenClovis SDK User Guide'' has been extended to cover many additional topics, including:&lt;br /&gt;
** Communication infrastructure&lt;br /&gt;
** Hardware platform support&lt;br /&gt;
** How to debug SAFplus Platform based applications&lt;br /&gt;
** Build and deployment&lt;br /&gt;
* The ''OpenClovis API Reference Guide'' has been significantly revised:&lt;br /&gt;
** Numerous coding examples&lt;br /&gt;
** New reference pages for API error codes for easy lookup&lt;br /&gt;
** HTML version of API Refernce Guide is heavily cross-referenced, allowing easy navigation between the various programming construcs&lt;br /&gt;
* New, complete ''OpenClovis SAFplus Platform Console Reference Guide'' as a separate document&lt;br /&gt;
&lt;br /&gt;
[[File:OpenClovis_Note.png]]From this release, the ''Debug CLI'' has been renamed to ''SAFplus Platform Console''.&lt;br /&gt;
&lt;br /&gt;
=='''Migration To Latest Version'''==&lt;br /&gt;
&lt;br /&gt;
Migration of a project or model from an earlier version of the OpenClovis IDE to the most recent version is performed automatically when the model it opened for the first time in the newer vesion. The IDE auto-detects the project's version and changes the internal files so that the information is in valid format and can be read by the current version. It also provides an option to create a backup of the project while performing the migration. For more information, refer to ''OpenClovis IDE User Guide'', Section ''Migrating Project''. IDE supports migration from R2.3 and above.&lt;br /&gt;
&lt;br /&gt;
Any issues regarding migration from a previous version of the IDE are documented below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Change in Log File Locations===&lt;br /&gt;
&lt;br /&gt;
As of release 3.0 all SAFplus Platform runtime log files are created in the &amp;lt;code&amp;gt;var/log&amp;lt;/code&amp;gt; subdirectory of the SAFplus Platform install directory. It is recommended that you update existing models to also use this directory. To update an existing model edit the clLog.xml file in the model's src/config directory. Change all references of '''.:log''' in the &amp;lt;code&amp;gt;&amp;lt;fileLocation&amp;gt;&amp;lt;/code&amp;gt; elements&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;fileLocation&amp;gt;.:log&amp;lt;/fileLocation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to '''.:var/log'''&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;fileLocation&amp;gt;.:var/log&amp;lt;/fileLocation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the model is rebuilt and deployed these new settings will take effect.&lt;br /&gt;
&lt;br /&gt;
===gmsConfig.xml file===&lt;br /&gt;
&lt;br /&gt;
Models of R2.3 may not contain the gmsConfig.xml file if GMS configuration is not done. If you migrate this project you will get error message saying that Migration was unable to create this file. But this is not going to affect further use of model. Model will be OK and user can make changes to it from IDE, generate source, build it, etc without any problem.&lt;br /&gt;
&lt;br /&gt;
Although this error is not going to affect the functionality of the model, there is a work around for this. Before migrating your model, just open up the model in your old IDE setup. Launch &amp;quot;SAFplus Platform Component Configuration&amp;quot; dialog from the Clovis menu. Press OK. Now just migrate the model with new IDE setup, you will not get this error. Bug has been raised for this and it will be fixed in next release.&lt;br /&gt;
&lt;br /&gt;
=='''Known Issues'''==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the known issues in the current release and provides the associated workarounds. These issues arise due to deviation from the normal functioning of the system or as a result of an unexpected behavior of a component or a service.&lt;br /&gt;
&lt;br /&gt;
===Known Issues of OpenClovis SAFplus Platform===&lt;br /&gt;
&lt;br /&gt;
Following are the known issues for OpenClovis SAFplus Platform:&lt;br /&gt;
&lt;br /&gt;
*'''Infrastructure and Communications'''&lt;br /&gt;
** '''TIPC address:''' TIPC with 1.5.12 versions was found to give problems (link unstable) when you have 2 different TIPC netids configured for the same TIPC address. This issue is not seen with the 1.7.x TIPC releases, but in general we recommend you to keep the TIPC addresses unique and not collide with the same addresses on nodes configured with different TIPC netids. One of the symptoms  of this is that the TIPC link between 2 machine starts going UP and DOWN continuously when there is another machine in the network, whose TIPC address is conflicting with address of one of those 2 machines. The behavior can be observed through continuous execution of command &amp;quot;tipc-config -l&amp;quot; or through &amp;quot;dmesg&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
** '''Bug ID #7269'''  A cluster having a mixture of 32bit little endian, 32bit big endian and 64 bit little endian machines/nodes may find that the GMS service in inadvertently terminates.&lt;br /&gt;
*** '''Workaround''' - None&lt;br /&gt;
** '''aspinfo known issues:''' (1) On some systems, especially systems with Python version 2.3, aspinfo can be slow to respond. (2) Some corner cases may not be properly handled and aspinfo may prematurely exit, dumping its Python stack.&lt;br /&gt;
&lt;br /&gt;
* '''Platform Management'''&lt;br /&gt;
** '''Bug ID #7569''' No network connectivity to Shelf Management Module manifests as HPI version mismatch error in Chassis Manager and potentially corrupts openhpi uid map file.&lt;br /&gt;
*** '''Workaround''' - If you see this error, check network connectivity to the Shelf Management Module's IP address from the node running Chassis Manager.  If you still see this error after ensuring connectivity, delete the openhpi_uid.map file found in your SAFplus Platform sandbox's varpath, typically &amp;lt;code&amp;gt;/root/asp/var/run/openhpi_uid.map&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* '''System Management'''&lt;br /&gt;
** '''Bug ID #7313''' If an Alarm Server is restarted after it published an alarm, it won't allow to clear/publish that alarm again.&lt;br /&gt;
*** '''Workaround''' - Currently there is no workaround.&lt;br /&gt;
&lt;br /&gt;
* '''SAF Compliance'''&lt;br /&gt;
** '''Deviation from SAF in Event Service:''' Event Service does not yet support Event Retention as specified in SAF specification. The retention time specified in the clEventPublish() API would have no effect.&lt;br /&gt;
** '''Bug in SAF specificaion B11:''' The clEventDataGet() API of Event Service is in compliance with the SAF specification B11. This allows the user to either allocate memory for the event payload or obtain it from the API by passing a pointer. The latter is not possible with this API as the argument needs to be a pointer to a pointer which is not the case. As per the new specification and the recommended way the user is always required to allocate and free the memory.&lt;br /&gt;
&lt;br /&gt;
===Known Issues of OpenClovis IDE===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Bug ID # 6543: X Error in Ubuntu Installation.''' Starting the IDE in '''Ubuntu''' installation may result some X errors in the console. This is not an IDE issue, this will not affect any of the IDE functionalities.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Workaround''' - See the ''Limitations'' section of the ''OpenClovis IDE User Guide''.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Bug ID # 7247: Configuration of proxy/proxied component relationships does not work reliably.''' The current version of the IDE does not correctly configure a standard SAF proxy/proxied relationship between components in some cases.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Workaround''' - There is no workaround at this time.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Bug ID # 7598: Configuring same directory location for workspace and project-area.''' The current version of IDE does not handle this properly.&lt;br /&gt;
&amp;lt;li&amp;gt;'''SNMP MIB Enumerated Integer Construct Limitations''': During SNMP code generation all enumerated integer labels are converted to &amp;lt;code&amp;gt;#define&amp;lt;/code&amp;gt; statements. The constant names used in these statements are the enumerated integer labels converted to upper case. Because of this the all labels used within an enumerated integer construct must be unique regardless of case.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;'''SNMP MIB V1 TRAP-TYPE Construct Not Supported''': Due to an issue in the Net-SNMP mib2c compiler code generation for MIBs using the V1 TRAP-TYPE construct does not work properly.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Workaround''' - To generate trap code from an SNMP MIB use the SNMP V2 NOTIFICATION-TYPE construct.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Known Issues of Install Package===&lt;br /&gt;
&lt;br /&gt;
* '''Bug ID # 6749: Potential conflict with net-snmp package on local system''': In certain rare instances, building OpenHPI from the included third-party packages during SDK installation fails owing to a conflict with an already-installed version of NetSNMP on the system.  In these instances, it is recommended that NetSNMP be removed from the local system before installing OpenClovis SDK, and that it be reinstalled after completing the SDK installation.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Red Hat Enterprise 4''': On a Red Hat Enterprise Linux 4 system, the 'Development Tools' subset of packages must be installed to cover the requirements for installing OpenClovis SDK.  In general, an installation with the default package set contains all requirements for installation.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Fedora Core 6''': On a Fedora Core 6 system, installation of OpenClovis SAFplus Platform automatically builds and installs the TIPC opensource package.  To build TIPC, the kernel headers must be present and so these are automatically installed (by our ./preinstall-fedora-core.sh script) using the &amp;quot;yum install kernel-devel&amp;quot; command.  On rare configurations, this command does not work correctly.  It is supposed to install headers so that the symbolic link located at &amp;quot;/lib/modules/`uname -r`/build&amp;quot; points to a valid directory of Linux header files.  However, on some systems this symbolic link points to &amp;quot;/usr/src/kernels/2.6.22.14-72.fc6-i586&amp;quot; but the headers are actually installed in &amp;quot;/usr/src/kernels/2.6.22.14-72.fc6-i686&amp;quot;  (note 'i586' vs 'i686').  To resolve this problem, change the symbolic link to point to the correct directory name, and then restart the OpenClovis SAFplus Platform installation.&lt;br /&gt;
&lt;br /&gt;
* '''Configuring TIPC and assigning the SAFplus Platform node address''' to an OpenClovis SAFplus Platform is done pretty well by SAFplus Platform start up script. But if anybody manually configures TIPC and starts SAFplus Platform then there could be miss-configuration, which might end up in an UNSTABLE system. And because of this the whole system (all the SAFplus Platform nodes including the ones which are already up and running properly) have to be brought DOWN and restart the system again.&lt;br /&gt;
&lt;br /&gt;
* '''Installation of SQLite using Preinstall script''': The Preinstall script installs SQLite by default as database engine. It locates SQLite - if it is already installed - without verifying version number. If its version is older than 3.3.13, then SAFplus Platform will fail to start.&lt;br /&gt;
** '''Workaround''' - Use SQLite 3.3.13 or newer. The source code can be downloaded from http://www.sqlite.org/download.html. The user can install the latest version of SQLite if its not present in the repository.&lt;br /&gt;
&lt;br /&gt;
* '''Installation on Solaris 10/SPARC (beta)''': Installation of OpenClovis SAFplus Platform requires the following third party packages installed via either installation media or using pkgadd with packages obtained from http://www.sunfreeware.com/.  Missing third-party packages may cause unpredictable behavior during installation and SDK use.&lt;br /&gt;
** db-4.2.52&lt;br /&gt;
** fileutils&lt;br /&gt;
** flex&lt;br /&gt;
** gcc-3.4.2&lt;br /&gt;
** gdbm-1.8.3&lt;br /&gt;
** glib-2.14.1&lt;br /&gt;
** gmake&lt;br /&gt;
** gtar&lt;br /&gt;
** libintl&lt;br /&gt;
** libiconv&lt;br /&gt;
** ncurses&lt;br /&gt;
** openssl&lt;br /&gt;
** pkgconfig&lt;br /&gt;
** python-2.5.1&lt;br /&gt;
** readline&lt;br /&gt;
** snprintf&lt;br /&gt;
** tipc-solaris-1.7.5 or SUNWtipc&lt;br /&gt;
** SUNWbtool&lt;br /&gt;
** SUNWsprot&lt;br /&gt;
** SUNWhea&lt;br /&gt;
** wget&lt;br /&gt;
&lt;br /&gt;
=='''Environment Related Observation'''==&lt;br /&gt;
&lt;br /&gt;
* '''Bug ID #7549''' When SAFplus Platform is running in non simulation mode, if SAFplus Platform is started from one sandbox, then it can be stopped/zapped from another sandbox.&lt;br /&gt;
&lt;br /&gt;
===Enabled Firewall Can Cause SAFplus Platform to Shutdown===&lt;br /&gt;
The enablement of a firewall on a system running a deployed SAFplus Platform image can cause the software to shutdown. An indication that you may be running into this problem is if you see an entry similar to the following in your log file (in the log file it is one line):&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Wed Sep 26 15:06:54 2007   (SCNodeI0.10499 : GMS.---.---.00036 :  ERROR)&lt;br /&gt;
   [clGmsEngine.c:448] No nodes in the cluster view to run leader &lt;br /&gt;
   electionLeader Election Aborted&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
To resolve this problem disable all filtering in the Netfilter framework by issuing the following command.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -F&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Reusing A Project Area With New Version of OpenClovis SDK===&lt;br /&gt;
Every Project Area is associated with an installation of OpenClovis SDK at a given location.  If one elects to reinstall the SDK at a different location or install a newer version at a different location, the project area will stay associated with the original SDK location.  This allows one to work with multiple versions of the SDK simultaneously.&lt;br /&gt;
In order to use an existing project area with a different or moved installation of OpenClovis SDK, remove the &amp;lt;code&amp;gt;.config&amp;lt;/code&amp;gt; file from your project area directory and re-run &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt; as you normally would to work with a model.&lt;br /&gt;
&lt;br /&gt;
===Running Multiple SAFplus Platform Clusters in the same Subnet===&lt;br /&gt;
If you are running multiple SAFplus Platform clusters within the same subnet, please ensure that the &amp;lt;code&amp;gt;GMS Multicast Port&amp;lt;/code&amp;gt; selected for each cluster is unique. See the ''Setting Group Membership Service Parameters'' sub-section in the ''Configuring SAFplus Platform Components'' chapter of the ''OpenClovis IDE User Guide''.&lt;br /&gt;
&lt;br /&gt;
=='''Documentation Issues'''==&lt;br /&gt;
&lt;br /&gt;
This chapter describes the known issues with the OpenClovis Documentation shipped along with the product.&lt;br /&gt;
&lt;br /&gt;
* Formatting issues&lt;br /&gt;
** Following cross-references pointing to a heading, the PDF viewer will jump to the end of the previous page if the heading is on the top of a page.&lt;br /&gt;
** Firefox web browsers sometimes do not correctly jump to intra-page anchors when the user clicks on a reference. This is a known issue with Firefox. The workaround is to click on Back button and then on the reference again. The browser jumps to the correct position for the 2nd time.&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest.</id>
		<title>Doc:latest.</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest."/>
				<updated>2011-10-24T19:15:51Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* OpenClovis SAFplus Platform Runtime Director Documentation - Release 1.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==OpenClovis SAFplus Availability/Scalability Platform Documentation==&lt;br /&gt;
&lt;br /&gt;
* [[Doc:latest/relnotes | Release Notes ]]&lt;br /&gt;
* [[Doc:latest/safcompliance | SAF Compliance]]&lt;br /&gt;
* [[Doc:latest/installguide | Installation Guide]]&lt;br /&gt;
* [[Doc:latest/tutorial | Sample Application Tutorial]]&lt;br /&gt;
* [[Doc:latest/evalguide | Evaluation System User's Guide]]&lt;br /&gt;
* [[Doc:latest/logtoolguide | LogTool User's Guide]]&lt;br /&gt;
* [[Doc:latest/ideguide | IDE User's Guide]]&lt;br /&gt;
* [[Doc:latest/sdkguide | SDK User's Guide]]&lt;br /&gt;
* [[Doc:latest/taeguide | TAE User Guide]]&lt;br /&gt;
&lt;br /&gt;
==OpenClovis SAFplus Platform Runtime Director Documentation==&lt;br /&gt;
&lt;br /&gt;
* [[Doc:latest/awdguide | Runtime Director User's Guide]]   ([[Doc:latest/awdguideCrawler |web-crawler click here]])&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest.</id>
		<title>Doc:latest.</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest."/>
				<updated>2011-10-24T19:15:40Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* OpenClovis SAFplus Platform Runtime Director Documentation - Release 1.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==OpenClovis SAFplus Availability/Scalability Platform Documentation==&lt;br /&gt;
&lt;br /&gt;
* [[Doc:latest/relnotes | Release Notes ]]&lt;br /&gt;
* [[Doc:latest/safcompliance | SAF Compliance]]&lt;br /&gt;
* [[Doc:latest/installguide | Installation Guide]]&lt;br /&gt;
* [[Doc:latest/tutorial | Sample Application Tutorial]]&lt;br /&gt;
* [[Doc:latest/evalguide | Evaluation System User's Guide]]&lt;br /&gt;
* [[Doc:latest/logtoolguide | LogTool User's Guide]]&lt;br /&gt;
* [[Doc:latest/ideguide | IDE User's Guide]]&lt;br /&gt;
* [[Doc:latest/sdkguide | SDK User's Guide]]&lt;br /&gt;
* [[Doc:latest/taeguide | TAE User Guide]]&lt;br /&gt;
&lt;br /&gt;
==OpenClovis SAFplus Platform Runtime Director Documentation - Release 1.1==&lt;br /&gt;
&lt;br /&gt;
* [[Doc:latest/awdguide | Runtime Director User's Guide]]   ([[Doc:latest/awdguideCrawler |web-crawler click here]])&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest.</id>
		<title>Doc:latest.</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest."/>
				<updated>2011-10-24T19:15:13Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==OpenClovis SAFplus Availability/Scalability Platform Documentation==&lt;br /&gt;
&lt;br /&gt;
* [[Doc:latest/relnotes | Release Notes ]]&lt;br /&gt;
* [[Doc:latest/safcompliance | SAF Compliance]]&lt;br /&gt;
* [[Doc:latest/installguide | Installation Guide]]&lt;br /&gt;
* [[Doc:latest/tutorial | Sample Application Tutorial]]&lt;br /&gt;
* [[Doc:latest/evalguide | Evaluation System User's Guide]]&lt;br /&gt;
* [[Doc:latest/logtoolguide | LogTool User's Guide]]&lt;br /&gt;
* [[Doc:latest/ideguide | IDE User's Guide]]&lt;br /&gt;
* [[Doc:latest/sdkguide | SDK User's Guide]]&lt;br /&gt;
* [[Doc:latest/taeguide | TAE User Guide]]&lt;br /&gt;
&lt;br /&gt;
===OpenClovis SAFplus Platform Runtime Director Documentation - Release 1.1===&lt;br /&gt;
&lt;br /&gt;
* [[Doc:latest/awdguide | Runtime Director User's Guide]]   ([[Doc:latest/awdguideCrawler |web-crawler click here]])&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Main_Page"/>
				<updated>2011-10-24T19:14:15Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: /* Documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Documentation==&lt;br /&gt;
The latest documentation exists in wiki format here: [[Doc:latest.]]  Please help us improve our docs by editing these pages!&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
It also exists in static form here: [http://www.openclovis.org/doc]&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
* [[Installation FAQ | Installation]]&lt;br /&gt;
* [[Building a model FAQ | Building a model]]&lt;br /&gt;
* [[Running ASP FAQ | Running ASP]]&lt;br /&gt;
* [[CLI commands (asp_console) FAQ | ASP CLI commands (asp_console)]]&lt;br /&gt;
* [[Command Line and environment variables FAQ | Command Line and environment variables]]&lt;br /&gt;
* [[TIPC Configuration]]&lt;br /&gt;
===ASP Components===&lt;br /&gt;
* [[Platform Management (PM), Platform Support Package (PSP), and Chassis Manager (CM)]]&lt;br /&gt;
* [[High Availability (AMF) Questions]]&lt;br /&gt;
* [[Logging Questions]]&lt;br /&gt;
&lt;br /&gt;
===Runtime Troubleshooting===&lt;br /&gt;
* [[Process death]]&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/File:OpenClovis_Note.png</id>
		<title>File:OpenClovis Note.png</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/File:OpenClovis_Note.png"/>
				<updated>2011-10-24T19:07:43Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: uploaded a new version of &amp;quot;File:OpenClovis Note.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Log.xml</id>
		<title>Log.xml</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Log.xml"/>
				<updated>2011-10-24T19:07:38Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: 1 revision&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[ClLog.xml]]&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/taeguide/testreport</id>
		<title>Doc:latest/taeguide/testreport</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/taeguide/testreport"/>
				<updated>2011-10-24T19:07:37Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: 1 revision&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page displays the detailed report of test cases run for a particular model. You can reach this page by clicking Go to Report link on project report page.&lt;br /&gt;
&lt;br /&gt;
[[File:Test_report.png|frame|center|'''OpenClovis TAE report server Test Report Page''']]&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:Sdk_4.1/taeguide/testintg</id>
		<title>Doc:Sdk 4.1/taeguide/testintg</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:Sdk_4.1/taeguide/testintg"/>
				<updated>2011-10-24T19:07:35Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: 1 revision&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Integration ===&lt;br /&gt;
&lt;br /&gt;
After you have created the model using IDE and generated the source, add a &amp;quot;test&amp;quot; directory just below the model's root (as a peer to &amp;quot;app&amp;quot;) and make subdirectories below &amp;quot;test&amp;quot; for your major functional blocks.&lt;br /&gt;
&lt;br /&gt;
==== Python TAE Interface ====&lt;br /&gt;
The python testcase files should be present in &amp;quot;&amp;lt;model&amp;gt;/src/test&amp;quot; directory. Since you are probably already programming your test cases in Python using our testcase framework, nothing further need be done.&lt;br /&gt;
&lt;br /&gt;
==== C TAE Interface ====&lt;br /&gt;
The Python &amp;quot;layer&amp;quot; for an exclusively &amp;quot;C&amp;quot; implementation is simple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import openclovis.test.testcase as testcase&lt;br /&gt;
                &lt;br /&gt;
class test(testcase.TestGroup):&lt;br /&gt;
&lt;br /&gt;
    def test_sg006(self):&lt;br /&gt;
        r&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        \testcase   BIC-UTL-BIT.TG001&lt;br /&gt;
        \brief      Test group based on SG &amp;quot;tcSg005Bitmap&amp;quot;&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        # List of service groups to unlock, Maximum time (in seconds) that the test takes to run&lt;br /&gt;
        self.run_sg_based_test(['tcSg005Bitmap'], 60)&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This python file should be present in &amp;quot;&amp;lt;model&amp;gt;/src/test&amp;quot; directory.&lt;br /&gt;
&lt;br /&gt;
You also need to add some test initialization code in clCompAppMain.c of the component. Here is an example of what all you need to initialize/register : &lt;br /&gt;
&lt;br /&gt;
===== Stub1 =====&lt;br /&gt;
In the global context of the file clCompAppMain.c, you need to add following code with BEGIN/END block :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
int&lt;br /&gt;
clTestBitmapRun(ClTcParamListT *param_list)&lt;br /&gt;
{&lt;br /&gt;
    clTestBitmapMain();&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void*&lt;br /&gt;
clTcRunThread(void *param)&lt;br /&gt;
{&lt;br /&gt;
    clTcRun();&lt;br /&gt;
    return NULL;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * ---END_APPLICATION_CODE---&lt;br /&gt;
 */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Where, clTestBitmapMain() is the main test function (where all the test cases will start their execution). The example code for this function is present in &amp;quot;Testcase Implementation&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
===== Stub2 =====&lt;br /&gt;
In main() function, TC initialize should be done in following way : &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    /*&lt;br /&gt;
     * Do the application specific initialization here.&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
     * ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
     */&lt;br /&gt;
    rc = clTcInitialize(&amp;quot;Bitmap Utility&amp;quot;, &amp;quot;BIT&amp;quot;, clTestBitmapRun);&lt;br /&gt;
    if(CL_OK != rc)&lt;br /&gt;
    {&lt;br /&gt;
        clprintf(CL_LOG_SEV_ERROR, &amp;quot;clTcInitialize() failed, rc : 0x%x&amp;quot;, rc);&lt;br /&gt;
        return rc;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    /*&lt;br /&gt;
     * ---END_APPLICATION_CODE---&lt;br /&gt;
     */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Stub3 =====&lt;br /&gt;
Before blocking on AMF file descriptor for callbacks, in main() function a thread should be created to run the test in the thread context. Alternatively, you can block on the AMF file descriptor in another thread and let the test run in main thread.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    /*&lt;br /&gt;
     * ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
     */&lt;br /&gt;
    rc = clOsalTaskCreateDetached(NULL, CL_OSAL_SCHED_OTHER,&lt;br /&gt;
                                  CL_OSAL_THREAD_PRI_NOT_APPLICABLE,&lt;br /&gt;
                                  CL_OSAL_MIN_STACK_SIZE,&lt;br /&gt;
                                  clTcRunThread, NULL);&lt;br /&gt;
    &lt;br /&gt;
    /*&lt;br /&gt;
     * ---END_APPLICATION_CODE---&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
     * Block on AMF dispatch file descriptor for callbacks&lt;br /&gt;
     */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Stub4 =====&lt;br /&gt;
In clCompAppTerminate() finalize the TC in following way : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    /*&lt;br /&gt;
     * ---BEGIN_APPLICATION_CODE--- &lt;br /&gt;
     */&lt;br /&gt;
    clTcFinalize();&lt;br /&gt;
    &lt;br /&gt;
    /*&lt;br /&gt;
     * ---END_APPLICATION_CODE---&lt;br /&gt;
     */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Stub5 =====&lt;br /&gt;
In clCompAppAMFCSISet(), call TC activate in SA_AMF_HA_ACTIVE context :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   switch ( haState )&lt;br /&gt;
    {&lt;br /&gt;
        case SA_AMF_HA_ACTIVE:&lt;br /&gt;
        {&lt;br /&gt;
            /*&lt;br /&gt;
             * AMF has requested application to take the active HA state &lt;br /&gt;
             * for the CSI.&lt;br /&gt;
             */&lt;br /&gt;
&lt;br /&gt;
            /*&lt;br /&gt;
             * ---BEGIN_APPLICATION_CODE---&lt;br /&gt;
             */&lt;br /&gt;
            clTcActivate((ClAmsCSIDescriptorT*)&amp;amp;csiDescriptor, haState);&lt;br /&gt;
 &lt;br /&gt;
            /*&lt;br /&gt;
             * ---END_APPLICATION_CODE---&lt;br /&gt;
             */&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:Sdk_4.1/taeguide/testimpl</id>
		<title>Doc:Sdk 4.1/taeguide/testimpl</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:Sdk_4.1/taeguide/testimpl"/>
				<updated>2011-10-24T19:07:33Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: 1 revision&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Create your model ===&lt;br /&gt;
&lt;br /&gt;
Create a model using the OpenClovis IDE. Your model can use any redundancy model and contain any number of components and/or service groups. It can expect any number of blades. However, the most common configuration will be 2 system controllers and 0 or more payload blades. It would be best if your model supports this configuration (or fewer) and is capable of utilizing extra blades if they exist.&lt;br /&gt;
&lt;br /&gt;
=== Add your tests ===&lt;br /&gt;
&lt;br /&gt;
There are various ways/options to implement SAFplus Platform testcases:&lt;br /&gt;
# Write testcase in C as part of an SAFplus-based component. Such testcases should use the C TAE Interface, see below.&lt;br /&gt;
#* Such testcases should be triggered by unlocking AMF entities, typically Service Groups.&lt;br /&gt;
#* Such testcases should use the TAE C interface to start and end of testcases, and the result of the testcases.&lt;br /&gt;
#* Such testcases will be activated from the TAE robot, using a special 1-line wrapper (explained in &amp;quot;Testcase Integration&amp;quot; section).&lt;br /&gt;
# Write testcases purely in Python at the TAE robot side.&lt;br /&gt;
#* Such testcase is implemented as a test*.py file.&lt;br /&gt;
#* Such testcases can typically do anything that can be done using normal shell access to the target blades and debug CLI access to SAFplus Platform.&lt;br /&gt;
#* In the near future, direct access to HPI actions will also be supported.&lt;br /&gt;
#* '''It is also possible to invoke C functions in your (test) application from the Python test script, provided that the function is exposed using the SOAP RPC method described with a code snippet below.'''&lt;br /&gt;
#* Such testcases may not use the TAE C interface at all.&lt;br /&gt;
# The 3rd type of testcase is a mixture of the two extremes above, and implement tests using the C interface, but also have more than just one line code in the Python layer (robot side).&lt;br /&gt;
&lt;br /&gt;
==== When to Use What Approach? ====&lt;br /&gt;
When you try to decide what is the best approach for a given testcase, think from a application perspective. Some guidelines:&lt;br /&gt;
* If the scenario you want to test is representative of what applications would do, lean more on the C-level implementation. Example:&lt;br /&gt;
** An application uses the checkpoint service to save some data, and a standby component is trying to read that data.&lt;br /&gt;
* If the scenario has to emulate some artificial external events, use the Python layer to induce the event. Example:&lt;br /&gt;
** You need to reset a blade or emulate a kernel crash by invoking some command line commands. Would this code ever be done in a user application? NO! So, you should not (need to) implement this in C, but rather figure out a simple way of doing this from the Python testcase code.&lt;br /&gt;
* If the scenario involves artificial sequencing of otherwise randomly occurring events across multiple nodes, the sequencing is better to be left for the Python layer. Example:&lt;br /&gt;
** You need to bring some components up, and then crash them in a certain order. Again, you should ask: does the code that crashes the component have a natural place in the application? Would a customer ever write such code as natural part of his application? Hardly. Also, would the sequencing be controlled in C from some other application? No. So, in that case implementing the sequencing and the crash is better to be left to the Python (robot) layer.&lt;br /&gt;
&lt;br /&gt;
==== Python TAE Interface ====&lt;br /&gt;
If you plan to implement your tests in a combination of C and Python by invoking some C functions from Python testcase, you must now add the TAE SOAP server and remotely callable functions to your model.  For an example of how to do this, please look at the &amp;quot;sysctrlcomp&amp;quot; component in the &amp;quot;bicTests&amp;quot; model in the &amp;quot;asptest&amp;quot; project [http://clovisforge.openclovis.org:8888/plugins/scmsvn/viewcvs.php/root/bicTests/src/app/sysctrlcomp/clCompAppMain.c?root=asptest&amp;amp;rev=946&amp;amp;view=markup here].  This component is untouched except for the addition of 2 remotely callable functions.  You must also add the &amp;quot;tae&amp;quot; subdirectory, as seen [http://clovisforge.openclovis.org:8888/plugins/scmsvn/viewcvs.php/root/bicTests/src/app/sysctrlcomp/?root=asptest here]. This is where you define and implement your RPC calls.  Finally, you must hook up the Makefiles, so that the &amp;quot;tae&amp;quot; subdirectory is build, as seen [http://clovisforge.openclovis.org:8888/plugins/scmsvn/viewcvs.php/root/bicTests/src/app/sysctrlcomp/Makefile?root=asptest&amp;amp;rev=1270&amp;amp;view=markup here].&lt;br /&gt;
&lt;br /&gt;
Next you must implement your tests in Python, and have them call down to the C layer.  This information is best shown by example [[Doc:Sdk_4.0/taeguide/testimpl#Python_test_case | test_lint.py]]&lt;br /&gt;
&lt;br /&gt;
==== C TAE Interface ====&lt;br /&gt;
* Any service group instances that run tests MUST be called tcSg&amp;lt;number&amp;gt;[Name]&lt;br /&gt;
* For example:&lt;br /&gt;
* tcSg001MessagingTest, tcSg034,&lt;br /&gt;
** To run 2 service group instances simultaneously use tcSg&amp;lt;same number&amp;gt;[different name]&lt;br /&gt;
** For example:&lt;br /&gt;
** tcSg001a and tcSg001b, or tcSg005MsgClient and tcSg005MsgServer&lt;br /&gt;
&lt;br /&gt;
=====Include and Library=====&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;clTestApi.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Code is located in the SAFplus Platform utils library (SAFplus/components/utils/...).&lt;br /&gt;
&lt;br /&gt;
=====Summary=====&lt;br /&gt;
&lt;br /&gt;
The module provides a set of functions that are useful while implementing regression tests.  &lt;br /&gt;
&lt;br /&gt;
The module creates a hierarchy of tests;  a test, a test case, and a test point.  The &amp;quot;test&amp;quot; is started/stopped by clTestInitialize/clTestFinalize (clTestStart/End deprecated) and should precede and succeed all other clTest function calls.  In general, you'll call these functions once each in your program.  Next, within a &amp;quot;test&amp;quot;, you are allowed to implement any number of &amp;quot;test cases&amp;quot;.  A test case is whatever you want it to be, but generally think of it as a grouping based on configuration, load, or strategy.  To start/end a test case, use clTestCaseStart/End.  You can also use &amp;quot;clTestCase&amp;quot; if your test is a single line (like a function call) -- it's just syntactic sugar.  &lt;br /&gt;
&lt;br /&gt;
Finally, individual predicates are called &amp;quot;test points&amp;quot;.  Use the clTestXXX for these.  The basic function is clTest.  You essentially pass it a predicate (an expression that evaluates to a boolean) and it checks the truth of that predicate.  There is also a similar function that lets you also execute code if the test failed.  This is mostly used to skip subsequent test points in a setup where each point requires that the prior succeed.  Finally,  you can claim that a test succeeded, failed or malfunctioned, without checking any predicate.&lt;br /&gt;
&lt;br /&gt;
Malfunctioned?  What's that?  A &amp;quot;malfunction&amp;quot; occurs when initial conditions necessary to run the test were not met. For example, let's say you are running a messaging test.  The test checks that messaging works between 2 processes on the same blade, and then checks between 2 blades.  But what if it is run on a chassis with a single blade?  In this case, the test could call TestMalfunction.&lt;br /&gt;
&lt;br /&gt;
=====Context=====&lt;br /&gt;
&lt;br /&gt;
These functions will act differently depending on the context in which they are executed.  &lt;br /&gt;
&lt;br /&gt;
* If run independent of a Test Automation Environment (TAE) they will print out consistently formatted messages that can be analysed by scripts.  '''To stop the deluge of data, there is a mode that does not print test point successes'''&lt;br /&gt;
&lt;br /&gt;
* If run within a TAE, they will communicate state to the TAE.&lt;br /&gt;
&lt;br /&gt;
Note, some functions ask for formatted strings.  Please refrain from using newline or line feeds &amp;quot;\n&amp;quot; or &amp;quot;\l&amp;quot; since these functions will do formatting for you.  Also, do not use success or failure words, for example &amp;quot;Failed&amp;quot;, &amp;quot;Pass&amp;quot;, &amp;quot;Success&amp;quot;, or &amp;quot;Ok&amp;quot;, since the functions will also add this annotation.&lt;br /&gt;
&lt;br /&gt;
=====Functions=====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TBD&amp;gt; Available C Test APIs (library : libClTcUtils.a, header file : clTestApi.h, clTcUtilsApi.h)&lt;br /&gt;
&lt;br /&gt;
==== Failover support ====&lt;br /&gt;
&lt;br /&gt;
The Python TAE interface can be used to trigger various failures in the chassis.  Organise your tests to use the Python layer.&lt;br /&gt;
&lt;br /&gt;
==== Multi-blade coordination ====&lt;br /&gt;
&lt;br /&gt;
If your test must coordinate the activity of multiple blades then you must use the Python layer. There are rich set of APIs provided by TAE for this purpose.&lt;br /&gt;
&lt;br /&gt;
=== Debug ===&lt;br /&gt;
&lt;br /&gt;
==== Python TAE Interface ====&lt;br /&gt;
You can call your Python-to-C functions outside of the TAE with some very simple code.  In this example, assume that your RPC function is called &amp;quot;Log&amp;quot;, and that you have set the MyPort variable to the TCP port of your TAE server (initialized in your component).  Your function will be magically created as a member of the WSDL.Proxy class, so in the example below it will be called in the line &amp;quot;soap.Log(...)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import pdb&lt;br /&gt;
from SOAPpy import *&lt;br /&gt;
from SOAPpy import WSDL&lt;br /&gt;
Config.simplify_objects = 1&lt;br /&gt;
&lt;br /&gt;
MyPort = 8100&lt;br /&gt;
soap = WSDL.Proxy(&amp;quot;http://localhost:%d/wsdl&amp;quot; % MyPort)&lt;br /&gt;
&lt;br /&gt;
# Call your function.  NOTE you MUST use the keyword=value argument format!&lt;br /&gt;
print soap.Log(severity=1, area=&amp;quot;TST&amp;quot;, context=&amp;quot;RPC&amp;quot;, log=&amp;quot;Test the RPC&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== C TAE Interface ====&lt;br /&gt;
You can debug your own test by unlocking it as you would a normal application through the debug CLI (asp_console).  The output of your test (i.e calls to clTestXXX functions)  will be stored in /var/log/testresults.txt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Python test case===&lt;br /&gt;
&lt;br /&gt;
*test_lint.py&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import pdb&lt;br /&gt;
import openclovis.test.testcase as testcase&lt;br /&gt;
&lt;br /&gt;
class arbitraryname(testcase.TestCase): # The name of the class does not matter&lt;br /&gt;
&lt;br /&gt;
    # This function is executed before each test_xxxx member function is called&lt;br /&gt;
    def set_up(self):&lt;br /&gt;
        &lt;br /&gt;
        # self.fixture is a large data structure that models the whole&lt;br /&gt;
        # chassis or cluster (i.e. all of the machines SAFplus Platform runs on).&lt;br /&gt;
        fix = self.fixture&lt;br /&gt;
        # pdb.set_trace()&lt;br /&gt;
        &lt;br /&gt;
        # Get to the right node in the chassis.&lt;br /&gt;
        node = fix.nodes[&amp;quot;SysCtrl0&amp;quot;]&lt;br /&gt;
        &lt;br /&gt;
        # Connect to a process on the system controller blade so RPC calls can&lt;br /&gt;
        # be made. Note that the port 8100 is &amp;quot;well known&amp;quot; for that application.&lt;br /&gt;
        self.rpc = node.get_rpc(&amp;quot;sysctrl&amp;quot;, 8100)&lt;br /&gt;
&lt;br /&gt;
    # This function is executed after each test_xxxx member function is called&lt;br /&gt;
    def tear_down(self):&lt;br /&gt;
        del self.rpc  # Clean up my RPC client&lt;br /&gt;
&lt;br /&gt;
    def test_doesnotmattername(self): # methods with 'test' prefix are testcases&lt;br /&gt;
        r&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        \testcase   SQA-TAE-REG.TC001&lt;br /&gt;
        \brief      TAE regression test and demo testcase (LINT)&lt;br /&gt;
        \description&lt;br /&gt;
        This is a &amp;quot;veterinary horse&amp;quot; kind of a testcase, demonstrating the&lt;br /&gt;
        various features of the test environment and testing these&lt;br /&gt;
        features in the same time.&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
        ##----------------------------------------------------------------&lt;br /&gt;
        ##&lt;br /&gt;
        ## Logging&lt;br /&gt;
        ##&lt;br /&gt;
        ## .log                             object&lt;br /&gt;
        ## .log.debug()                     method&lt;br /&gt;
        ## .log.info()                      method&lt;br /&gt;
        ## .log.warning()                   method&lt;br /&gt;
        ## .log.error()                     method&lt;br /&gt;
        ## .log.critical()                  method&lt;br /&gt;
        ##&lt;br /&gt;
        ##----------------------------------------------------------------&lt;br /&gt;
        &lt;br /&gt;
        self.log.debug('This is a sample debug message')&lt;br /&gt;
        self.log.info('This is a sample info message')&lt;br /&gt;
        self.log.warning('A sample warning')&lt;br /&gt;
        self.log.error('A sample error that is recoverable')&lt;br /&gt;
        self.log.critical('A sample critical error')&lt;br /&gt;
        &lt;br /&gt;
        ##----------------------------------------------------------------&lt;br /&gt;
        ## Local bash access&lt;br /&gt;
        ##&lt;br /&gt;
        ## .tae_host                        object&lt;br /&gt;
        ## .tae_host.run()                  method&lt;br /&gt;
        ## .tae_host.run_cmd()              method&lt;br /&gt;
        ##&lt;br /&gt;
        ##----------------------------------------------------------------&lt;br /&gt;
        &lt;br /&gt;
        #&lt;br /&gt;
        # Running Unix commands on the local host that the tae robot is&lt;br /&gt;
        # running (this is not part of the fixture), using the pre-opened&lt;br /&gt;
        # bash session 'tae_host':&lt;br /&gt;
        #&lt;br /&gt;
        &lt;br /&gt;
        # Just need output of command. In case of error, an exception is thrown.&lt;br /&gt;
        # Before using 'run' check for a member function that already implements&lt;br /&gt;
        # your command.  If it exists it will parse the output and return&lt;br /&gt;
        # 'Pythonized' data (like a list of filenames for 'ls').&lt;br /&gt;
&lt;br /&gt;
        # If the member function does not exist, consider writing one!&lt;br /&gt;
        res = self.tae_host.run('wc -l /etc/passwd')&lt;br /&gt;
        &lt;br /&gt;
        # res includes the trailing newline; to ignore it, use rstrip()&lt;br /&gt;
        self.log.debug('Output: %s' % res.rstrip())&lt;br /&gt;
        &lt;br /&gt;
        # Need both return code and output (does not throw an exception)&lt;br /&gt;
        rc, out = self.tae_host.run_cmd('wc -l /etc/passwd')&lt;br /&gt;
        self.log.debug('Return values: rc=[%d] out=[%s]' % (rc, out.rstrip()))&lt;br /&gt;
        &lt;br /&gt;
        ##----------------------------------------------------------------&lt;br /&gt;
        ##&lt;br /&gt;
        ## Build server features&lt;br /&gt;
        ##&lt;br /&gt;
        ## .fixture                         object&lt;br /&gt;
        ## .fixture.build_server            object&lt;br /&gt;
        ## .fixture.build_server.run()      method&lt;br /&gt;
        ## .fixture.build_server.run_cmd()  method&lt;br /&gt;
        ## .fixture.build_server.scp()      method&lt;br /&gt;
        ##&lt;br /&gt;
        ##----------------------------------------------------------------&lt;br /&gt;
        &lt;br /&gt;
        # Running Unix commands on the build server of the fixture&lt;br /&gt;
&lt;br /&gt;
        res = self.fixture.build_server.run('hostname')&lt;br /&gt;
        self.log.debug('The buildserver is [%s]' % res.rstrip())&lt;br /&gt;
        &lt;br /&gt;
        # Miscellaneous info about the build server&lt;br /&gt;
&lt;br /&gt;
        self.log.debug('Build server IP    : [%s]' % self.fixture.build_server.ip)&lt;br /&gt;
        self.log.debug('Build server login : [%s]' % self.fixture.build_server.user)&lt;br /&gt;
        self.log.debug('Build server passwd: [%s]' % self.fixture.build_server.password)&lt;br /&gt;
        &lt;br /&gt;
        # Run scp on the build server to copy in or out something&lt;br /&gt;
        # Syntax: scp(frm, to, pw) where either frm or to can also include&lt;br /&gt;
        # a username.&lt;br /&gt;
        self.log.info('Checking accessibility by ping before attempting scp...')&lt;br /&gt;
        if not self.fixture.build_server.run_cmd('ping -c 1 10.10.6.1')[0]:&lt;br /&gt;
            self.fixture.build_server.scp('root@10.10.6.1:.bashrc', '.', 'clovis')&lt;br /&gt;
        &lt;br /&gt;
        ##----------------------------------------------------------------&lt;br /&gt;
        ##&lt;br /&gt;
        ## Fixture target node features&lt;br /&gt;
        ##&lt;br /&gt;
        ## .fixture.nodes                   object, works as dictionary&lt;br /&gt;
        ## .fixture.nodes.keys()            method&lt;br /&gt;
        ## .fixture.nodes.values()          method&lt;br /&gt;
        ## .fixture.nodes.items()           method&lt;br /&gt;
        ## .fixture.nodes[name].name        str&lt;br /&gt;
        ## .fixture.nodes[name].ip          str&lt;br /&gt;
        ## .fixture.nodes[name].user        str&lt;br /&gt;
        ## .fixture.nodes[name].password    str&lt;br /&gt;
        ## .fixture.nodes[name].ping        method&lt;br /&gt;
        ## &lt;br /&gt;
        ##----------------------------------------------------------------&lt;br /&gt;
        &lt;br /&gt;
        # Target node access, based on the model mapping&lt;br /&gt;
        # Key: self.fixture.nodes is a Python dictionary indexed by the node&lt;br /&gt;
        # names. Each element is a Node class with a few useful info and&lt;br /&gt;
        # methods.&lt;br /&gt;
        &lt;br /&gt;
        # List of node names in the fixture:&lt;br /&gt;
        node_names = self.fixture.nodes.keys()&lt;br /&gt;
        self.log.debug('Model node names: %s' % str(node_names))&lt;br /&gt;
        &lt;br /&gt;
        # To access a given node:&lt;br /&gt;
        node = self.fixture.nodes['SysCtrl0']&lt;br /&gt;
&lt;br /&gt;
        # A few useful values in node:&lt;br /&gt;
        self.log.debug('Fixture node name  : [%s]' % node.name)&lt;br /&gt;
        self.log.debug('Fixture node ip    : [%s]' % node.ip)&lt;br /&gt;
        self.log.debug('Fixture node login : [%s]' % node.user)&lt;br /&gt;
        self.log.debug('Fixture node passwd: [%s]' % node.password)&lt;br /&gt;
&lt;br /&gt;
        # A few useful methods:&lt;br /&gt;
        if node.ping(): # ping node from tae server and check if accessible&lt;br /&gt;
            self.log.debug('Fixture [%s] at [%s] is accessible' %&lt;br /&gt;
                           (node.name, node.ip))&lt;br /&gt;
        else:&lt;br /&gt;
            self.log.error('Fixture [%s] at [%s] is not accessible' %&lt;br /&gt;
                           (node.name, node.ip))&lt;br /&gt;
&lt;br /&gt;
        ##----------------------------------------------------------------&lt;br /&gt;
        ##&lt;br /&gt;
        ## Unix commands on fixture node&lt;br /&gt;
        ##&lt;br /&gt;
        ## .fixture.nodes[name].bash            object (session)&lt;br /&gt;
        ## .fixture.nodes[name].bash.run()      method&lt;br /&gt;
        ## .fixture.nodes[name].bash.run_cmd()  method&lt;br /&gt;
        ##&lt;br /&gt;
        ##----------------------------------------------------------------&lt;br /&gt;
        &lt;br /&gt;
        # To run a Unix command line command on the fixture node using a&lt;br /&gt;
        # preinstantiated bash session (this works in the same way as the&lt;br /&gt;
        # build_server bash session above):&lt;br /&gt;
        res = self.fixture.nodes['SysCtrl0'].bash.run('df -h . | tail -n 1')&lt;br /&gt;
        self.log.debug('Disk on fixture node [%s] is [%s] percent full ([%s] available)' %&lt;br /&gt;
                       (node.name, res.split()[4], res.split()[3]))&lt;br /&gt;
&lt;br /&gt;
        # Note you must leave this bash session at the Unix prompt!&lt;br /&gt;
        # For example, do not do .bash.run(&amp;quot;tail -f /var/log/asp&amp;quot;)&lt;br /&gt;
        # For this, you can create your own bash session.&lt;br /&gt;
&lt;br /&gt;
        shell =  self.fixture.nodes['SysCtrl0'].create_bash()&lt;br /&gt;
        # To start a command that you don't expect to complete:&lt;br /&gt;
        # expect = shell.start(&amp;quot;tail -f /var/log/messages&amp;quot;)&lt;br /&gt;
        # Returned is a pexpect object&lt;br /&gt;
&lt;br /&gt;
        ##----------------------------------------------------------------&lt;br /&gt;
        ##&lt;br /&gt;
        ## Other generic fixture node methods (also available as methods&lt;br /&gt;
        ## of any bash session)&lt;br /&gt;
        ##&lt;br /&gt;
        ## .fixture.nodes[name].get_pid()       method&lt;br /&gt;
        ## .fixture.nodes[name].kill()          method&lt;br /&gt;
        ## .fixture.nodes[name].killall()       method&lt;br /&gt;
        ##&lt;br /&gt;
        ##----------------------------------------------------------------&lt;br /&gt;
        &lt;br /&gt;
        # To get list of pids for any running process by given name&lt;br /&gt;
        pids = self.fixture.nodes['SysCtrl0'].get_pid('bash') # returns a list&lt;br /&gt;
        self.log.debug('Number of bash sessions: [%d]' % len(pids))&lt;br /&gt;
        self.log.debug('PID of first bash session: [%s]' % &lt;br /&gt;
                       (len(pids) and pids[0] or 'N/A'))&lt;br /&gt;
&lt;br /&gt;
        # To kill a process by pid or process name&lt;br /&gt;
        node = self.fixture.nodes['SysCtrl0']&lt;br /&gt;
        node.bash.run('ping localhost &amp;gt; /dev/null &amp;amp; ' * 4) # starting 4 pings&lt;br /&gt;
        pids = node.get_pid('ping')&lt;br /&gt;
        self.log.debug('Number of ping sessions: [%d]' % len(pids))&lt;br /&gt;
&lt;br /&gt;
        node.kill(pids[0])&lt;br /&gt;
        node.kill(pids[1], signal=9)&lt;br /&gt;
        self.log.debug('Number of ping sessions: [%d]' % len(node.get_pid('ping')))&lt;br /&gt;
&lt;br /&gt;
        node.killall('ping')&lt;br /&gt;
        self.log.debug('Number of ping sessions: [%d]' % len(node.get_pid('ping')))&lt;br /&gt;
&lt;br /&gt;
        ##----------------------------------------------------------------&lt;br /&gt;
        ##&lt;br /&gt;
        ## SAFplus Platform specific fixture node methods&lt;br /&gt;
        ##&lt;br /&gt;
        ## .fixture.nodes[name].asp_running()   method&lt;br /&gt;
        ## .fixture.nodes[name].start_asp()     method&lt;br /&gt;
        ## .fixture.nodes[name].stop_asp()      method&lt;br /&gt;
        ## .fixture.nodes[name].restart_asp()   method&lt;br /&gt;
        ##&lt;br /&gt;
        ##----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        # Check if SAFplus Platform is running and start it if not&lt;br /&gt;
        &lt;br /&gt;
        # Note, the framework starts the SAFplus Platform before running your test case,&lt;br /&gt;
        # so you can assume that the SAFplus Platform is running.  That is, you don't&lt;br /&gt;
        # need to call this function, unless your test shuts down SAFplus Platform.&lt;br /&gt;
        &lt;br /&gt;
        if self.fixture.nodes['Worker0'].asp_running():&lt;br /&gt;
            self.log.debug('SAFplus Platform is running on the node already')&lt;br /&gt;
        else:&lt;br /&gt;
            self.fixture.nodes['Worker0'].start_asp()&lt;br /&gt;
&lt;br /&gt;
        # Bring down SAFplus Platform and then back&lt;br /&gt;
        if self.fixture.nodes['Worker0'].asp_running():&lt;br /&gt;
            self.log.debug('Stopping SAFplus')&lt;br /&gt;
            self.fixture.nodes['Worker0'].stop_asp()&lt;br /&gt;
        self.fixture.nodes['Worker0'].start_asp()&lt;br /&gt;
        &lt;br /&gt;
        # Restart SAFplus Platform in a single command&lt;br /&gt;
        self.fixture.nodes['Worker0'].restart_asp()&lt;br /&gt;
                    &lt;br /&gt;
        ##----------------------------------------------------------------&lt;br /&gt;
        ##&lt;br /&gt;
        ## Fixture-wide methods&lt;br /&gt;
        ## Note that all fixture-wide methods have node equivalents that&lt;br /&gt;
        ## have the same name but are members of the 'node' object.&lt;br /&gt;
        ##&lt;br /&gt;
        ## .fixture.start_asp()                 method&lt;br /&gt;
        ## .fixture.stop_asp()                  method&lt;br /&gt;
        ## .fixture.restart_asp()               method&lt;br /&gt;
        ##&lt;br /&gt;
        ##----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        &lt;br /&gt;
        # Stopping SAFplus Platform on all nodes&lt;br /&gt;
        ### self.fixture.stop_asp()&lt;br /&gt;
        &lt;br /&gt;
        # Starting up SAFplus Platform on all nodes&lt;br /&gt;
        ### self.fixture.start_asp()&lt;br /&gt;
        &lt;br /&gt;
        # Restarting SAFplus Platform on all nodes&lt;br /&gt;
        # Does it wait?&lt;br /&gt;
        ### self.fixture.restart_asp()&lt;br /&gt;
&lt;br /&gt;
        # self.fixture.wait_until_asp_up(50)   # TBD, &lt;br /&gt;
        &lt;br /&gt;
        ##----------------------------------------------------------------&lt;br /&gt;
        ##&lt;br /&gt;
        ## Test case python script debugging&lt;br /&gt;
        ##&lt;br /&gt;
        ## pdb.set_trace()                      method&lt;br /&gt;
        ##&lt;br /&gt;
        ##----------------------------------------------------------------&lt;br /&gt;
        ##&lt;br /&gt;
        ## To get the python debugger break during test execution, issue the&lt;br /&gt;
        ## pdb.set_trace() call ANYWHERE IN YOUR TESTCASE code. To check this&lt;br /&gt;
        ## feature out, uncomment the two lines below&lt;br /&gt;
        ##&lt;br /&gt;
        &lt;br /&gt;
        #import pdb&lt;br /&gt;
        #pdb.set_trace()&lt;br /&gt;
&lt;br /&gt;
        ##----------------------------------------------------------------&lt;br /&gt;
        ##&lt;br /&gt;
        ## Debug CLI access&lt;br /&gt;
        ##&lt;br /&gt;
        ## .fixture.has_debug_cli()             method&lt;br /&gt;
        ## .fixture.start_debug_cli()           method&lt;br /&gt;
        ## .fixture.debug_cli.root()            method&lt;br /&gt;
        ## .fixture.debug_cli.run()             method&lt;br /&gt;
        ##&lt;br /&gt;
        ##----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
        # All &amp;quot;get_xxx&amp;quot; functions return a cached version if it exists or create&lt;br /&gt;
        # if it does not.&lt;br /&gt;
        # All &amp;quot;create_xxx&amp;quot; functions create a new one and pass it back to you.&lt;br /&gt;
&lt;br /&gt;
        # In the case of the debug CLI, there can be only 1 instance, so there&lt;br /&gt;
        # is no &amp;quot;create&amp;quot; function.&lt;br /&gt;
        dbgcli = self.fixture.get_debug_cli()&lt;br /&gt;
        &lt;br /&gt;
        # Run some native debug cli commands:&lt;br /&gt;
        dbgcli.run('setc 1')&lt;br /&gt;
        dbgcli.run('setc cpm')&lt;br /&gt;
&lt;br /&gt;
        # You may also use the fixture variable debug_cli, if you are sure&lt;br /&gt;
        # that it is valid.&lt;br /&gt;
        res = self.fixture.debug_cli.run('compList')&lt;br /&gt;
        self.log.debug('First 20 partial lines of component list:')&lt;br /&gt;
        for line in res.splitlines()[:20]:&lt;br /&gt;
            self.log.debug('&amp;gt;&amp;gt; %-65s ...' % line[:60])&lt;br /&gt;
&lt;br /&gt;
    ##----------------------------------------------------------------&lt;br /&gt;
    ##&lt;br /&gt;
    ## Determining test result&lt;br /&gt;
    ##&lt;br /&gt;
    ## Test ERROR is not the same as a FAIL-ed test&lt;br /&gt;
    ##&lt;br /&gt;
    ## The former means the test is not conclusive because the test&lt;br /&gt;
    ## procedure itself could not be completed dur to some errors.&lt;br /&gt;
    ## The latter means the test subject failed the test.&lt;br /&gt;
    ##&lt;br /&gt;
    ## Test errors:  any unhandled Python exception that occurs during&lt;br /&gt;
    ##               running the testcase will be regarded by the test&lt;br /&gt;
    ##               framework as a test error and the failure of the&lt;br /&gt;
    ## Test failure: test failures are generated when an explicit&lt;br /&gt;
    ##               verification of some result produces a negative&lt;br /&gt;
    ##               result. These types of check are done using one of&lt;br /&gt;
    ##               the following method calls:&lt;br /&gt;
    ##&lt;br /&gt;
    ## .assert_true(condition [, failure info])&lt;br /&gt;
    ## .assert_false(condition [, failure info])&lt;br /&gt;
    ## .assert_equal(value1, value2 [, failure info])&lt;br /&gt;
    ## .assert_not_equal(value1, value2 [, failure info])&lt;br /&gt;
    ## .assert_almost_equal(value1, value2 [, failure info])&lt;br /&gt;
    ## .assert_not_almost_equal(value1, value2 [, failure info])&lt;br /&gt;
    ## .assert_raises(exception [, failure info])&lt;br /&gt;
    ##&lt;br /&gt;
    ## These are demonstrated in separate testcases below not as part&lt;br /&gt;
    ## of this LINT testcase&lt;br /&gt;
    ##&lt;br /&gt;
    ##----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
    def test_always_errors1(self):&lt;br /&gt;
        r&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        \testcase   SQA-TAE-REG.TC002&lt;br /&gt;
        \brief      This testcase should always produce an ERROR&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        l = [0, 1]&lt;br /&gt;
        print l[100] # index is out of range, will generate a python exception&lt;br /&gt;
    &lt;br /&gt;
    def test_always_fails(self):&lt;br /&gt;
        r&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        \testcase   SQA-TAE-REG.TC003&lt;br /&gt;
        \brief      This testcase should always produce a FAIL&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.assert_equal(1, 10, 'This test is failed purposely')&lt;br /&gt;
&lt;br /&gt;
    def test_well_documented(self):&lt;br /&gt;
        r&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        \testcase   SQA-TAE-REG.TC004&lt;br /&gt;
        &lt;br /&gt;
        \brief      This is a well documented testcase example&lt;br /&gt;
        &lt;br /&gt;
        \description&lt;br /&gt;
        You can have an arbitrarily long description of the testcase.&lt;br /&gt;
        You can have an arbitrarily long description of the testcase.&lt;br /&gt;
        You can have an arbitrarily long description of the testcase.&lt;br /&gt;
&lt;br /&gt;
        You can have an arbitrarily long description of the testcase.&lt;br /&gt;
        You can have an arbitrarily long description of the testcase.&lt;br /&gt;
        You can have an arbitrarily long description of the testcase.&lt;br /&gt;
&lt;br /&gt;
        You can have an arbitrarily long description of the testcase.&lt;br /&gt;
        You can have an arbitrarily long description of the testcase.&lt;br /&gt;
        You can have an arbitrarily long description of the testcase.&lt;br /&gt;
&lt;br /&gt;
        \state      enabled&lt;br /&gt;
&lt;br /&gt;
        \prerequisites&lt;br /&gt;
         * SC0 is accessible&lt;br /&gt;
         * OS booted on system controller&lt;br /&gt;
         * Python test environment (with PyOpenHPI) is available on SC0&lt;br /&gt;
         * IP address to shelf manager is know as SHMGR_IP environment variable&lt;br /&gt;
&lt;br /&gt;
        \steps&lt;br /&gt;
         1 start test application which will attempt to setup HPI session and&lt;br /&gt;
           wait till its output is printed&lt;br /&gt;
&lt;br /&gt;
        \criteria&lt;br /&gt;
          \li HPI session open returns with success&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        pass # always passes&lt;br /&gt;
&lt;br /&gt;
    def test_unimplemented(self):&lt;br /&gt;
        r&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        \testcase   SQA-TAE-REG.TC005&lt;br /&gt;
        &lt;br /&gt;
        \brief      Unimplemented testcase (always errors out)&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.log.debug('This is an unimplemented testcase')&lt;br /&gt;
        raise testcase.TestcaseNotImplemented&lt;br /&gt;
&lt;br /&gt;
    def test_with_measurement(self):&lt;br /&gt;
        r&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        \testcase   SQA-TAE-REG.TC006&lt;br /&gt;
        &lt;br /&gt;
        \brief      Testcase example with measurements&lt;br /&gt;
        &lt;br /&gt;
        \description&lt;br /&gt;
        This measures two attributes, as described below.&lt;br /&gt;
        &lt;br /&gt;
        \measured&lt;br /&gt;
        \data FREE_DISK_SPACE  [MB] Free disk space on first node&lt;br /&gt;
        \data RANDOM_NUMBERS   []   Random numbers in [0, 1) interval&lt;br /&gt;
        \data ASP_STARTUP_TIME [ms] Ping latency between two nodes&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        ##----------------------------------------------------------------&lt;br /&gt;
        ##&lt;br /&gt;
        ## Measurements related stuff&lt;br /&gt;
        ##&lt;br /&gt;
        ## openclovis.test.bin                  module&lt;br /&gt;
        ## openclovis.test.bin.Bin()            class&lt;br /&gt;
        ## openclovis.test.bin.Bin.record()     method&lt;br /&gt;
        ## .report_data()                       method&lt;br /&gt;
        ##&lt;br /&gt;
        ##----------------------------------------------------------------&lt;br /&gt;
        &lt;br /&gt;
        import openclovis.test.bin as bin&lt;br /&gt;
&lt;br /&gt;
        # Free disk space example&lt;br /&gt;
        raw_data = self.fixture.nodes['SysCtrl0'].bash.run('df -m . | tail -n 1')&lt;br /&gt;
        free_space = int(raw_data.split()[3])&lt;br /&gt;
        self.report_data(bin.Bin('FREE_DISK_SPACE', free_space, unit='MB'))&lt;br /&gt;
&lt;br /&gt;
        # Random number measurement&lt;br /&gt;
        import random&lt;br /&gt;
        array = [random.random() for foo in range(10000)]&lt;br /&gt;
        self.report_data(bin.Bin('RANDOM_NUMBERS', array, fmt='%6.4f'))&lt;br /&gt;
        &lt;br /&gt;
        # Step-by-step data collection&lt;br /&gt;
        data = bin.Bin('ASP_STARTUP_TIME', unit='s')&lt;br /&gt;
        import time&lt;br /&gt;
        self.log.info('Measuring SAFplus Platform startup time, using 5 runs')&lt;br /&gt;
        if self.fixture.nodes['Worker0'].asp_running():&lt;br /&gt;
            self.fixture.nodes['Worker0'].stop_asp()&lt;br /&gt;
        for i in range(5):&lt;br /&gt;
            start_time = time.time()&lt;br /&gt;
            self.fixture.nodes['Worker0'].start_asp()&lt;br /&gt;
            stop_time = time.time()&lt;br /&gt;
            data.record(stop_time - start_time)&lt;br /&gt;
            self.fixture.nodes['Worker0'].stop_asp()&lt;br /&gt;
            self.log.debug('- Iteration %d done' % (i+1))&lt;br /&gt;
        self.report_data(data)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    def test_with_rpc(self):&lt;br /&gt;
        r&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        \testcase   SQA-TAE-REG.TC007&lt;br /&gt;
        \brief      Testcase example with RPC calls&lt;br /&gt;
        &lt;br /&gt;
        \description&lt;br /&gt;
        This runs 2 functions on the target within a particular process.&lt;br /&gt;
        To see the server side implementation, look at:&lt;br /&gt;
        SAFplus/models/unitTests/app/sysctrlcomp/tae&lt;br /&gt;
        &lt;br /&gt;
        \measured&lt;br /&gt;
        \data Length of a task delay.&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        # This example shows passing strings.&lt;br /&gt;
        self.rpc.Log(severity=1,area=&amp;quot;TST&amp;quot;,context=&amp;quot;LNT&amp;quot;, log=&amp;quot;Testing the RPC mechanism.  This log actually originated from the test_lint.py script running on the TAE.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        # This example shows how a complex data structure can be returned.&lt;br /&gt;
        ret = self.rpc.TaskSleep(sec=3,msec=0)&lt;br /&gt;
        self.log.info(&amp;quot;Raw data received from RPC call: %s&amp;quot; % str(ret))&lt;br /&gt;
        self.log.info('Sleep of 3 seconds was measured (on the node) as taking %d ms' % ((int(ret[&amp;quot;sec&amp;quot;]) * 1000) + int(ret[&amp;quot;msec&amp;quot;])))&lt;br /&gt;
        &lt;br /&gt;
    def test_disabled(self):&lt;br /&gt;
        r&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        \testcase   SQA-TAE-REG.TC008&lt;br /&gt;
        \brief      Disabled testcase&lt;br /&gt;
        \state      disabled&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        self.log.critical('You should never see this testcase executed by TAE')&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===C testcase (SG based)===&lt;br /&gt;
&lt;br /&gt;
*testBitmap.c&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void TC2_BitMap(void)&lt;br /&gt;
{&lt;br /&gt;
    ClBitmapHandleT bitHdl  =   CL_BM_INVALID_BITMAP_HANDLE;&lt;br /&gt;
    ClRcT           rc      =   CL_OK;&lt;br /&gt;
    ClRcT           retVal  =   CL_OK;&lt;br /&gt;
    ClUint32T       bitCount=   0;&lt;br /&gt;
    ClUint32T       bitNum  =   0;&lt;br /&gt;
&lt;br /&gt;
    for(bitCount = 3, bitNum = 1; bitCount &amp;lt;= 100; bitCount += 2, bitNum++)&lt;br /&gt;
    {&lt;br /&gt;
        clTestCaseMalfunction(&lt;br /&gt;
               (&amp;quot;Bitmap create&amp;quot;),&lt;br /&gt;
               (rc = clBitmapCreate(&amp;amp;bitHdl, bitCount)) == CL_OK,&lt;br /&gt;
               return);&lt;br /&gt;
&lt;br /&gt;
        clTest((&amp;quot;Bitmap set bit [%d]&amp;quot;, bitNum),&lt;br /&gt;
               (rc = clBitmapBitSet(bitHdl, bitNum)) == CL_OK,&lt;br /&gt;
               (&amp;quot;Error: rc[0x %x]&amp;quot;, rc));&lt;br /&gt;
&lt;br /&gt;
        clTest((&amp;quot;Bitmap is bit[%d] set?&amp;quot;, bitNum),&lt;br /&gt;
               (((clBitmapIsBitSet(bitHdl, bitNum, &amp;amp;retVal)) &lt;br /&gt;
                 == CL_BM_BIT_SET) &amp;amp;&amp;amp; CL_OK == retVal),&lt;br /&gt;
               (&amp;quot;Error: rc[0x %x]&amp;quot;, retVal));&lt;br /&gt;
&lt;br /&gt;
        clTest((&amp;quot;Bitmap set bit [%d]&amp;quot;, (bitNum + 2)),&lt;br /&gt;
               (rc = clBitmapBitSet(bitHdl, (bitNum + 2))) == CL_OK,&lt;br /&gt;
               (&amp;quot;Error: rc[0x %x]&amp;quot;, rc));&lt;br /&gt;
&lt;br /&gt;
        clTest((&amp;quot;Bitmap is bit[%d] set?&amp;quot;, (bitNum + 2)),&lt;br /&gt;
               (((clBitmapIsBitSet(bitHdl, (bitNum + 2), &amp;amp;retVal)) &lt;br /&gt;
                 == CL_BM_BIT_SET) &amp;amp;&amp;amp; CL_OK == retVal),&lt;br /&gt;
               (&amp;quot;Error: rc[0x %x]&amp;quot;, retVal));&lt;br /&gt;
&lt;br /&gt;
        clTest((&amp;quot;Bitmap destroy&amp;quot;),&lt;br /&gt;
               (rc = clBitmapDestroy(bitHdl)) == CL_OK,&lt;br /&gt;
               (&amp;quot;Error: rc[0x %x]&amp;quot;, rc));&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void&lt;br /&gt;
clTestBitmapMain(void)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    clTestGroupInitialize((&amp;quot;Test of Bitmap utility&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    clTestCase((&amp;quot;BIC-UTL-BIT.TC003 Set Bits in a bitmap and Verify whether the bits are set&amp;quot;), &lt;br /&gt;
		TC2_BitMap());&lt;br /&gt;
&lt;br /&gt;
    (void) clTestGroupFinalize();&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* This example shows just one test case of many that can appear in a single service group.  To make this example a &amp;quot;fully&amp;quot; runnable standalone test, you would have to call clTestGroupInitialize and clTestGroupFinalize functions before and after calling a set of clTestCase().&lt;br /&gt;
&lt;br /&gt;
*When a service group is assigned work (a CSI) this should trigger your test to run. When your test is complete it should simply wait until the work is unassigned. Also, the service group should be modeled to be in lock assigned mode.&lt;br /&gt;
&lt;br /&gt;
* Your tests must call the functions in the Test API defined in &amp;quot;clTestApi.h&amp;quot;.  You can also use the Test Lifecycle APIs defined in &amp;quot;clTcUtilsApi.h&amp;quot; to facilitate starting test cases with different parameters.&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/taeguide/testcases</id>
		<title>Doc:latest/taeguide/testcases</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/taeguide/testcases"/>
				<updated>2011-10-24T19:07:31Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: 1 revision&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains the list of all test cases which are being run and reported to the report server. It also shows total number of a test case run reported to the report server and success/failure rate per test case.&lt;br /&gt;
[[File:TAE_testcases.png|frame|center|'''OpenClovis TAE report server Testcases Page''']]&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:Sdk_4.1/taeguide/screens</id>
		<title>Doc:Sdk 4.1/taeguide/screens</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:Sdk_4.1/taeguide/screens"/>
				<updated>2011-10-24T19:07:30Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: 1 revision&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Screens==&lt;br /&gt;
&lt;br /&gt;
Below is a list of some of the screen shots of various tabs present on OpenClovis Test Automation Environment page:&lt;br /&gt;
&lt;br /&gt;
* [[Doc:sdk_4.1/taeguide/projects | Projects ]]&lt;br /&gt;
* [[Doc:sdk_4.1/taeguide/projectSummary | Project Summary ]]&lt;br /&gt;
* [[Doc:sdk_4.1/taeguide/reports | Test Reports ]]&lt;br /&gt;
* [[Doc:sdk_4.1/taeguide/testreport | Test Report in Detail ]]&lt;br /&gt;
* [[Doc:sdk_4.1/taeguide/logfiles | TAE log files and Node postmortem files ]]&lt;br /&gt;
* [[Doc:sdk_4.1/taeguide/models | Models ]]&lt;br /&gt;
* [[Doc:sdk_4.1/taeguide/fixtures | TAE Fixtures ]]&lt;br /&gt;
* [[Doc:sdk_4.1/taeguide/testcases | Testcases ]]&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:Sdk_4.1/taeguide/runtae</id>
		<title>Doc:Sdk 4.1/taeguide/runtae</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:Sdk_4.1/taeguide/runtae"/>
				<updated>2011-10-24T19:07:28Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: 1 revision&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===TAE help===&lt;br /&gt;
&lt;br /&gt;
To know about various TAE options, you can use &amp;quot;tae --help&amp;quot;. This provides detailed information about all the TAE options and their usage.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;TAEBASE&amp;gt;/tae/tae --help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
~~~~~~~  OpenClovis Test Automation Environment (TAE) - Version 0.8 ~~~~~~~~~~&lt;br /&gt;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
  tae [options] [command]&lt;br /&gt;
Options:&lt;br /&gt;
  -h, --help    This help page&lt;br /&gt;
  fetch&lt;br /&gt;
  -f, --force   Force action despite stamp shows it has been completed in&lt;br /&gt;
                previous session, but executing unfinished prerequisites&lt;br /&gt;
  -i, --ignore  Ignore prerequisites. Same as -f (--force), but it does not&lt;br /&gt;
                check for prerequisites. This should be used only if you&lt;br /&gt;
                specifically want to skip prerequisites.&lt;br /&gt;
  -q, --quiet   Be more quiet (can be issued multiple times)&lt;br /&gt;
  -v, --verbose Be more verbose (can be issued multiple times)&lt;br /&gt;
  -s, --suppress&lt;br /&gt;
                Do not show testcase error details on TAE console output&lt;br /&gt;
  -u, --unload-tipc&lt;br /&gt;
                Unload the tipc kernel module before starting SAFplus Platform during the&lt;br /&gt;
                start stage&lt;br /&gt;
  -b, --no-nodeinfo&lt;br /&gt;
                Do not show nodeinfo/bladeinfo for each fixture node. By&lt;br /&gt;
                default this information is requested and printed for each node&lt;br /&gt;
  -w &amp;lt;cols&amp;gt;, --width=&amp;lt;cols&amp;gt;&lt;br /&gt;
                Use this width instead of the actual width of the terminal&lt;br /&gt;
                when printing results to output&lt;br /&gt;
  -c, --clean   Run a 'make clean' before configure&lt;br /&gt;
  -r, --revert  Run an 'svn revert' on any SVN-based images before running&lt;br /&gt;
                'svn update' on the tree&lt;br /&gt;
  --show-config Shows all the config attributes parsed from the config files&lt;br /&gt;
                and then quits&lt;br /&gt;
  -o &amp;lt;variable&amp;gt;=[&amp;lt;value&amp;gt;]&lt;br /&gt;
                Allow manual override of a config attribute&lt;br /&gt;
  -d            Start tae in debug mode. Any Python error will launch a JIT&lt;br /&gt;
                Python debug (pdb) session, allowing quick code analyzis.&lt;br /&gt;
                This applies to Python errors in testcases too, which would&lt;br /&gt;
                otherwise let TAE to continue&lt;br /&gt;
  -n, --netid   Manual override of the TIPC netid that will be used on the&lt;br /&gt;
                target&lt;br /&gt;
  -p &amp;lt;port&amp;gt;, --gms-port=&amp;lt;port&amp;gt;&lt;br /&gt;
                Manual override of the GMS port number used on the target&lt;br /&gt;
  -m &amp;lt;mcast-ip&amp;gt;, --gms-mcast=&amp;lt;mcast-ip&amp;gt;&lt;br /&gt;
                Manual override of the GMS multicast IP address&lt;br /&gt;
  -L, --list    List test cases in model&lt;br /&gt;
  -l &amp;lt;file&amp;gt;, --log=&amp;lt;file&amp;gt;&lt;br /&gt;
                Put detailed tae log here (default is log/tae.log)&lt;br /&gt;
  -t &amp;lt;filter&amp;gt;, --testcase-filter=&amp;lt;filter&amp;gt;&lt;br /&gt;
                Execute test cases matching this filter expression only (by&lt;br /&gt;
                default all testcases in model are executed). A filter&lt;br /&gt;
                expression is a testcase identifier, with wildcard characters&lt;br /&gt;
                also allowed. Examples:&lt;br /&gt;
                    TAE-TST-ACC.TC001&lt;br /&gt;
                    TAE-TST-ACC.TC0??&lt;br /&gt;
                    *-ACC*&lt;br /&gt;
                    *TC001&lt;br /&gt;
  -T &amp;lt;file&amp;gt;, --testcase-file=&amp;lt;file&amp;gt;&lt;br /&gt;
                Execute test cases specified in this file. The first word of&lt;br /&gt;
                each line is treated as a filter expression which will be&lt;br /&gt;
                matched against testcase ids. Lines started with a comment&lt;br /&gt;
                character (#) are ignored.&lt;br /&gt;
  -C &amp;lt;config-file&amp;gt;, --config=&amp;lt;file&amp;gt;&lt;br /&gt;
                Config file to define the model, fixture, mapping, and other&lt;br /&gt;
                operational parameters. This information can be provided in&lt;br /&gt;
                one single file, or can be separated into multiple config&lt;br /&gt;
                files. To read more than one config file this option can be&lt;br /&gt;
                used repeatedly. If the same configuration attribute is defined&lt;br /&gt;
                in more than one file, the last read file takes precedence.&lt;br /&gt;
                If no config file is specified, tae will attempt to&lt;br /&gt;
                read all local files with '*.cfg' extensions in alphabetical&lt;br /&gt;
                order.&lt;br /&gt;
&lt;br /&gt;
  Deprecated config file options:&lt;br /&gt;
  The following four options are still allowed, but their use is deprecated.&lt;br /&gt;
  Use the -C option instead to read any and all config files.&lt;br /&gt;
  -E &amp;lt;file&amp;gt;, --environment=&amp;lt;file&amp;gt;&lt;br /&gt;
                Environment definition config file.&lt;br /&gt;
  -F &amp;lt;file&amp;gt;, --fixture=&amp;lt;file&amp;gt;&lt;br /&gt;
                Test fixture config file.&lt;br /&gt;
  -M &amp;lt;file&amp;gt;, --model=&amp;lt;file&amp;gt;&lt;br /&gt;
                Model definition config file.&lt;br /&gt;
  -P &amp;lt;file&amp;gt;, --mapping=&amp;lt;file&amp;gt;&lt;br /&gt;
                Model node name to fixture node mapping config.&lt;br /&gt;
&lt;br /&gt;
Command:&lt;br /&gt;
&lt;br /&gt;
  Command describes what needs to be done in terms of the sequential stages&lt;br /&gt;
  of a full test run. The following stages are defined (in the order of&lt;br /&gt;
  progression):&lt;br /&gt;
&lt;br /&gt;
    fetch, populate, configure, build, package, deploy, start, test, stop&lt;br /&gt;
&lt;br /&gt;
  The following forms are allowed as command:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;stage&amp;gt;     Run up to this stage, doing all prerequisites (any previous&lt;br /&gt;
                stages that were not done yet)&lt;br /&gt;
&lt;br /&gt;
  When no command is specified, the last stage  (report) is assumed to be the&lt;br /&gt;
  target stage.&lt;br /&gt;
&lt;br /&gt;
  When combined with the -f (--force) option, the command can be in either of&lt;br /&gt;
  the following forms:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;stage&amp;gt;     Redo this stage even if it has been done before. Also do all&lt;br /&gt;
                prerequisite stages if they have not been completed yet&lt;br /&gt;
    &amp;lt;stage&amp;gt;    Redo all stages from fetch to the named stage, even if all or&lt;br /&gt;
                some have been done previously.&lt;br /&gt;
    &amp;lt;stage&amp;gt;:    Starting from named stage, redo everything&lt;br /&gt;
    &amp;lt;st1&amp;gt;:&amp;lt;st2&amp;gt; Redo everything from stage st1 through stage st2&lt;br /&gt;
&lt;br /&gt;
  When the -i (--ignore) option used, TAE does not check for prerequisites,&lt;br /&gt;
  but attempt to run the specified stage or stages. It implies the -f (--force)&lt;br /&gt;
  option.&lt;br /&gt;
&lt;br /&gt;
  The meanings of these stages are:&lt;br /&gt;
&lt;br /&gt;
    fetch       Fetch model for purpose of test case extract&lt;br /&gt;
    populate    Grab the images and populate working dirs for build&lt;br /&gt;
    configure   Configure the project for target fixture&lt;br /&gt;
    build       Build project for target fixture&lt;br /&gt;
    package     Package project for target fixture deployment&lt;br /&gt;
    deploy      Deploy images to target fixture&lt;br /&gt;
    start       Bring up SAFplus Platform on target fixture&lt;br /&gt;
    test        Run all or selected tests&lt;br /&gt;
    stop        Shut down SAFplus Platform on target fixture&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TAE configuration files===&lt;br /&gt;
To run TAE with your model, you need to create a directory (rest of the document will refer to this directory using the symbol &amp;lt;TAECFGDIR&amp;gt;). It is generally a good idea to create separate &amp;lt;TAECFGDIR&amp;gt; for testing different models. A &amp;lt;TAECFGDIR&amp;gt; should contain at least following configuration files (these are just sample files, you need to change the configuration according to your requirement):&lt;br /&gt;
&lt;br /&gt;
====mapping.cfg====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- This file maps SAFplus Platform model node names to fixture node names --&amp;gt;&lt;br /&gt;
&amp;lt;map_config ver=&amp;quot;1.0.0.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;mapping&amp;gt;&lt;br /&gt;
    &amp;lt;SCNode0  node=&amp;quot;node1&amp;quot; role=&amp;quot;controller&amp;quot; order=&amp;quot;1&amp;quot; asp_dir=&amp;quot;/root/simulation/asp1&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;SCNode1  node=&amp;quot;node2&amp;quot; role=&amp;quot;controller&amp;quot; order=&amp;quot;2&amp;quot; asp_dir=&amp;quot;/root/simulation/asp2&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;WorkerNode0  node=&amp;quot;node3&amp;quot; role=&amp;quot;worker&amp;quot; order=&amp;quot;3&amp;quot; asp_dir=&amp;quot;/root/simulation/asp3&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;WorkerNode1  node=&amp;quot;node4&amp;quot; role=&amp;quot;worker&amp;quot; order=&amp;quot;4&amp;quot; asp_dir=&amp;quot;/root/simulation/asp4&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;WorkerNode2  node=&amp;quot;node5&amp;quot; role=&amp;quot;worker&amp;quot; order=&amp;quot;5&amp;quot; asp_dir=&amp;quot;/root/simulation/asp5&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;WorkerNode3  node=&amp;quot;node6&amp;quot; role=&amp;quot;worker&amp;quot; order=&amp;quot;6&amp;quot; asp_dir=&amp;quot;/root/simulation/asp6&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;WorkerNode4  node=&amp;quot;node7&amp;quot; role=&amp;quot;worker&amp;quot; order=&amp;quot;7&amp;quot; asp_dir=&amp;quot;/root/simulation/asp7&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;WorkerNode5  node=&amp;quot;node8&amp;quot; role=&amp;quot;worker&amp;quot; order=&amp;quot;8&amp;quot; asp_dir=&amp;quot;/root/simulation/asp8&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/mapping&amp;gt;&lt;br /&gt;
  &amp;lt;gms mcast_port=&amp;quot;8788&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;tipc netid=&amp;quot;8239&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/map_config&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Where SCNode0, SCNode1, WorkerNode0, etc are the node instances of the model. You also need to mention the role of the node instance. The &amp;quot;order&amp;quot; field is used to set the order of SAFplus Platform bring up on the nodes. &amp;quot;mcast_port&amp;quot; in gms tag can be used to override the value of &amp;quot;GMS_MCAST_PORT&amp;quot; present in &amp;quot;&amp;lt;model&amp;gt;/src/target.conf&amp;quot; Similarly &amp;quot;netid&amp;quot; in tipc tag can be used to override the value of &amp;quot;TIPC_NETID&amp;quot; (these values will be overridden in the &amp;quot;package&amp;quot; stage of TAE)&lt;br /&gt;
*asp_dir attribute is required only when TAE has to run in simulation setup(It deploys the asp images to specified directory), otherwise this attribute has to be removed.&lt;br /&gt;
&lt;br /&gt;
====fixture.cfg====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;fixture_config ver=&amp;quot;1.0.0.0&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;build_server ip='localhost' os='kubuntu' user='build_user' password='password' /&amp;gt;&lt;br /&gt;
 &amp;lt;nodes&amp;gt;&lt;br /&gt;
  &amp;lt;node1 ip='10.10.3.10' os='wrs-pnele-1.4' crossbuild='i586-wrl-pnele1.4-2.6.14-mpcbl0001' user=&amp;quot;root&amp;quot; password=&amp;quot;password-of-this-node&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;node2 ip='10.10.3.20' os='wrs-pnele-1.4' crossbuild='i586-wrl-pnele1.4-2.6.14-mpcbl0001' user=&amp;quot;root&amp;quot; password=&amp;quot;password-of-this-node&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;node3 ip='10.10.3.30' os='wrs-pnele-1.4' crossbuild='i586-wrl-pnele1.4-2.6.14-mpcbl0001' user=&amp;quot;root&amp;quot; password=&amp;quot;password-of-this-node&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;node4 ip='10.10.3.40' os='wrs-pnele-1.4' crossbuild='i586-wrl-pnele1.4-2.6.14-mpcbl0001' user=&amp;quot;root&amp;quot; password=&amp;quot;password-of-this-node&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;node5 ip='10.10.3.50' os='wrs-pnele-1.4' crossbuild='i586-wrl-pnele1.4-2.6.14-mpcbl0001' user=&amp;quot;root&amp;quot; password=&amp;quot;password-of-this-node&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;node6 ip='10.10.3.60' os='wrs-pnele-1.4' crossbuild='i586-wrl-pnele1.4-2.6.14-mpcbl0001' user=&amp;quot;root&amp;quot; password=&amp;quot;password-of-this-node&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;node7 ip='10.10.3.90' os='wrs-pnele-1.4' crossbuild='i586-wrl-pnele1.4-2.6.14-mpcbl0001' user=&amp;quot;root&amp;quot; password=&amp;quot;password-of-this-node&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;node8 ip='10.10.3.100' os='wrs-pnele-1.4' crossbuild='i586-wrl-pnele1.4-2.6.14-mpcbl0001' user=&amp;quot;root&amp;quot; password=&amp;quot;password-of-this-node&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/nodes&amp;gt;&lt;br /&gt;
 &amp;lt;description&amp;gt;&lt;br /&gt;
    HP 14-slot chassis with MPCBL0001 cards&lt;br /&gt;
 &amp;lt;/description&amp;gt;&lt;br /&gt;
 &amp;lt;lockfile value=&amp;quot;/home/build_user/run_tae/test_on_hp/hp_chassis.lock&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;!--simulation value=&amp;quot;yes&amp;quot;/--&amp;gt;&lt;br /&gt;
&amp;lt;/fixture_config&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Normally the build server (where the SAFplus Platform code along with the model is compiled) is localhost (the same machine from where TAE is being run). One can use any other machine on the network for this purpose by specifying the ip, username and password of that machine. &amp;lt;nodes&amp;gt; tag contains the information about the machines where SAFplus Platform will be running during the test run. &lt;br /&gt;
*&amp;quot;crossbuild&amp;quot; attribute in node&amp;lt;number&amp;gt; tag is used for the purpose of building the SAFplus Platform binaries for the machine which is architecturally different than the build machine. The value of &amp;quot;crossbuild&amp;quot; attribute should be the name of the toolchain present for that kind of achitecture (located in &amp;lt;sdk-dir&amp;gt;/buildtools/&amp;quot;). If architecture of build and target machine are same, then &amp;quot;crossbuild&amp;quot; field has to be removed. &lt;br /&gt;
*lockfile tag can be used to maintain the integrity of the test. Once specified it doesn't allow any other test to use the same fixture. This way you can avoid interrupting an already running test on the same fixture.&lt;br /&gt;
*simulation value is used only when tae has to be run in simulation mode i.e. more than one node on same machine.&lt;br /&gt;
&lt;br /&gt;
====model.cfg====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;model_config ver=&amp;quot;1.0.0.0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;project value=&amp;quot;CLASP3.1&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;models&amp;gt;&lt;br /&gt;
  &amp;lt;amsTestGeneric&amp;gt;&lt;br /&gt;
    &amp;lt;image_source value=&amp;quot;dir:~/run_tae/test_on_hp/asptest3.1/&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;!--image_source value=&amp;quot;svn://&amp;lt;svn-user&amp;gt;:&amp;lt;password&amp;gt;@clovisforge.openclovis.org:8888/svn/asptest/branches/3.1&amp;quot; /--&amp;gt;&lt;br /&gt;
    &amp;lt;make_options value=&amp;quot;AMS_PERF_TEST=1&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/amsTestGeneric&amp;gt;&lt;br /&gt;
&amp;lt;/models&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;asp&amp;gt;&lt;br /&gt;
  &amp;lt;image_source value=&amp;quot;dir:~/run_tae/test_on_hp/clasp3.1/&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;!--image_source value=&amp;quot;http://&amp;lt;ip&amp;gt;/&amp;lt;path-to-the-tarball&amp;gt;/openclovis-sdk-3.1-latest.tar.gz&amp;quot; /--&amp;gt;&lt;br /&gt;
  &amp;lt;!--image_source value=&amp;quot;svn://&amp;lt;svn-user&amp;gt;:&amp;lt;password&amp;gt;@clovisforge.openclovis.org:8888/svn/clasp/branches/3.1/maint/&amp;quot; /--&amp;gt;&lt;br /&gt;
&amp;lt;/asp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;testcase_dir  value=&amp;quot;~/run_tae/test_on_hp/asptest3.1&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;buildserver&amp;gt;&lt;br /&gt;
    &amp;lt;sdk_root_dir value=&amp;quot;/opt/clovis&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;asp_dir      value=&amp;quot;~/run_tae/test_on_hp/clasp3.1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;project_dir  value=&amp;quot;~/run_tae/test_on_hp/asptest3.1&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/buildserver&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--skip_stages value=&amp;quot;start&amp;quot; /--&amp;gt;&lt;br /&gt;
&amp;lt;/model_config&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* This file contains the model specific configurations like model name, make options, source code directory etc. In the above sample file &amp;quot;amsTestGeneric&amp;quot; is the model name. &lt;br /&gt;
&lt;br /&gt;
* Below are the description of all the tags in the model.cfg file:&lt;br /&gt;
** &amp;lt;image_source&amp;gt;: In this attribute, we have to specify the location of SAFplus Platform source code and model directory. This can be any directory on build server (In the example it is ~/run_tae/test_on_hp/clasp3.1/ directory on build server) or it can be the path from where we have to checkout from SVN or any other repository or it can be any link on internet or ftp details.&lt;br /&gt;
** &amp;lt;make_options&amp;gt;: In this tag we provide all the flags with which we have to compile the code. In the example above it is AMS_PERF_TEST=1. So, code will be compiled with &amp;quot;make AMS_PERF_TEST=1&amp;quot;.&lt;br /&gt;
** &amp;lt;testcase_dir&amp;gt;: It is the directory where all test cases of the model will be present.&lt;br /&gt;
** &amp;lt;sdk_root_dir&amp;gt;: In this we specify the directory where sdk is installed.&lt;br /&gt;
** &amp;lt;asp_dir&amp;gt;: In this we specify the directory where SAFplus Platform is checked out.&lt;br /&gt;
** &amp;lt;project_dir&amp;gt;: In this we specify the directory where model is checked out.&lt;br /&gt;
** &amp;lt;skip_stages&amp;gt;: By specifying this we can skip some of the steps of complete tae run. &lt;br /&gt;
&lt;br /&gt;
*There are many ways to specify the location of SAFplus Platform source code. &amp;quot;dir:&amp;quot; can be used to specify the local directory as the source code directory for SAFplus Platform in the &amp;lt;asp&amp;gt; &amp;lt;image_source&amp;gt; tag and &amp;lt;model-name&amp;gt;&amp;lt;image_source&amp;gt; tag for the model directory.&lt;br /&gt;
&lt;br /&gt;
====env.cfg====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;env_config ver=&amp;quot;1.0.0.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;svn&amp;gt; &lt;br /&gt;
    &amp;lt;timeout&amp;gt;&lt;br /&gt;
      &amp;lt;checkout value='10000' /&amp;gt;&lt;br /&gt;
      &amp;lt;update   value='10000' /&amp;gt;&lt;br /&gt;
      &amp;lt;revert   value='3000' /&amp;gt;&lt;br /&gt;
      &amp;lt;status   value='6000' /&amp;gt;&lt;br /&gt;
    &amp;lt;/timeout&amp;gt; &lt;br /&gt;
  &amp;lt;/svn&amp;gt;&lt;br /&gt;
  &amp;lt;report_url value=&amp;quot;scp://&amp;lt;user&amp;gt;:&amp;lt;password&amp;gt;@&amp;lt;ip&amp;gt;/&amp;lt;taereport-dir&amp;gt;/import&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;!--report_url value=&amp;quot;scp://testuser:test@192.168.0.100/taereport/import&amp;quot; /--&amp;gt;&lt;br /&gt;
&amp;lt;/env_config&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*This file contains the timeout values for various TAE operations. After the test run TAE will send the report tarball to the machine specified in &amp;lt;report_url&amp;gt;. Below are the list of all tags used in this config file:&lt;br /&gt;
** checkout: It is time in seconds for which tae will wait for checkout to happen before timing out.&lt;br /&gt;
** update: It is time in seconds for which tae will wait for svn update to complete before timing out.&lt;br /&gt;
** revert: It is time in seconds for which tae will wait for svn revert before timing out.&lt;br /&gt;
** status: It is time in seconds for which tae will wait for svn status before timing out.&lt;br /&gt;
** report_url: In this we specify the command (to copy) and location where tae report has to be copied.&lt;br /&gt;
&lt;br /&gt;
===Selecting and running the tests===&lt;br /&gt;
&lt;br /&gt;
If following command is issued from the &amp;lt;TAECFGDIR&amp;gt; directory, it lists all the test cases present in the model.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        # &amp;lt;TAEBASE&amp;gt;/tae/tae -L&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	#----------------------------------------------------------------------&lt;br /&gt;
	# ID              State  Brief description&lt;br /&gt;
	#----------------------------------------------------------------------&lt;br /&gt;
	AMF-CMP-KIL.TC001   E    Active Comp Kill Test : Verify SI/CSI assignments after fail-over&lt;br /&gt;
	AMF-CSI-DEP.TC001   E    CSI Dependency Test : Verify CSI assignments order after switch-over&lt;br /&gt;
	AMF-HA-TST.TC001    E    SI Swap Test : Verify SI/CSI assignments after switch-over&lt;br /&gt;
	AMF-HA-TST.TC002    E    SU Lock Test : Verify SI/CSI assignments after switch-over&lt;br /&gt;
	AMF-NOD-LCK.TC001   E    Node Lock Test : Verify SI/CSI assignments after switch-over&lt;br /&gt;
	AMF-RDN-PRC.TC001   E    AMF Reduction Procedure Test : Verify SI/CSI assignments in the reduced mode&lt;br /&gt;
	AMF-SU-SDN.TC001    E    SU Shutdown Test : Verify SI/CSI assignments after switch-over&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/pre&amp;gt;	&lt;br /&gt;
&lt;br /&gt;
you can then put some of the test cases in a file (say tests.lst) and specify the test-case-filter-file name while running tae using -T switch&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# &amp;lt;TAEBASE&amp;gt;/tae/tae -T tests.lst -f fetch:stop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Note that the above command should be issued from &amp;lt;TAECFGDIR&amp;gt; directory for the model &lt;br /&gt;
&lt;br /&gt;
*It will execute all the steps from fetch to stop (fetch, populate, configure, build, package, deploy, start, test, stop).&lt;br /&gt;
&lt;br /&gt;
*Some of the steps can be skipped by specifying the stage-name in &amp;lt;skip_stages value=&amp;quot;&amp;quot; /&amp;gt; tag present in &amp;quot;model.cfg&amp;quot; file. Alternatively, you can also specify something like &amp;quot;-f build:test&amp;quot; if the requirement is to build the model from already existing code base and then run the test cases.&lt;br /&gt;
&lt;br /&gt;
*If neither of &amp;quot;-t&amp;quot; or &amp;quot;-T&amp;quot; switch is specified, then TAE runs all the test cases present in the &amp;quot;&amp;lt;model&amp;gt;/src/test&amp;quot; directory. One can also use &amp;quot;-t *&amp;quot; to run all the test cases. Remember, the regular expression syntax is supported while specifying the filter for testcases, which can be very handy sometime.&lt;br /&gt;
&lt;br /&gt;
===TAE logs===&lt;br /&gt;
TAE log files will be present in &amp;quot;log&amp;quot; directory of your model &amp;lt;TAECFGDIR&amp;gt;. Following log files are created by TAE for various different purposes:&lt;br /&gt;
&lt;br /&gt;
*tae.log : contains detailed log of all the commands executed by the TAE while performing the test.&lt;br /&gt;
*bash_127.0.0.1_build_server.log : Contains the logs of commands executed during the SAFplus Platform and model build. It also contains the &amp;quot;make&amp;quot; output in case of build error.&lt;br /&gt;
*bash_local.log : Contains the commands performed on the local machine like scp the tarball to the remote nodes etc.&lt;br /&gt;
*Node level postmortem files (e.g. SysCtrlI0.postmortem.tgz) : Contains the node level logs as well as the runtime files of the node.&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:Sdk_4.1/taeguide/reportserver</id>
		<title>Doc:Sdk 4.1/taeguide/reportserver</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:Sdk_4.1/taeguide/reportserver"/>
				<updated>2011-10-24T19:07:26Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: 2 revisions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TAE report server configuration and monitoring&lt;br /&gt;
&lt;br /&gt;
===Start taereport server ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd &amp;lt;TAEBASE&amp;gt;/tae/taereport&lt;br /&gt;
# python start-taereport.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should preferably start this server as a background job.&lt;br /&gt;
&lt;br /&gt;
once TAE report server is started, the interface can be accessed through a browser using URL &amp;quot;http://localhost:5000&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Server Configuration files and parameters===&lt;br /&gt;
&lt;br /&gt;
*dev.cfg (present in directory &amp;lt;TAEBASE&amp;gt;/tae/taereport)&amp;lt;br/&amp;gt;&lt;br /&gt;
It contains several configurations but the configuration which user would be interested is &amp;quot;server port&amp;quot;. By default this value is set to 5000&lt;br /&gt;
&lt;br /&gt;
===Report directory===&lt;br /&gt;
All TAE reports should be submitted to the directory &amp;quot;&amp;lt;TAEBASE&amp;gt;/tae/taereport/import&amp;quot;. taereport server continuously polls for report(s) and if present it processes the    report(s) and uploads the processed result(s) to the report server. These reports could be accessed through a browser by opening report server interface using &amp;quot;http://localhost:5000&amp;quot; and then browsing to the correct project and the reports.&lt;br /&gt;
&lt;br /&gt;
* [[Doc:sdk_4.1/taeguide/screens | Screens ]]&lt;br /&gt;
** [[Doc:sdk_4.1/taeguide/projects | Projects ]]&lt;br /&gt;
** [[Doc:sdk_4.1/taeguide/projectSummary | Project Summary ]]&lt;br /&gt;
** [[Doc:sdk_4.1/taeguide/reports | Test Reports ]]&lt;br /&gt;
** [[Doc:sdk_4.1/taeguide/testreport | Test Report in Detail ]]&lt;br /&gt;
** [[Doc:sdk_4.1/taeguide/logfiles | TAE log files and Node postmortem files ]]&lt;br /&gt;
** [[Doc:sdk_4.1/taeguide/models | Models ]]&lt;br /&gt;
** [[Doc:sdk_4.1/taeguide/fixtures | TAE Fixtures ]]&lt;br /&gt;
** [[Doc:sdk_4.1/taeguide/testcases | Testcases ]]&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/taeguide/reports</id>
		<title>Doc:latest/taeguide/reports</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/taeguide/reports"/>
				<updated>2011-10-24T19:07:24Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: 1 revision&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains the test report of all models with SAFplus Platform revision on which it was run. On this page we have filter based on different parameters like model name, SAFplus Platform revision, model revision, start date and end date. You can use this filter to check the desired report.&lt;br /&gt;
&lt;br /&gt;
[[File:List reports.png|frame|center|'''OpenClovis TAE Report server Reports Page''']]&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:Sdk_4.1/taeguide/projects</id>
		<title>Doc:Sdk 4.1/taeguide/projects</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:Sdk_4.1/taeguide/projects"/>
				<updated>2011-10-24T19:07:22Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: 1 revision&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page displays the list of all SAFplus Platform projects for which TAE tests are run. You can click on project name to get the TAE test report. &lt;br /&gt;
&lt;br /&gt;
[[File:TaereportMain.png|frame|center|'''OpenClovis TAE Report server Projects Page''']]&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:latest/taeguide/projectSummary</id>
		<title>Doc:latest/taeguide/projectSummary</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:latest/taeguide/projectSummary"/>
				<updated>2011-10-24T19:07:21Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: 1 revision&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*This page displays the report of TAE test runs for a particular project. It contains the test run report of all models which are run using TAE. This page a two kind of summary:&lt;br /&gt;
** '''Bar Chart:''' It gives the number of reports generated in last 20 days.&lt;br /&gt;
** '''Pie Chart:''' It shows two types of test reports for models based on date and revision. It also shows the percentage of test cases which are passed e.g. 79% means 79 % of total test cases are passing, rest are failing or erroring out. If you place the cursor on pie chart It will pop up information of no. of test cases, no. of passes etc. If you click on pie chart it will guide you to full report of the test cases run in that model.&lt;br /&gt;
&lt;br /&gt;
[[File:Project_summary4.0.png|frame|center|'''OpenClovis TAE report server Project Summary''']]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Project_summary4.0_2.png|frame|center|'''OpenClovis TAE report server Project Summary''']]&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:Sdk_4.1/taeguide/preface</id>
		<title>Doc:Sdk 4.1/taeguide/preface</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:Sdk_4.1/taeguide/preface"/>
				<updated>2011-10-24T19:07:19Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: 1 revision&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=='''Preface'''==&lt;br /&gt;
&lt;br /&gt;
''OpenClovis Test Automation Environment (TAE) User Guide'' provides information about the usage of OpenClovis TAE. TAE provides an infrastructure to allow comprehensive system and unit tests to be written and executed easily. It also contains a web-based test report server for permanent storage and retrieval of test reports. This guide helps you to utilize the OpenClovis TAE in your own environment.&lt;br /&gt;
&lt;br /&gt;
OpenClovis TAE is designed to simplify and accelerate the testing of Telecom application software over OpenClovis platform. It also provides a simple and powerful mechanism to coordinate the activities of multiple blades of a chassis or multiple systems in a network.&lt;br /&gt;
&lt;br /&gt;
===Audience===&lt;br /&gt;
&lt;br /&gt;
OpenClovis TAE User Guide is designed for system integrators, developers, and testers. To use this OpenClovis product, you must be aware of the fundamentals of operation, management, and configuration of telecommunication and networking domains. You must also be familiar with Python programming, the OpenClovis SAFplus Platform product, and have a basic knowledge of Linux.&lt;br /&gt;
&lt;br /&gt;
===Documentation Conventions===&lt;br /&gt;
&lt;br /&gt;
This guide uses different fonts and symbols to differentiate between document elements and types of information. These conventions are summarized in the following table:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Notation &lt;br /&gt;
!style=&amp;quot;color:#66b154; background:#09477c&amp;quot;| Description&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
| style=&amp;quot;color:black&amp;quot; | &amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;Code&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| This font denotes the source code provided in various examples.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Cross reference&lt;br /&gt;
|&lt;br /&gt;
This font denotes a hyper link. You can click on the hyper link text to access the reference location, which can be either a section within the User Guide or a URL link.&lt;br /&gt;
A cross reference refers to a section name accesses the first page of that section.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
'''Bold Text''' &lt;br /&gt;
|&lt;br /&gt;
Menu items and button names.&lt;br /&gt;
|- style=&amp;quot;color:#ffffff; background:#549cc6&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
''Italic Text'' &lt;br /&gt;
|&lt;br /&gt;
Variables for which you enter values.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; [[File:OpenClovis_Note.png]]This indicates the presence of notes or annotations, related to the context of the document.&lt;br /&gt;
&amp;lt;br&amp;gt; [[File:OpenClovis_Caution.png]]This indicates that certain precautionary measures must be taken before performing a particular task.&lt;br /&gt;
&amp;lt;br&amp;gt; [[File:OpenClovis_Info.png]]This indicates that additional information is provided to you.&lt;br /&gt;
&lt;br /&gt;
===Related Documentation===&lt;br /&gt;
&lt;br /&gt;
For additional information about OpenClovis products, refer to the following guides:&lt;br /&gt;
* '''OpenClovis Release Notes''' provides information about the software and the hardware required to install OpenClovis Application Service Platform (SAFplus Platform) and Integrated Development Environment (IDE). It contains the additional features and enhancements of the product since the previous release. It also summarizes the issues and limitations of the product and provides workarounds wherever applicable.&lt;br /&gt;
* '''OpenClovis SA Forum Compliance''' describes the level of compliance of OpenClovis SAFplus Platform and its Application Programming Interface (API) with the relevant Service Availability Forum Specifications.&lt;br /&gt;
* '''OpenClovis Installation Guide''' provides the system requirements, installation procedure for OpenClovis SAFplus Platform, IDE, and the Evaluation System.&lt;br /&gt;
* '''OpenClovis Sample Application Tutorial''' provides the steps to create and build a sample model using OpenClovis IDE and OpenClovis SAFplus Platform. It also provides troubleshooting information for this process. This provides the logical first step in understanding the OpenClovis offering.&lt;br /&gt;
* '''OpenClovis Evaluation System User Guide''' provides all the required information to configure and run the sample models packaged within the Evaluation System. This document also provides good understanding of OpenClovis SAFplus Platform's functionality. This is the natural follow on to the ''OpenClovis Sample Application Tutorial'' as it builds on the example created in that document. &lt;br /&gt;
* '''OpenClovis SDK User Guide''' provides information about OpenClovis Application Service Platform (SAFplus Platform) architecture, various OpenClovis SAFplus Platform components, and their interactions. This guide helps you to configure the OpenClovis SAFplus Platform components, compile, and execute the OpenClovis SAFplus Platform code to build your custom application.&lt;br /&gt;
* '''OpenClovis Log Tool User Guide''' provides information about the usage of OpenClovis Log Tool. OpenClovis Log Tool is an interactive utility that allows you to view binary log files in a readable format and hence monitor system errors, warnings, and other log information. Log Tool allows you to format the &amp;lt;code&amp;gt;.log&amp;lt;/code&amp;gt; files and filter them to view the required entries.&lt;br /&gt;
* '''OpenClovis API Reference Guide''' is provided for each component. It describes the Application Programming Interface (API), Service Model, and Management Information Model of the various OpenClovis Application Service Platform (SAFplus Platform) services. It helps the developer to understand the capabilities of the SAFplus Platform services and the APIs provided by these services.&lt;br /&gt;
* '''OpenClovis SAFplus Platform Console Reference Guide''' provides details about managing applications built on OpenClovis SAFplus Platform using the SAFplus Platform runtime debug console commands. SAFplus Platform Console commands can be used to manage, monitor, and test your application.&lt;br /&gt;
&lt;br /&gt;
For additional information about TurboGears, the web application mega-framework used by the OpenClovis SAFplus Platform Web Director please refer to:&lt;br /&gt;
* Turbogears web site at http://www.turbogears.org.&lt;br /&gt;
&lt;br /&gt;
===OpenClovis Online Technical Support===&lt;br /&gt;
&lt;br /&gt;
OpenClovis customers and partners can register on our Web site and receive personalized services and information. If you need any support or assistance while working on OpenClovis products, you can access the following: URL:  http://www.openclovis.com. Send your queries to: support@openclovis.com. Open source community support is available at:  http://www.openclovis.org/forum.&lt;br /&gt;
&lt;br /&gt;
===Documentation Feedback===&lt;br /&gt;
&lt;br /&gt;
We are interested in hearing from our customers on the documentation provided with the product. Let us know your comments and suggestions on improving the documentation at OpenClovis Inc. Send your comments to: support@openclovis.com. Post your feedback on documentation at: http://www.openclovis.org/forum.&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	<entry>
		<id>https://help.openclovis.com/index.php/Doc:Sdk_4.1/taeguide/overview</id>
		<title>Doc:Sdk 4.1/taeguide/overview</title>
		<link rel="alternate" type="text/html" href="https://help.openclovis.com/index.php/Doc:Sdk_4.1/taeguide/overview"/>
				<updated>2011-10-24T19:07:18Z</updated>
		
		<summary type="html">&lt;p&gt;Bot: 1 revision&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Organization ==&lt;br /&gt;
&lt;br /&gt;
The TAE is organized following the [http://en.wikipedia.org/wiki/Matryoshka_doll Matryoshka principle] in that each facility requires all &amp;quot;smaller&amp;quot; facilities, yet any particular facility and all &amp;quot;smaller&amp;quot; facilities comprises a working automation environment (albeit missing the features provided by the &amp;quot;larger&amp;quot; facilities) and is useful in certain circumstances.&lt;br /&gt;
&lt;br /&gt;
The purpose of this organization is most importantly to create an incremental development schedule that will yield a usable test framework rapidly and a fully-featured one when those features are required.&lt;br /&gt;
&lt;br /&gt;
Another extremely important purpose is to allow the automation environment to be run in a variety of different situations and by a variety of different users.  For example, it could be run by an automated nightly verification system (layer 3), or by a developer fixing a bug (layer 1,2).  It could be run by an OpenClovis engineer (layer 1,2 or 3), or by a customer who is verifying compatibility with his hardware (layer 3).&lt;br /&gt;
&lt;br /&gt;
Lastly, it is designed to allow programs written for a variety of purposes -- test, demo, eval, and real systems -- to be run.  Traditionally automated test frameworks are so encompassing that the only software that can be run are test suites designed from the bottom-up to fit within the automated test framework.  This framework allows software that was not written for the express purpose of testing to be annotated with compile-time optional tests (similar to assert()) that can be used to verify the correct execution of that software.&lt;br /&gt;
&lt;br /&gt;
Each layer is summarized in this document and contains a link to a detailed design.&lt;br /&gt;
&lt;br /&gt;
=== Layer 1: C program API (Clovis Test API) ===&lt;br /&gt;
&lt;br /&gt;
The smallest layer is the API used in a program to run tests.  This layer consists of a set of C macros that group and run tests. When not testing, these macros can be compiled out.  This is very similar to unit testing packages found for many languages.&lt;br /&gt;
&lt;br /&gt;
If this layer is run alone, it will simply print test successes and failures to the screen.&lt;br /&gt;
&lt;br /&gt;
When run within the layer 3 framework, test successes and failures will be posted to the TAE report server.&lt;br /&gt;
&lt;br /&gt;
=== Layer 2: Python based testing (using APIs provided by TAE)===&lt;br /&gt;
&lt;br /&gt;
This is another layer to write test programs in python and run tests. Here the test program uses the rich set of APIs (written in python) present in the TAE infrastructure. This layer provides multiple utilities to run tests in a distributed environment.&lt;br /&gt;
&lt;br /&gt;
If this layer is run alone, it will simply print test successes and failures to the screen.&lt;br /&gt;
&lt;br /&gt;
When run within the layer 3 framework, test successes and failures will be posted to the TAE report server.&lt;br /&gt;
=== Layer 3: Test Execution Management and Event Simulation ===&lt;br /&gt;
&lt;br /&gt;
The Test Execution Management and Event Simulation (TEMES) layer consists of a separate machine (test driver) that controls the test &amp;quot;fixture&amp;quot; (the set of machines that constitute a test environment).  It is capable of taking software from either a local directory, a ftp site, an http site or from subversion repository, unpacking it (if needed), installing it on the fixture, compiling it, and running a series of tests.&lt;br /&gt;
&lt;br /&gt;
These tests primarily constitute executable programs that use the Layer 1 and 2 APIs, and conform to a loose modeling format.&lt;br /&gt;
&lt;br /&gt;
Additionally, a test-specific scripts may be run on the TEMES that can &amp;quot;drive&amp;quot; the progress of the test and cause events such as process, network, and machine failures.&lt;br /&gt;
&lt;br /&gt;
If this layer is run alone, it will run through a complete test suite and report successes and failures.&lt;br /&gt;
&lt;br /&gt;
=== Layer 4: Automated Run and Longitudinal Reports ===&lt;br /&gt;
&lt;br /&gt;
The Automated Run and Longitudinal Reporting (ARLR) layer consists of a single globally accessible server (ARLR server) and a source repository (subversion etc).  The ARLR server contains a web site that allows users to see which source code branches are failing which tests on what hardware and it keeps a history of this information.  It also will communicate with unused (or layer 3 dedicated) test drivers to schedule runs of a set of test suites against a set of branches and receive results from these drivers.&lt;/div&gt;</summary>
		<author><name>Bot</name></author>	</entry>

	</feed>