-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
726 lines (547 loc) · 25.9 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
This directory contains the 4.0 release of `OpenSAF'.
`OpenSAF' is an open source project designed to implement a complete highly
available operating environment based on Service Availability Forum (SA Forum)
standards. The objective of the `OpenSAF' project is to accelerate broad adoption
of a SA Forum compliant operating environment. OpenSAF also offers
complementary services which are required in a complete high-availability
system solution.
`OpenSAF' has been originally contributed by Motorola ECC, by open sourcing
its HA middleware suite Netplane Core Services (NCS).
`OpenSAF' has a web site at http://www.opensaf.org/
See file `COPYING.LIB' for copying conditions.
See file `INSTALL' for compilation and installation instructions.
See file `NEWS' for a list of major changes in the current release.
See file `ChangeLog' for a list of detailed changes.
See file `AUTHORS' for the names of maintainers.
See file `THANKS' for a list of contributors.
Please check the `Linux' distribution-specific notes below for any caveats
related to your operating system.
`OpenSAF' Architecture Overview
===============================
`OpenSAF' software is distributed in nature. There is a Controller node, which is
the central entity in the cluster which will control all the other Payload nodes
in the HA cluster. In the HA cluster there are two System Controllers running in
Active/Standby mode.
The `OpenSAF' software is divided in to following classes of Modules:
* Directors:
The Service directors run on the Controller node. They interact with
Node Directors running on the Payload nodes and provide service specific
functionality.
* Node Directors:
Node directors distribute the service responsibilities with directors.
Node directors interact with Agents to provide service functionality to
the user applications. Node directors run both on System Controller node
and Payload nodes.
* Servers:
Servers run on the System Controller and they talk to Agents to provide
service functionality to the users. If the service is having servers then
it doesn't have directors, node director pieces. If the service doesn't
have node local functionality then "Server - Agent" architectural approach
is used.
* Agents: Agents are the service libraries which are linked with user
applications and provide service to the user applications by interacting
with other service parts.
User applications can run on either System Controller node or Payload node. But
it is advisable to run the user applications on the Payload nodes, so your
applications are not impacted when System Controller failover happens due to
any failures in `OpenSAF' Modules.
The OpenSAF infrastructure is made highly available by modeling the individual
services as AMF components. All the Node Directors use no redundancy model and
are restart capable with component capability 1_ACTIVE. All the Directors and
Servers use 2N redundancy model with "1_ACTIVE_OR_1_STANDBY".
Downloading
===========
`OpenSAF' release archives can be obtained from here:
http://devel.opensaf.org/wiki/downloads/
Documentation
=============
`OpenSAF' implements various `SAF AIS' services. The Service Availability
Forum Specifications can be downloaded from here:
http://www.saforum.org/specification/download/
The `OpenSAF' Programmer's Reference Manuals can be obtained from here:
http://devel.opensaf.org/wiki/downloads/
* OpenSAF Overview
* OpenSAF Availability Service
* OpenSAF Cluster Membership Service
* OpenSAF Checkpoint Service
* OpenSAF Event Distribution Service
* OpenSAF Global Lock Service
* OpenSAF Information Model Management Service
* OpenSAF LOG Service
* OpenSAF Message Queue Service
* OpenSAF Notification Service
* OpenSAF Platform Management Service
* OpenSAF Software Management Framework Service
Development
===========
`OpenSAF' development is managed using `Trac', the main project portal can
be found here:
http://devel.opensaf.org/
You can find most information concerning the development of `OpenSAF' at
this site.
`OpenSAF' is using `Mercurial' (hg) as its Source Control Management system
tool, the repositories index can be found here:
http://devel.opensaf.org/hg/
`Mercurial' is a fast, lightweight Source Control Management system designed
for efficient handling of very large distributed projects and can be obtained
from here:
http://www.selenic.com/mercurial/wiki/
Building from `Mercurial'
=========================
If you don't want to use one of the `OpenSAF' release archive, you can get a
clone and bootstrap it by doing the following steps:
% hg clone http://devel.opensaf.org/hg/<repo>/
% cd <repo>
% ./bootstrap.sh
Where <repo> is one of the tree from the repositories index listed here:
http://devel.opensaf.org/hg/
After bootsraping follow the standard build instructions.
Bug Reporting
=============
You can send `OpenSAF' bug reports to <[email protected]>. You can
subscribe to the development mailing list from here:
http://list.opensaf.org/maillist/listinfo/devel/
If you need help using `OpenSAF', try <[email protected]> instead. You can
subscribe to the user mailing list from here:
http://list.opensaf.org/maillist/listinfo/users/
You can also use the online bug tracking system in the `Trac' `OpenSAF'
project to submit new problem reports or search for existing ones:
* Create New Ticket: http://devel.opensaf.org/newticket/
* Available Reports: http://devel.opensaf.org/report/
When reporting bug, make sure you provide various useful informations about
your Linux environment:
* Distribution used (e.g. Fedora, Ubuntu, SUSE, PNE-LE etc.)
* The revision of your Linux distribution
* Package revisions of the prerequisites (e.g. net-snmp, tipc etc.)
* If using the package prerequisites from the Linux distribution?
* Build tool revisions (e.g. gcc, automake, autoconf, libtool)
* If using cross-compiling + target information
Source Tree Structure
=====================
|+-contrib/
| | +-plmc/ (The PLM coordinator implementation)
+-java/ (Java AIS API mapping Implementation for AMF,CLM)
| |+-ais_api/
| |+-ais_api_impl/
| |+-ais_api_impl_native/
| |+-ais_api_test/
+-m4/ (Extra M4 macros for the build)
+-osaf/ (OpenSAF Sources)
| +-libs/ (Sources of OpenSAF Libraries)
| | |+-agents/ (sources for OpenSAF agents)
| | | |+-infrastructure/ (Agents of Infrastructure services)
| | | | |+-dta/
| | | | |+-rda/
| | | |+-saf/ (Agents of SAF services)
| | | |+-ava/
| | | |+-clma/
| | | |+-cpa/
| | | |+-eda/
| | | |+-gla/
| | | |+-imma/
| | | |+-lga/
| | | |+-mqa/
| | | |+-ntfa/
| | | |+-plma/
| | |+-common/ (Common sources for OpenSAF services)
| | |+-core/ (OpenSAF core library)
| | | |+-common/
| | | |+-include/
| | | |+-leap/
| | | |+-mbcsv/
| | | |+-mds/
| | |+-saf/ (SAF Libraries)
| | |+-include/
| | |+-libSaAmf/
| | |+-libSaCkpt/
| | |+-libSaEvt/
| | |+-libSaImm/
| | |+-libSaLck/
| | |+-libSaLog/
| | |+-libSaMsg/
| | |+-libSaNtf/
| | |+-libSaPlm/
| |+-services/ (Sources, Config files for Directors/ND/Servers of OpenSAF services)
| | |+-infrastructure/ (Infrastructure services)
| | | |+-dtsv/
| | | |+-dtms/
| | | |+-fm/
| | | |+-nid/
| | | |+-rde/
| | |+-saf/ (SAF services)
| | |+-avsv/
| | |+-clmsv/
| | |+-cpsv/
| | |+-edsv/
| | |+-glsv/
| | |+-immsv/
| | |+-logsv/
| | |+-mqsv/
| | |+-ntfsv/
| | |+-plmsv/
| | |+-smfsv/
| |+-tools/
| |+-safimm (IMM commandline utilities and IMM XML merge tool)
| |+-saflog (SAFLOG command line utility)
| |+-safntf (SAFNTF command line utility)
|+-pkgconfig/ (OpenSAF Pkgconfig file)
|+-samples/ (OpenSAF sample applications for SAF services)
|+-scripts/ (OpenSAF scripts)
|+-tests/ (OpenSAF Test suites)
|+-tools (OpenSAF developer tools and UML devel environment)
Prerequisites
=============
The following software is required to build `OpenSAF 4.0':
* The Linux Kernel with TIPC development support (This is not required when the opensaf is build with option --disable-tipc)
* An HPI implementation (e.g. OpenHPI), when PLM is enabled.
* Libxml2
* automake
* autoconf
* libtool
* pkg-config
* flex and bison
* gcc/g++
* GNU make
* sqlite3, When IMM PBE feature is enabled.
If enabling optional Java support:
- A Java 1.5+ capable JDK (e.g. OpenJDK 1.6)
- Apache Ant
If a specific prerequisite package revision isn't working for you, please
let us know about it following the instructions from the Bug Reporting section.
Building `OpenSAF'
==================
If you are using a released archive (dist tarball) follow the simple common
steps:
% ./configure && make
OR
% ./configure && make rpm
Note: `OpenSAF' can safely be built with parallel jobs using -jX, where X
should be the number of CPU you want to dedicate + 1
If you are Building from `Mercurial', make sure you followed the required
steps before trying to `configure' (i.e. bootsrapping).
% ./bootstraps.sh
% ./configure && make
OR
% ./configure && make rpm
By default, all 'OpenSAF' services are enabled to be built and
`OpenSAF' will assume the following `configure' options by default:
--disable-java --disable-imm-pbe --disable-tests
Some OpenSAF services/features can be disabled through configure options.
To alter the default configure options, the following configure options
are available w.r.t enabling/disabling the build for a particular OpenSAF service:
(The below options can also be known from the command % ./configure --help)
--disable-rpath Patches libtool to not use rpath in the libraries
produced.
--disable-rpm-target disable support for the "make rpm" target
[default=no]
--enable-java enable the Java AIS interface mapping [default=no]
--enable-tests enable building the OpenSAF testing programs
[default=no]
--enable-imm-pbe enable the IMM Persistent Backend Interface
[default=yes]
--disable-tipc disable building the TIPC as the transport for MDS
[default=no]
--disable-ais-ckpt disable building the SAI-AIS-CKPT service
[default=no]
--disable-ais-evt disable building the SAI-AIS-EVT service
[default=no]
--disable-ais-lck disable building the SAI-AIS-LCK service
[default=no]
--disable-ais-msg disable building the SAI-AIS-MSG service
[default=no]
--disable-ais-smf disable building the SAI-AIS-SMF service
[default=no]
--disable-ais-plm disable building the SAI-AIS-PLM service
[default=no]
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
--enable-shared[=PKGS] build shared libraries [default=yes]
--enable-static[=PKGS] build static libraries [default=yes]
--enable-fast-install[=PKGS]
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-rpm-release=[ARG]
set the RPM release value to be current timestamp
(ARG=timestamp); set the RPM release value to be the
global revision (ARG=global-rev); set the RPM
release value to be the local revision
(ARG=local-rev); set the RPM release value to be
<val> (ARG=<val>, [default=1])
--with-hpi-interface=[ARG]
autodetect the SAHPI_INTERFACE_VERSION (ARG=check
[default]); set the SAHPI_INTERFACE_VERSION to
A.01.01 (ARG=A01); set the SAHPI_INTERFACE_VERSION
to B.01.01 (ARG=B01); set the
SAHPI_INTERFACE_VERSION to B.02.01 (ARG=B02); set
the SAHPI_INTERFACE_VERSION to B.03.01 (ARG=B03)
--with-initscriptdir=[DIR]
use DIR as the directory containing the init.d
scripts. [default=/etc/init.d]
--with-pic try to use only PIC/non-PIC objects [default=use
both]
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-jdk=DIR use JDK from DIR
--with-ant=DIR Use ant from DIR
Use one of the following forms to enable an option:
--with-<mumble> OR --enable-<mumble>
--with-<mumble>=yes OR --enable-<mumble>=yes
--without-<mumble>=no OR --disable-<mumble>=no
For eg:- To enable building the IMM PBE feature, use the following option:
% ./configure --enable-imm-pbe
Use one of the following forms to disable an option:
--without-<mumble> OR --disable-<mumble>
--without-<mumble>=yes OR --disable-<mumble>=yes
--with-<mumble>=no OR --enable-<mumble>=no
For eg:- To disable building the LOCK service, use the following option:
% ./configure --disable-ais-lck
The `--with-<mumble>' option forms are used for external package support and
the `--enable-<mumble>' option forms are used for internal component state.
Note: When PLM is enabled, `OpenSAF' relies on <SaHpi.h>, even if
the user thinks he's not using a specific HPI implementation. This is a build
dependency and the user still needs to tell the build system to be
using the proper CPPFLAGS/CFLAGS/CXXFLAGS where to find a dummy <SaHpi.h>
By using `./configure --enable-java', you are enabling the Java AIS mapping
support in the build system. Specials M4 macros will be used to autodetect
what `JDK' and `Ant' program you are using. By default this options is
disabled.
By using `./configure --with-jdk=DIR', you can force the build system to use
a specific JDK installed in a non-standard location on your system.
By using `./configure --with-ant=DIR', you can force the build system to use
a specific Ant version installed in a non-standard location on your system.
By using `./configure --with-rpm-release', you can change the default release
token in the generated rpm filename. Predefined values exist like the build
timestamp, the Mercurial revision used to when building the code, and also you
can add your own free text token.
By using `./configure --with-hpi-interface', you can force the HPI interface
version used. By default it's autodetected by scanning the SaHpi.h header, but
when cross-compiling is used it's not possible to run the test code for that
autodetection.
By using `./configure --disable-rpm-target', you are masking out the `make rpm'
target, some build systems provide their own `make rpm` rule, it would then be
clashing with the OpenSAF rule.
By using `./configure --disable-tipc', you are building the MDS with the TCP as
the only transport of the OpenSAF(MDS transports supoorted are TCP and TIPC).
If user wants to use TCP as the transport of MDS, build the opensaf with `--disable-tipc` option,
and update the variable DTM_NODE_IP to self node IP address in the `/etc/opensaf/dtmd.conf`
before starting the opensaf.
If opensaf is built with default option, MDS is built to support both TIPC and TCP,
with TIPC selected as default transport.
If user wants to use TCP as the transport with default built image, user needs
to change the variables MDS_TRANSPORT to TCP and MDS_INTRANODE_TRANSPORT to UNIX in
the `/etc/opensaf/nid.conf` file and update the variable DTM_NODE_IP to self node
IP address in the `/etc/opensaf/dtmd.conf`.
For the applications of the opensaf, user needs to export the variables as said
below in there respective start up scripts as shown below,
export MDS_TRANSPORT=TCP
export MDS_INTRANODE_TRANSPORT=UNIX
Building `OpenSAF' RPMS
=======================
As shown in the Building `OpenSAF' section, generating RPMS can be done using:
% ./configure && make rpm
The special `make rpm' target will generate a dist archive, create the
`OpenSAF' SRPM using the opensaf.spec file, and finally launch the rpmbuild
process. You can find the generated RPMS under `./rpms/RPMS/<build_arch>/':
RPMs per OpenSAF Service are generated. For eg:-
* opensaf-<svcname-director>-<Release>.<build_arch>.rpm:
RPM containing the particular OpenSAF service director/server's binaries,
libraries, CLC scripts, and the immxml classes and objects owned/implemented by the service.
* opensaf-<svcname-nodedirector>-<Release>.<build_arch>.rpm:
RPM containing the particular OpenSAF service NodeDirector's binaries, CLC
scripts.
* opensaf-<svcname-libs>-<version>.<Release>.<build_arch>.rpm:
RPM containing the particular OpenSAF service libraries to be linked by User
and any User Program (command line tool/utility) provided the service.
With the default configure options, the following RPMs are generated:
opensaf-<Release>.<arch>.rpm
opensaf-controller-<Release>.<arch>.rpm
opensaf-devel-<Release>.<arch>.rpm
opensaf-samples-<Release>.<arch>.rpm
opensaf-payload-<Release>.<arch>.rpm
opensaf-amf-libs-<Release>.<arch>.rpm
opensaf-clm-libs-<Release>.<arch>.rpm
opensaf-imm-director-<Release>.<arch>.rpm
opensaf-imm-libs-<Release>.<arch>.rpm
opensaf-imm-nodedirector-<Release>.<arch>.rpm
opensaf-libs-<Release>.<arch>.rpm
opensaf-log-libs-<Release>.<arch>.rpm
opensaf-log-server-<Release>.<arch>.rpm
opensaf-ntf-libs-<Release>.<arch>.rpm
opensaf-ntf-server-<Release>.<arch>.rpm
opensaf-plm-coordinator-<Release>.<arch>.rpm
opensaf-plm-hpi-<Release>.<arch>.rpm
opensaf-plm-libs-<Release>.<arch>.rpm
opensaf-plm-server-<Release>.<arch>
opensaf-smf-director-<Release>.<arch>.rpm
opensaf-smf-libs-<Release>.<arch>.rpm
opensaf-smf-nodedirector-<Release>.<arch>.rpm
opensaf-ckpt-director-<Release>.<arch>.rpm
opensaf-ckpt-libs-<Release>.<arch>.rpm
opensaf-ckpt-nodedirector-<Release>.<arch>.rpm
opensaf-evt-libs-<Release>.<arch>.rpm
opensaf-evt-server-<Release>.<arch>.rpm
opensaf-lck-director-<Release>.<arch>.rpm
opensaf-lck-libs-<Release>.<arch>.rpm
opensaf-lck-nodedirector-<Release>.<arch>.rpm
opensaf-msg-director-<Release>.<arch>.rpm
opensaf-msg-libs-<Release>.<arch>.rpm
opensaf-msg-nodedirector-<Release>.<arch>.rpm
opensaf-controller: (Meta Package)
Contains the controller specifc config, script files, the IMM classes
and objects for OpenSAF infrastructure services, And the
dependencies for installing the controller rpm.
opensaf-payload: (Meta Package)
Contains the payload specific config file And the dependencies for
installing the payload rpm.
opensaf-<Release>.<arch>.rpm
Contains configuration and script file that are common to both
a controller/payload node configuration.
opensaf-devel: (Optional)
Contains the development headers and static & shared libs for user
application development/linkage.
opensaf-java: (Optional)
Contains the Java AIS mapping jars and native libs.
opensaf-samples: (Optional)
Contains the sample applications source code.
Installing `OpenSAF'
====================
`OpenSAF' can be installed in several ways. When doing development, a
user might prefer using the classic `make install' way to using RPMS.
It can be achieved like this:
% make install
OR
% make install DESTDIR=<staged_install_directory>
After installing `OpenSAF' you will need to run `ldconfig' because `OpenSAF'
places internal libs in the `$pkglibdir' (e.g. /usr/lib/opensaf/). This ldconfig
operation is handled automatically by using rpm installation.
By default `make install' will install pre-configured for a controller node.
The only files that need to be changed for a payload is the `nodeinit.conf' and
the `slot_id' (a slot_id of 3 or higher will give you a payload node):
% cd $pkgsysconfdir (e.g. /etc/opensaf/)
% ln -sf nodeinit.conf.payload nodeinit.conf
% echo 3 > $pkgsysconfdir/slot_id
In production systems, RPMS should be preferred to classic `make install`.
To setup a development environment for a given OpenSAF service, install following RPMS:
% rpm -ivh opensaf-<svc_name>-libs-<Release>.<build_arch>.rpm
% rpm -ivh opensaf-devel-<Release>.<build_arch>.rpm
% rpm -ivh opensaf-samples-<Release>.<build_arch>.rpm
If Java AIS mapping was enabled, install the following RPM:
% rpm -ivh opensaf-java-<version>.<build_arch>.rpm
If you are installing `OpenSAF' from a supported `yum' server, it will resolve
the proper dependencies for you:
% yum install opensaf-controller
OR
% yum install opensaf-payload
Here is where individual `OpenSAF' components get installed:
* Documentation: `$docdir' (e.g /usr/share/doc/packages/opensaf/)
* Samples, Templates: `$pkgdatadir'/samples (e.g. /usr/share/opensaf/samples)
* IMM XML Merge tool: `pkgimmxmldir' (e.g. /usr/share/opensaf/samples/immxml
* SAF libraries: `$libdir' (e.g. /usr/lib/)
* SAF headers: `$includedir' (e.g. /usr/include/)
* Configuration: `$pkgsysconfdir' (e.g. /etc/opensaf/)
* OpenSAF headers: `$pkgincludedir' (e.g. /usr/include/opensaf/)
* Runtime Misc.: `$pkglocalstate' (e.g. /var/lib/opensaf/)
* OpenSAF internals(binaries,clc-scripts): `$pkglibdir' (e.g. /usr/lib/opensaf/)
* User programs: `$bindir' (e.g. /usr/bin/)
* SysV scripts: `$sysconfdir/init.d/' (e.g. /etc/init.d/)
* Logs: `$localstatedir/log/opensaf' (e.g. /var/log/opensaf/)
* PID: `$localstatedir/run/opensaf/' (e.g. /var/run/opensaf/)
Linking with `OpenSAF' AIS Services
===================================
`OpenSAF' provides `pkgconfig' files for each AIS services.
These files are installed with the other system `*.pc' files
in `$(libdir)/pkgconfig':
* opensaf-amf.pc
* opensaf-ckpt.pc
* opensaf-clm.pc
* opensaf-evt.pc
* opensaf-imm.pc
* opensaf-lck.pc
* opensaf-log.pc
* opensaf-msg.pc
* opensaf-ntf.pc
* opensaf-plm.pc
There are two easy ways to use `pkgconfig'. The first one is to call it directly
from a `Makefile' and assign its content to make variables e.g.:
AMF_LIBS=`pkg-config opensaf-amf --libs`
AMF_CFLAGS=`pkg-config opensaf-amf --cflags`
Or if your application is using the `GNU Build System' with `autotools', you can
use a special `autoconf' macro provided by `pkgconfig' e.g.:
-- in configure.ac --
PKG_CHECK_MODULES(AMF, opensaf-amf)
It will then provides two special variables available to `automake':
-- in Makefile.am --
mumble_CFLAGS = @AMF_CFLAGS@
mumble_LDADD = @AMF_LIBS@
How to Configure `OpenSAF'
==========================
See file `00-README.conf' for the configuration file syntax/format.
How to Run `OpenSAF'
====================
When PLM is enabled, The 'plmcd' SysV init script is installed in
`$sysconfdir/rc.d/init.d' (e.g. /etc/rc.d/init.d/) directory.
The `OpenSAF' SysV init script is installed in `$sysconfdir/rc.d/init.d'
(e.g. /etc/rc.d/init.d/)
Commands to Start OpenSAF When PLM is disabled:
===============================================
After a minimum configuration of
- slot_id, nodeinit.conf, node_name, imm.xml(Generated) and nid_tipc(if needbe), for the controller
(OR)
- slot_id, nodeinit.conf and node_name, for the payload.
the following command shall start the OpenSAF services:
% /etc/init.d/opensafd start [start|stop|status]
Commands to Start OpenSAF When PLM is enabled:
==============================================
After a minimum configuration of
- slot_id, nodeinit.conf, node_name, imm.xml(Generated) and nid_tipc(if needbe) and the plmcd.conf,
for the controller
(OR)
- slot_id, nodeinit.conf, node_name and the plmcd.conf, for the payload
The following commands shall be executed:
% /etc/init.d/plmcd start
% /etc/init.d/opensafd start [start|stop|status]
Note: Its not necessary to start OpenSAF if an entry to start OpenSAF is
set/specified in the plmcd.conf file.
More TODO on status command.
Command To Trigger a Administrative Switchover of the Controller Nodes:
=======================================================================
immadm -o 7 safSi=SC-2N,safApp=OpenSAF
Building `OpenSAF' Samples
==========================
The sources of the `OpenSAF' sample applications will get installed in
`$pkgdatadir/samples' (e.g. /usr/share/opensaf/samples/).
The following steps shall be done to build the sample applications:
% ./bootstrap.sh
% ./configure
% make
OR
% make install
The `Makefile' looks for installed `SAF AIS' headers and `OpenSAF' libs in
standard system wide locations (e.g. /usr/include/ & /usr/lib/):
INCLUDES = -I.
LDFLAGS = -lSaAmf -lsaf_common -lavsv_common
If you have `OpenSAF' development packages installed somewhere else, override
the default values e.g.:
% make INCLUDES="-I. -I/tmp/usr/local/include" \
LDFLAGS="-L/tmp/usr/local/lib -lSaAmf -lsaf_common -lavsv_common"
To run an application you will need a configured `OpenSAF' node running.
See file `00-README.samples' for more information on each of the application.
Using the Simulation Environment
================================
See file `00-README.uml' for more information about User Mode Linux and `OpenSAF'
Linux Distro-Specific Notes
===========================
`OpenSAF' is known to run on the following Linux installations:
* Red Hat Enterprise Linux 4 (RHEL4)
* Red Hat Enterprise Linux 5.2 (RHEL5)
* Wind River Platform for Network Equipment, Linux Edition (PNE-LE)
* MontaVista Carrier Grade Edition 4.0
* Fedora Core 9
* SUSE Linux Enterprise 10 SP2
* SLES11
*...
More TODO
<RHEL firewall rules, SELinux, SUSE crashes with -02, missing decent tipc.h etc.>
-------------------------------------------------------------------------------
Copyright (C) 2010 The OpenSAF Foundation